Open Source Software Architecture

"In the landmark book The Mythical Man-Month, Fred Brooks argues forcefully and eloquently that conceptual integrity is the key to sound system design and that conceptual integrity can only be had by a small number of minds coming together to design the system's architecture." - Software Architecture in Practice, Second Edition By Len Bass, Paul Clements, Rick Kazman


If this is true, I doubt if it is possible for open source software to have sound architecture. Open source software is developed by many developers. Hence the chances are that open source software would be designed with many number of minds coming together. Hence the conceptual integrity is at risk.
With my experience, with Apache projects, what I feel is that, it is hard to apply good design principles at times. Someone or the other would have a counter argument. What is worse in community driven projects is that, when something is done wrong in the first place, it is hard to get it corrected. I am not talking of syntactic or logical errors here, open source projects are far ahead when it comes to fixing those - look at the number of patches submitted in active projects, but rather the principles of overall architectural designs.
Large number of minds coming together helps Open source software in terms of testing, it helps in terms of finding bugs as well as fixing bugs, and even in implementing new features or when porting to new platforms. However, all those are implementation aspects. And as we know, sound software architecture is independent of implementation details. In other words, open source models are good when implementing systems, but not when architecting.

Comments

Unknown said…
Never working at open source project, makes me wonder how they architect software? How they keep developers doing things within the given architecture at all? In my experience it is sometimes tough to agree even a small number of minds on one particular architecture... Task of doing that with hundreds and thousands to me is near to magic, for that I hold a great respect towards open source projects.
Almost all of the Open source projects and their histories that I have read it is clear that it was a SMALL group of people that got the project IDEA off the ground. I would think that at that point most of the architectural decisions were made. So I don't see a real disconnect between the book and practice.

I would say that by the time an OSS project starts to gather lots of people it is already on the implementation path.

Just my 2 cents worth.
-jeff
afkham said…
I'd have to agree with Jeffrey. It is the case most of the time. Even when there are new major features added, it is done in the form of a new module in general. It is a few interested parties that come up with the architecture for this new module. Every single person in the community does not get involved in every design/architecture decision.