There are many ways to make decisions in a team. Most teams use always the same style to decide things. Unfortunately there is not one way which is perfect for every situation. If you choose your decision style depending on the context you will come up with much better solutions for important questions.
This article is based on a very interesting chapter in Gerald M. Weinberg’s book “Becoming a Technical Leader“. The author describes three basic ways for making a decision: Voting, Consensus and the Strong Leader.
A very simple way to make a decision between some predefined possibilities is to make a voting without any discussion. The options are summed up and then every team member votes for his or her favorite. In the end the team agrees on the option with the most votes. This process is quick and everybody feels equally important.
People won’t be manipulated by the ones with more eloquence or personal power. Nevertheless, people tend to follow the crowd. If the first voter chooses option one it is very likely that others will follow and also vote for option one. You can avoid that by letting the team vote simultaneously and then uncover all the votes at once.
The average result of a voting is a decision which is not perfect but also not totally wrong. The problem is that not everybody in the team will have the knowledge to make a good vote. In a typical, small software development team of a few people that will lead to medium-quality results.
Consensus means that the whole team has to agree on one solution. The participants discuss the problem until they find a consensus which is acceptable for everyone. In most cases that consumes much time and it can be very exhausting if the opinions are too different and two team members insist on their contrary opinions. However, the average quality of the final decision is very high because normally, in the end of the discussion, everyone has a deep understanding of the problem.
Having a strong leader who makes the decision is also a valid way. The team can discuss the problem but in the end it is one person who decides. Even though that seems “old school” for many software developers there are some situations when giving the decision power to one team member can be very effective. It is perfect when you have one domain expert who has much more knowledge of the topic than all the other ones.
The secret is that the decision maker doesn’t have to be the officially appointed leader of the team. Instead it should be the one with the most experience on the topic you want to discuss. This can change from subject to subject. Of course this approach can also fail dramatically if the leader makes a bad decision.
Choosing the right style
Many teams use always the same style. For example there are teams that want to be as democratic as possible thus they always vote. Other teams have a “Senior” software developer who constantly uses her right to make the decisions. Others prefer to find a consensus with the whole team. Some teams have a mix of different styles which can also work. The problem is that very few teams choose their decision style based on the context! Choosing the right style before every discussion can boost the quality of the outcome!
Here is a table which you can use to choose the best decision style for your current context:
What are your experiences with different styles for making decisions? Your comments are highly appreciated!