Comments on: Cracking the open-source community code for drive-by developers
Open source would be even bigger if it were more inclusive. It must become easier to contribute to open-source communities.
Open source would be even bigger if it were more inclusive. It must become easier to contribute to open-source communities.
Web sites launch all the time, but they also shut their doors. We highlight 15 that bit the dust this year.
Let the debate begin: Was the iPhone more important than iTunes? Was anything bigger than Google finding a great business model? CNET offers its list of the 10 most important stories of the '00s.
Matt Asay brings a decade of in-the-trenches open-source business and legal experience to the Open Road, with an emphasis on emerging open-source business strategies and opportunities. Matt is general manager of the Americas division and vice president of business development at Alfresco, a company that develops open-source software for content management. He is a member of the CNET Blog Network and is not an employee of CNET. Disclosure.
Add this feed to your online news reader
Contributing to a non-trivial project is not a casual exercise. It takes time to understand the code, and that must be done before writing code to patch(or even find the buggy code) or add to it. They have to keep on top of what already was done and what is being worked on.
If a person wants to contribute to a project but can't do so very regularly, they shouldn't be writing code. They should be bug testing, writing documentation, stuff like that.
If you start letting casual contributors submit patches and new functionality, anarchy will erupt and your project will spiral down into a total mess.
You absolutely do need more than just hard-core project developers involved in a project for it to thrive. Your exclusion above would have 99.999999999% of the planet not contributing code. I doubt that's what you want.
While a "Not Invented Here" attitude is one thing (and particularly silly in an OSS project), I understand how the core team would rather do other things than spend their time double-checking code submissions. A few things come to mind for addressing these sorts of issues:
* Published code standards (variable naming, when to make new routines/objects/etc., commenting, etc.), or ones that are clear and quickly grasped from the code
* Requirements for documenting testing prior to submission, whether via existing unit/automated tests, or through some other means
* Requirements for documenting the changes made at a high level
These sorts of practices could make it much easier for the core team to quickly evaluate contributions and encourages better design on the part of the contributors. The testing documentation could also be used by future contributors as models or starting points for their own tests, while the high level documentation is a starting point for end-user documentation.
Following code standards is all well and good but doesn't address the problem of people writing code for a system they don't understand.
Documenting testing is not the same as proving that you tested and that your tests are even relevant.
What good is it to document the changes when the changes just broke a good chunk of your program?
The fact remains, if you only have time to contribute once in a while, you likely didn't have the time to learn the software. => You should not be writing code for it.
But there needs to be true standards on who can submit changes and your 3 bullets, while important do not address the issue to the point where opening up development to more people is a sane idea.
This is one reason I like Rails. The plug in system is great for casual developers because it doesn't really effect anything else, and those plugins that are worthwhile will get used and become part of rails, perhaps not officially, but at least an unofficial part of rails.
Just because someone is a 'causal' developer, doesn't mean they don't understand the project. It only means they don't have as much time as others to spend on it.
Your assertions goes beyond any credulity. If someone only has time to contribute 2-3 times a year, they simply don't have time to learn the system.
- by russ danner September 12, 2008 2:23 PM PDT
- Open source communities need to make contribution a priority. As Mike points out, they need to lower the barrier to getting code in but putting a process in place and letting folks know what is expected. They need to make it someones job or a hierarchy of jobs (if the project is significant in size) for reviewing code. It's a core job IMO just like a community manager is a core, and extremely important job.
- Like this Reply to this comment
-
(11 Comments)Companies engaging in open source need to give developers the time to participate. This is tough one. When you are working on a relevant project it is easier to justify. When you are not it's much harder to allow your developers to burn daylight working on something that doesn't contribute to a deadline. However, you need to remember that, as a development manager you have other priorities than just deadlines. One such example is professional development.
I'm not saying you should let your developers contribute to just any project. But I think you should let them contribute to some project. When they work only with the members of your project they can begin to think inwardly. Participation with outside people invites fresh thinking, insight and mentoring. It develops their ability to work remotely, forcing them develop strong written communication skills. Help your developers pick the communities they join and the projects they contribute to. Make sure they are hanging out in the best possible neighborhoods. Projects like Linux, Alfresco, Hadoop and many, many others have world class developers and management teams behind them. Expose your developers to these people and they will blossom.