Bootstrapping developers in Drupal
I listened to the webinar How to Contribute to the Linux Community by Jon Corbet (Linux Foundation Media - Free Training Webinar ). While these ideas were focusing on Linux, and their community process, much can be applied to Drupal as well.
Drupal core and the most popular modules are maintained by an exceedingly small group of developers. We need to continue to grow and refresh the community, which can be done through education. But we can't lose sight of the fact that it's more than just the code. A recent thread fired with passion when it was recommended to change the byline to: "Come for the code, stay for the community", which is a direct call to action to the developers we need to attract.
That an open source project's life force is the community is established and well known: within the community. There are many soft skills individuals need in order to operate in and contribute to a project. Several initiatives are defining just want those soft skills are that can be learned and encouraged. While situated within other communities, the skills are transferable.
Open Source Way - a guide on how to contribute to an open source community from Red Hat.
Teaching Open Source - a community for those teaching open source. "The next generation of software developers, computer scientists, system administrators, analysts, and build engineers need to understand Open Source and must be able to work efficiently within Open Source communities."
Drumbeat.org - Also the P2PU project at Mozilla is preparing a Hackers habitus to teach and assess these skills.
What we can learn from Linux & what to teach new Drupal developers
Jon Corbet explains that coming into an open source community is "like travelling around the world where they have their own way of doing things... you may step on toes and not understand. Walking into an established development community is the same thing." This is what we call in Drupal: The Drupal Way.
In the webinar he describes several specific situations where people attempted to work with the community, but failed in various ways. He said the community cannot afford to lose good people, so they outlined a detailed document on How to Participate in the Linux Community.
This webinar touched on the main points, namely that the way you exercise your influence is to contribute code, code quality being the most important factor. And that contributed code which has gone through the peer review process is always significantly better and of a higher quality. So the most fundamental thing is that developers need to trust this process.
He had advice directed towards companies:
- Ensure the management understands this process. Not just the developers. They need to understand the peer review process of open source.
- Rather than going after a few highly-sought after rock star kernel developers, build your capacity in house; instead of competing for a small highly sough after developer.
- Get legal on board, make sure they understand the licensing of contributed code.
- Let your developers contribute and be a part of the community process. If they are stuck in a box, they won't get the help they need, they aren't going to be happy in their jobs, they will go looking elsewhere. Allow them to contribute on the mailing list, they will be happier and more productive.
For developers just getting started:
- Testing, make sure it works, find bugs. Try on any system you can get your hands on. Builds your reputation.
- Review code. Looking at the code people have posted and respond with questions and comments. You will either find problems, or you'll learn something.
- Get out there early, don't wait to release. Communicate your plans early and get their feedback.
- Listen to what people are saying to you.
- Be prepared to make changes.
- Reviewing is hard work, it's thankless. Sometimes a reviewer is answering the same thing over and over, they get grumpy. Don't take it personally. Though the review process has gotten friendlier.
These points all make loads of sense. It's one thing to write them down and preach them, but the next thing is to learn how to transfer this to the new recruit just starting with Drupal.