Decision-making for healthy dev teams

Putting the responsibility of effectively communicating on senior members of a team and making technical decisions with an equal representation vote, is the least bad way to achieve a sustainable, healthy technical team.

Over the last 2 1/2 years, we have hired a total of 7 engineers for my team at SumUp, none of whom have yet left the company. One has moved internally, however, to pursue new personal challenges. This is a fair amount better than some teams I’ve been part of in the past, and one of the primary reasons for this I believe is our technical decision-making process.

If you’ve been working in software for a reasonable length of time, you’ve probably been part of both highly functioning teams, but also potentially teams which struggled with churn. These are not necessarily mutually exclusive, however, certainly inversely correlated.

Healthy teams are more productive

Measuring a team’s health is something that many companies are trying to solve, which means that it’s not exactly trivial. I’m certainly not going to share any breakthroughs on that front. However, research points to the idea that happy people are more productive. As I’m sure many of you have probably personally experienced, the feeling of making a positive impact is undoubtedly a factor in one’s overall satisfaction at work. Hence, a healthy team should be able to foster this.

Now, churn of engineers is not uncommon, but high churn has significant costs to any business and team morale. Hence, keeping it minimal is certainly preferable.

It’s part of human nature to want to feel like we are contributing somehow — this is especially true of engineers regarding technical discussions. Someone who does not feel their opinion is valued will very quickly disengage and likely take up an opportunity where their opinion is more valued.

This is one of the key aspects of a healthy team — making sure everyone feels like they contribute in a meaningful way. The same goes for engineers of all levels when it comes to technical discussions. Yet, it is often those with less experience who are more susceptible to not having their opinions heard or valued.

This is a commonly overlooked reason for churn amongst juniors. Faster career progression is certainly the dominant factor, but increasingly as companies work to resolve internal progression, intra-team contribution should be in the spotlight.

The feeling of contribution

It is common for teams to have a hierarchy. Engineers who are more or less experienced, with the more experienced ones tending to have more of a say in technical discussions. As a technical leader, this is an important and often overlooked responsibility, which without careful attention can have significant repercussions on the team as a whole.

Most companies have more or less a mapping to junior, intermediate and senior engineer job titles, with advancement beyond this in either a technical or managerial fashion. It is also common for healthy teams to be made up of members from each of these competencies.

The issue comes when the contribution to decision making is weighted unevenly.

The best way to encourage participation and this all-important sense of contribution is democratically. A simple vote. All members with an equal say. A senior and a junior with the same vote. Now, before you jump in the comments and tell me that a junior shouldn’t have the same decision making power when making critical decisions which may affect the long term functionality of a system, hold on a second.

Yes, a senior is a senior as they’ve likely screwed up a fair few more times than someone who is just starting out. You get a pretty good sense of what will and won’t work after spending hours debugging. However, this shouldn’t give what they say more weight, instead, it hands them the responsibility to transfer this experience, even if it is sometimes just intuition, to more junior members.

Essentially, the senior members need to learn to communicate the own decision making process which led to their justification. And not just the senior, this goes for everyone, weighted proportionally to how strong one’s opinion is.

Democratic decision making is a key to success for long-term, sustainable teams making difficult technical decisions on a regular basis. Everything else will have downsides which are detrimental.

Anecdotally, our team has been following the above process for nearly all technical decisions for a couple of years now. A proposal is written, a discussion is scheduled, sometimes for the same day it is finished, which concludes with a vote. The decision will then be documented and the proposal archived.

Personally, I partially attribute the high happiness, productivity and lack of attrition to our democratic decision making process. Witnessing other teams who do not have this struggle on one or more metrics. Not necessarily causation, but certainly correlation.

The importance of technical communication

This does leave us with one skill that is necessary amongst the senior engineers at your company. Strong communication skills. Or more specifically, strong communication when it comes to conveying and justifying a conclusion.

Arguing is a skill, it needs to be learned. The ability to convey how you came to a conclusion in a clear manner is incredibly hard, but incredibly necessary when working with other people. It’s normal to struggle initially, as I did, however with persistence you can learn it just like anything else.

A side effect of improving communication from more experienced engineers is the faster progression of those with less experience. Take, for example, a junior who is part of a team where the experienced developers explain why they should choose a particular database. Quite obviously, that junior is going to come away with a lot more context than one where that wasn’t the case.

This helps the junior progress faster in their career while feeling like they are meaningfully contributing to the success of the team.

Wrapping up

If you’re a senior member in your team, ask yourself if you’re communicating the reason for your decisions as well as you could be. Also, don’t be afraid to let some less important decisions slide in a vote. Experience should tell you what is essential, and what can take the back seat to prevent people from feeling like there’s a silent dictator.

Back to our tech stories
Follow Tom Arrell on Twitter or check out my repositories on Github.
This article was originally posted on my personal blog.