Building and Maintaining a Project Community with Github

Location: E145
Average rating: ***..
(3.43, 7 ratings) has taken open source by storm, but it’s more than just
a code repository with the latest hot source control system. It’s
a new way of working with open source projects.

The web-based social aspects of github can change the human and
technical dynamics of working on open source projects. Some of the
issues I’ll discuss include:

  • Easier access to code means lower barrier to entry means more
    people submitting patches. This is a boon, and brings challenges.
  • People seem to expect patches to be accepted because of the ease
    with which change sets are created. These expectations may clash
    with project goals.
  • Watching the github fork network lets you see what other people
    are doing with their forks. It allows me as a project admin to see
    what people are doing with the code.
  • New workflows are required. A branch and merge strategy for
    development is crucial.
  • Projects need a guidemap to tell people what to do, because people
    may think it’s just a simple matter of creating a fork, making a
    change, and saying “Here’s my work, now integrate it.”
  • Project branches can easily become large, hard-to-handle change
    sets. Less care and thought is put into change sent back to the
    project because merging is so easy. Contributors still must work
    together to coordinate work.
  • Discussion of patches has moved from the mailing list to the
    change request itself. This can diminish visibility and discussion.

I’ll discuss these and other aspects of community and project management and give examples from my own experiences migrating existing projects to github.

Photo of Andy Lester

Andy Lester

Andy Lester (@petdance) has
been a business programmer for over two decades. His first book,
Land The Tech Job You Love, on
job search strategies for programmers, sysadmins and other technical
people, is published by Pragmatic Bookshelf.

Andy maintains the Perl news blog Perlbuzz,
@perlbuzz. He’s active in
the Parrot, Perl 6 and Perl 5 projects, and maintains over a dozen
testing-related modules.