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.