Developing open source software in open environment
Should we require that open source is developed openly?
Roy Tennant wrote an interesting post about the definition of open source, in it he says:
"Open source" should mean exactly that and nothing more—the source code of the software is open, thereby allowing others to see it, understand it, and perhaps modify it. How the software itself is developed should be an additional aspect to the terminology, such as "openly developed open source."
Of course I went out to re-read both the open source and free software definitions so I could prove him wrong...but I can’t. He is right, the definitions of both free software and open source software say nothing about being developed in the open, but as those of you who have attended one of my workshops (or read my book) know, I disagree.
A true open source project should be open in every way. The source code of course, but also the development processes. It is only with true transparency that you end up with a successful, stable and secure open source product. Whenever companies talk about why they choose open source software they focus on the transparency around both the software and the development of the software and how that transparency adds to the value of the software.
An open source project with one developer or one closed group of developers will eventually fall prey to the failures of proprietary software. Eric Raymond says, "Given enough eyeballs, all bugs are shallow"—I’d add that if those many eyeballs aren’t an ever-changing, ever-growing community then eventually bugs will become indistinguishable from the rest of the code. Maybe that’s a bit dramatic—but the fact is that one of the value added benefits of open source is that the software can live on and on. If, however, the software is developed by one person or one entity and that sole contributor decides to stop contributing, chances are their software is going to die...whereas an open source product with a community behind it will live on forever and ever.
Roy also says:
Unfortunately, I think the term "open source" as it has come to be understood through the near-religious zealotry of some advocates has clouded our terminology more than clarified it.
While I don’t think I’m a 'near-religious zealot' when it comes to open source, I am one of those people who adds community and open development to the definition of open source and I have found that it helps many people when evaluating products available to them. I always say that an open source product without an active open development community behind it has more of a chance of disappearing than one with open active development, but if the product does what you want as it stands now then go right ahead and use it (I have a few of these types of products which are no longer supported or developed on my computer in fact). Without this warning, people would choose the first open source option they find and then complain to me (or to their colleagues) that it doesn’t live up to the hype.
So, yes, Roy is 100% right in that the definition of open source in no way implies or requires open development, but in my opinion it very much is keeping with the spirit (and success) of open source to make sure that your open source project is developed in the open.
Originally posted on What I learned today..., reposted using Creative Commons.