Open Source Software Engineering is Not Communism

I’ve worked on a number of software engineering projects over the years that involve a group of 3-5 developers. I’ve also contributed to large open source projects of 20+ developers.

The figure to the left is taken from a post by the Qt guys on open governance roles.

In my experience, the roles of developers should be structured precisely as the figure suggests:¬†hierarchically. Despite the view of open source projects as being built “by the people”, the flat model simply does not work in a world populated by human beings (with egos and opinions). It’s the difference between representative democracy and pure democracy. The overwhelming number of design decisions and designer opinions can bring a project to a halt.

Structuring the developers in a pyramid may very well produce a worse (less maintainable, less general, more coupled, etc) design, but it will produce one, in a reasonable amount of time. Sometimes cold code churn is more important than the philosophical soundness of the design. The pyramid encourages code churn, and discourages stale mates over controversial design decisions.

0 thoughts on “Open Source Software Engineering is Not Communism

    1. Lex Post author

      You are in fact correct. I was using the term loosely to mean a flat organizational structure, addressing a commonly held belief. Thanks for the comment.


Leave a Reply

Your email address will not be published. Required fields are marked *