Software teams come in many different shapes and sizes, and I have probably worked with most of them at one time or another in my nearly twenty years of working in software. One particular dynamic that I have come across in software teams is in where the decision making responsibility lies. In a true democracy, every member of the team is involved in making decisions. Every member of the team brings with them a unique blend of skills and knowledge, and this ensures that decisions will be made across as wide a spectrum as possible. It also ensures that every one feels valued, and that their opinion has been considered in the decision making process. To form part of the decision making process you must therefore be fully involved with current events, their ramifications and likely impact on the team. In short, every member of the team needs to be fully engaged.
This is how self-organising teams are born. Having worked (and continue to work) in such teams, I personally find these to be the most efficacious and highly performant. Opinions are sought from a wide range of individuals, thus limiting the chances that an unsuitable or poorly formed decision will be made.
Contrast this with a dictatorship. This is where the majority of decisions are made by a single individual within the team. Usually this will be a senior software developer within the team who has good knowledge of the applications, tools and technologies. As good as this individual may be, they are no match for the combined skills and knowledge of the entire team. No single member of the team can know everything (no matter how much they may believe this). There is no place for vanity and arrogance on a software team. As they say, pride becomes before a fall.
These teams are ultimately born out of a failure of management. There are insufficient checks and balances in place to ensure that a wide range of opinions are sought before decisions are made. And whilst some decisions may be the right ones, there will be many that are ill considered or just plain wrong because the dictator failed to solicit the rest of the team for opinions. This is as much a fault of the management as it is the dictator.
Unfortunately I have worked in such dictatorial teams previously. No single developer should be in sole charge of decision making responsibility for an entire team. Opinions should be sought from across the team, as every one’s contribution is important.
In the same way as political dictatorships cannot match democratic ones, then dictatorial software teams are no match for democratic ones. Self organising teams are never born out of dictatorships, they are always born from democracies.