Check out this paper “The Economics of Community Open Source Software Projects: An Empirical Analysis of Maintenance Effort.” In it the authors hypothesize that Open Source practices increase the quality of the software that gets produced and subsequently lead to code that is less costly to maintain.
Low quality code must be refactored more frequently than high quality code and there is substantial evidence that maintenance interventions tend to lead to even more degradation of the quality of the code. So not only are low quality applications more expensive to maintain, the unit maintenance cost also increases over time. The authors use the term entropy to describe the phenomenon and introduce the concept of entropy-time as a means of creating a standard for measurement of this degradation over time due to subsequent refactoring activities.
The authors use this notion of entropy-time to conduct an empirical analysis comparing the maintenance costs for Open Source applications with the maintenance costs that come from a traditional maintenance cost estimating model developed through study of software maintenance efforts for proprietary software applications. The data studied confirmed their hypotheses. The study was rigorous and my intent in mentioning it is to pique your interest not to be comprehensive, so check it out if you’re interested.
What interests me are the conclusions the authors draw and their suggestions as to why these may be so. The authors posit that Open Source Software may be higher quality software because it is being developed by people all over the planet where there is no (or little) direct communication requiring the development to be modular and very tightly coupled. They further suggest that the interests of open source developers are more motivated towards quality because of the pride they take in their work or because they know that their work will be viewed by the masses. The final factor they suggest might be responsible for this increase in quality with Open Source is the fact that schedules are self inflicted rather than in proprietary efforts where schedules are driven by customer or market demands.
I thought it was a great study with thought provoking results. The authors ended with several examples where companies adopting a mixed public/private model has resulted in high quality software successes. So maybe the software development community should look at where adopting open source practices might improve the quality of the software we are producing?
Low quality code must be refactored more frequently than high quality code and there is substantial evidence that maintenance interventions tend to lead to even more degradation of the quality of the code. So not only are low quality applications more expensive to maintain, the unit maintenance cost also increases over time. The authors use the term entropy to describe the phenomenon and introduce the concept of entropy-time as a means of creating a standard for measurement of this degradation over time due to subsequent refactoring activities.
The authors use this notion of entropy-time to conduct an empirical analysis comparing the maintenance costs for Open Source applications with the maintenance costs that come from a traditional maintenance cost estimating model developed through study of software maintenance efforts for proprietary software applications. The data studied confirmed their hypotheses. The study was rigorous and my intent in mentioning it is to pique your interest not to be comprehensive, so check it out if you’re interested.
What interests me are the conclusions the authors draw and their suggestions as to why these may be so. The authors posit that Open Source Software may be higher quality software because it is being developed by people all over the planet where there is no (or little) direct communication requiring the development to be modular and very tightly coupled. They further suggest that the interests of open source developers are more motivated towards quality because of the pride they take in their work or because they know that their work will be viewed by the masses. The final factor they suggest might be responsible for this increase in quality with Open Source is the fact that schedules are self inflicted rather than in proprietary efforts where schedules are driven by customer or market demands.
I thought it was a great study with thought provoking results. The authors ended with several examples where companies adopting a mixed public/private model has resulted in high quality software successes. So maybe the software development community should look at where adopting open source practices might improve the quality of the software we are producing?
So what’s the right answer? I honestly believe that every open source project begins with the intent of producing superior code – or at least better than that of established software vendors. But I can also see Faler’s point that after so many permutations, iterations and generations those responsible for launching an open source project are no longer the ones in charge of working the code. That doesn’t mean they are purposely sabotaging it; it just means they may not have the understanding or ability to “keep up the good work.” As I note in my blog, though, applying some of the SaaS offerings that analyze applications and measure them for structural quality – sort of a Quality as a Service offering if you will – can bring open source back to its intended top quality code status.