Are margaritas the key to developer velocity? If not, what is?
Posted 10 months ago by Gabor Puhalla
What happens when you get 12 Colorado technology leaders at fast growing small to mid-sized software companies together on a Zoom Tech Leadership RoundTable to discuss, ‘Are margaritas the key to developer velocity – if not, what is?’ That’s exactly what we did a few weeks ago, with the intent to bring tech leaders together to discuss their challenges and successful approaches to increasing velocity.
The structure we used was a Lean Coffee approach. We set up a Github repository of discussion topics in advance for input from the group. Topics were related to building velocity through the right mix of people, tools, and processes. We then time boxed each discussion topic so everyone had a chance to discuss their most pressing challenges.
While the roundtable discussion is private, many of the learnings are very interesting and could no doubt help other tech leaders, too. In a series of blogs, I’ll share some of these key findings.
The right mix of senior, mid and junior talent
For this group, one of the areas that impacts developer velocity is having the right mix of senior, mid and junior engineering talent. We discussed how to know if the mix is right, and how to bring in the right mix of senior, mid and junior talent. This article will focus on this topic.
We found that there was no one-size fits all solution for the leaders attending the round table. The biggest differences were between bootstrapped company needs and VC funded companies with intense pressure to grow rapidly.
Growing talent in-house
- Some of the companies employ senior engineering resources sparsely, preferring to hire mostly junior talent and grow them because they find they are typically more open to new ideas and not as set in their ways.
Consistent and repeatable processes
- Consistent and repeatable processes often determine if and how many juniors a company can bring on. If the internal processes are chaotic, it is hard to bring in juniors. The more consistent the processes are, the better the chance that they will develop good habits and thrive.
The right tech stack
- The tech stack is key for the ability to get junior developers up to speed and effectively contributing. The use of type safe language, use of React, use of a great continuous integration/continuous development (CI/CD) set-up or test framework increases the chances of juniors quickly adapting. It lowers the expectations of what they have to know when they join.
‘Free electrons’ for deep challenges
- Having some “free electrons”, which is a special type of developer can be incredibly valuable in an organization. This special breed is traditionally a senior engineer that’s effective, talented, and has a great depth of knowledge. These “free electrons” are developers you can ask anything of and they will execute. Often these talented specialists work alone versus in a team. It is important to have them on the team though, as they can work ad-hoc on really deep problems. You can learn more about these special developers in the book, ‘Managing Humans: Biting and Humorous Tales of a Software Engineering Manager’.
Senior developers leading teams
- One approach we discussed for quickly growing teams was to keep one senior developer per team, being highly selective on who that person is and how she can contribute. They have to be both technically good and have to understand the product and customer, too. They can make good technical decisions that the end product benefits from. This approach allows the leadership to add more mid and junior engineers. For juniors, the goal is to get them to mid-levels as fast as possible. If it is not possible, these developers will frequently leave the company.
Developing product expertise in junior engineers
- Tactically, you can develop product expertise in junior engineers by putting them on a support team and having them do demos to customers or in-house teams. This approach will help them understand the problems customers are facing and to think about the value they are demoing. Strategically, you can continue to develop junior engineers by defining and following a career framework.
As mentioned earlier in the article, there was no single approach that worked to bring on and develop the right mix of senior, mid-senior and junior developers. There was, however, a lot of consensus on the critical nature of having a good skill development plan. In my next article, I’ll share some of our discussion findings focused on managing technical debt wisely and KPIs that support building developer velocity.
If you’d like to chat about developing teams and building developer velocity or to be considered as a participant for future tech leader roundtables, please send me a quick note via email or on LinkedIn – I’d be happy to talk to you.