Engineering Culture Mindsets — Family VS Commando

Written by nbenari | Published 2018/09/21
Tech Story Tags: engineering-culture | software-development | software-engineering | engineering-mindsets | engineering

TLDRvia the TL;DR App

Is your company’s engineering culture more like a family or more like a commando?

Family

In a family mindset you never give up on anyone, or they have to really go over the top to get themselves kicked out. If they under-perform, you invest time and resources to get them to the desired level of performance.

If Joe doesn’t know OO Design patterns, we’ll give him time to learn, reading and doing tasks that require using patterns, and in a year he will master this skill. We’ll also assign Sarah, which masters this skill, to be Joe’s “buddy” during his training, and give frequent feedback to Joe on his work.

Another indication of this mindset are internal promotions. As people express aspirations to advance into management roles, or horizontally into different roles (e.g. frontend to backend), we will do our best to grant them their wish and avoid losing them, even if they are not qualified for that role at that time.

Commando

In a commando mindset, you define the bar of performance, and only those above it may enter, or alternatively - you define a quota per time period, test many candidates, and accept only the best of the best up to the quota, letting very good people go because they were a few points short of making it.

The people you look for in this mindset are those who take responsibility over their own training. They see learning as part of their job, it’s also a part they like a lot, and they will ask for courses and going to conferences to keep themselves up-to-date with the current trends. If a task requires a new skill, they will teach themselves the skill as part of doing the task.

The Small Startup

Usually, very young companies will try to be commandos — hiring only people they don’t need to teach much. This mindset fits well with companies which are limited on cash, and especially on time. You need results and you need them fast. Training someone for a year is simply not an option, at least until the next round of investment.

Starting a company with only rookie developers is another thing I’ve seen in the wild. It sounds like something that won’t work, but Tech companies don’t succeed only because of good R&D. Actually, if your company can sell, your R&D can be very mediocre and still deliver value for the customers. The problem here is the creation of an anarchistic or non-existent engineering culture, with tons of technical debt, lack of quality standards, and basically a mess that will be hard to scale.

My recommendation at this stage is — have a commando mindset.

The Medium-Sized Company

In medium-sized companies, people eventually get promoted internally, so you have the excellent support engineer that wants to be a developer get his shot. Now you have your first rookie developer in the company. Who is going to teach him/her? Will it be the team? The Team leader? The answer depends on your engineering culture. If you have no culture defined, the answer is probably no one.

It’s sometimes assumed that if someone was excellent at his previous role, he/she will also be excellent as a developer. Well, it doesn’t quite work like that. Teaching an internally promoted rookie dev still requires an investment. It might take 1 year to get him/her to the level of the “commando” peers. Hopefully, you get back a loyal employee, which is relatively cheap, with the added bonus of deep knowledge of the organization as a whole, acquired in the previous role.

My recommendation at this stage is — have a family mindset.

The Fast Growing Company

A company sometimes needs to grow in big numbers of engineers. It’s not always possible to find 20 or 50 commandos in a short period of time. You will have to get some less experienced engineers, maybe even fresh out of school. This does not mean you should not have high standards for rookie engineers. Quite the opposite — you want to filter very hard at this level of experience, and get people which are bright, eager, team-players, fast learners and have the potential to grow into commandos in 1–2 years.

Not filtering well at this point will cause you to invest years into the wrong people, which you will have to fire at some point for under-performing and you will lose all of your investment.

Another skill which might not be obvious to look for, is people who can teach what they have learned to others. This becomes important when your rookies become commandos and need to train new rookies.

My recommendation at this stage is — mix the mindsets! Filter for the best rookies, and invest a lot in them.

The Learning Mindset

At some point you will have a mix of commandos and rookies and you will need to have an infrastructure for training, but not only for the rookies. Learning and improving is something you should probably have as a value and invest in every employee.

If excellence & professionalism are values in the engineering culture and in the company as a whole, which are not just hung as posters on walls but actually lived, there will be a constant thread of learning for everyone intertwined with normal “work”. This sends a powerful message to employees. Such legitimate space & time for improving, and actually the expectation from everyone to improve, will help retain, improve and attract talent.

Sure, talented people can leave after 2 years of investment in them, taking their new value to market and getting a better offer, but that will always happen to some degree. You can’t afford to stop investing in your employees due to loss aversion. Like a good investor, you sow wide, and reap enough to make the investment worth it. Also, would you prefer training people and see some of them leave, or not training them and have them stay for years at their current level of performance?

Worst-Case Scenario

The worst scenario, which I’ve experienced first hand, is to have an ocean of rookies with small islands of commandos, and have no culture of engineering at all. The rookies create garbage and try to put it in production, the commandos spend most of their day to try and stop this from happening, and everyone gets frustrated fast. The commandos are the first to leave, as they can get better offers without breaking a sweat, leaving you with an R&D department full of untrained rookies, causing production issues and re-inventing wheels, teaching each other bad habits and driving their managers crazy. Everything seems to break apart at the worst moment when you are short on funding and need the next round.

Summary

Always filter as hard as you can afford to. If you are not a small startup fighting for survival, don’t filter mainly on years of experience, but on potential. When you have a strong core of commandos, you can inject rookies at a controlled pace. Don’t overflow your trainers. As soon as you can afford to be a family, be one — take care of your own, develop them, retain and reap the benefits of happy and loyal employees, which are also excellent at their jobs, thanks to you.

Write to me here or on Twitter: @nbenari


Written by nbenari | SWE @ Meta
Published by HackerNoon on 2018/09/21