• On The Insider: Heidi Klum Takes Seal's Name
September 12, 2008 8:07 AM PDT

Cracking the open-source community code for drive-by developers

by Matt Asay
  • Font size
  • Print
  • 11 comments

Jack Repenning, CTO of Collabnet, takes issue with my complaint that contributing code to open-source projects is hard. Jack's suggestion that "while community membership requires more than 'casual contribution,' you shouldn't have to 'become a key member'" in order to play a part is fair and spot-on. Unfortunately, it doesn't really tackle the big issue.

Most would-be open-source contributors don't have time to become anything more than casual contributors. This means that the vast majority of potential open-source contributions remain in their silos and never make it back into the common code pool.

Think about Red Hat CEO Jim Whitehurst's suggestion that enterprises need to start participating in open-source development. I'm going to be speaking at the New York CTO Club in November on this very topic: how do we encourage "drive-by developers" to become full-fledged members of open-source communities?

It's a non-trivial question with much at stake. The organization that cracks this code would likely immediately take center stage in open-source development. It must become easier to contribute to open-source communities if we hope to make open source more than simply an interesting facet of the software industry, and turn it into the central, driving force behind the industry.

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 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. You can follow Matt on Twitter @mjasay.
Recent posts from The Open Road
The 'wisdom of crowds' loses steam
Microsoft's embrace of MySQL could kill it
Apple: 'Enterprise' is as enterprise does
Theory of competition fails in open source, elsewhere
Microsoft's Web business spurring development of IE
The case for the open-source Goliath
Netherlands' open-source policy goes double Dutch
Why is Google Android beating Symbian?
Add a Comment (Log in or register) (11 Comments)
  • prev
  • 1
  • next
by royrusso September 12, 2008 9:42 AM PDT
There's no magic here. A system that supports bi-directional dialog leads to just this sort of one-off contribution. Apache, Hibernate, and JBoss are great examples of this, allowing community members to submit code patches either via forums or issue-tracking software (JIRA). As an another example, SugarCRM's forge and exchange lend themselves to more active involvement with regards to extending the base platform - benefiting everyone inside the community. So to answer your question, you encourage active involvement by being inclusive in your community efforts, and sometimes that does mean ceding a bit of control.
Reply to this comment
by The_Decider September 12, 2008 11:11 AM PDT
If I didn't already know it, I would suspect you don't have the first clue about software development or writing code.

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.
Reply to this comment
by Matt Asay September 15, 2008 6:01 AM PDT
And yet you graciously keep reading. You're a trooper, The_Decider. :-)

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.
by Mike Dartt September 12, 2008 12:07 PM PDT
@The_Decider: Matt's original post focuses less on the technical aspects and more on the "cultural/management" ones such as development priorities. I don't think there's any controversy about needing to understand the code and do development that's consistent with the existing codebase.

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.
Reply to this comment
by The_Decider September 12, 2008 12:51 PM PDT
My point is important, even if he is ignoring it. Casual developers should not contribute code.

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.
by The_Decider September 12, 2008 12:56 PM PDT
I do agree with: ""Not Invented Here" attitude is one thing (and particularly silly in an OSS project)"

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.
by odubtaig September 12, 2008 1:16 PM PDT
Really though, whether someone can contribute frequently or not doesn't necessarily have any bearing on how much time they've spent understanding the project. Could be they've spent 99% of their time understanding the project and 1% making a minor change while someone else with more time on their hands has spent 5% of their time understanding and 95% making more substantial changes (maybe it's a change their employer wanted and they're getting paid for their time).

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.
by The_Decider September 13, 2008 12:22 PM PDT
@odub,

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 odubtaig September 13, 2008 2:13 PM PDT
OK, won't be asking you for any tips on time management then.
by Matt Asay September 15, 2008 6:03 AM PDT
Most developers are, by definition, "casual developers." You want to restrict projects only to those that are fanatical about the project. This is a recipe for blinder-based development. It's unhealthy and unproductive. Most developers work for the GEs of the world and can't make it their life's mission to contribute to Alfresco or whatever project.
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.

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.
Reply to this comment
(11 Comments)
  • prev
  • 1
  • next
advertisement

E-tailers linked to 'scam' blame customers

Priceline, Classmates.com, and Orbitz say customers should read the fine print before complaining about being charged to join loyalty programs they didn't want.

The 411 on early-termination fees

Verizon Wireless has doubled its early-termination fees for smartphones, but what does it mean for the rest of the industry?

advertisement

About The Open Road

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

The Open Road topics

advertisement
advertisement

Inside CNET News

Scroll Left Scroll Right