I recently came across an intriguing post describing academic research on how GitHub has affected developer culture. This is a specific case study of something I spend a lot of time talking and thinking about — how toolsets strongly influence the cultural norms, governance, and processes of the teams using them.
In this instance, here’s what the researchers found:
- Transparency improves on-ramps to a project. Put simply, it’s easier to learn how the culture works when it’s possible to lurk. When you can’t see how people interact and develop collaboratively either externally or as a new contributor, it lengthens the time it takes to become a productive developer.
- Continuous integration, and more broadly testing as a whole, must be easy to use if it’s going to be used at all. Making it a pain to submit things for testing means developers will skip it. If tools like Jenkins are so cleanly integrated into your ALM toolchain that contributors don’t even need to think about them unless the build/tests break, then their adoption will vastly increase.
- One-off commits are a frequent occurrence when contributing is trivial. A user who is otherwise uninvolved in the project as a developer might make a one-time contribution because it’s so easy to do so. When you require users to fill out forms, register for barely usable software, etc., then you lose a lot of these potential contributions.
- More negatively, a focus on build- and test-driven development has resulted in fewer tests for bad input. Many newer contributors have never learned to write test suites, but senior developers assume the opposite. Using BDD/TDD without teaching “safe testing” leads to a lack of tests for invalid results and functionality, only tests to confirm that the intended results occur upon the intended input.
The changes involving barriers to entry mirror what we’ve been saying at RedMonk for years. I would further add that the potential for one-off commits dramatically increases the size of the opening of your recruitment funnel, which gives you many more opportunities to grow your developer community. The existence of a whole new class of first-time contributors in what has become the standard model for contribution, GitHub, means this:
Some projects that perceived themselves as inevitably shrinking are, in reality, only failing to keep up with the pace of expectations in open-source development.
Disclosure: GitHub and CloudBees (which employs Jenkins founder Kohsuke Kawaguchi) are former clients.