In my previous post I focused on the key issues to think about when recruiting a startup engineer. In this post I’d like to shift focus on how to keep them.
Engineers jump ship early for various reasons, its usually a combination of the following three: instability in management, unclear path to an exit, and work that is mindless and unyielding. But there are those who stick around even if there isn’t an end in the near term, there are periodic shakeups in the organization, and they’re well past their vesting initial vesting period. The reason they stay is that they are enjoying the work, being challenged, and experience the impact they are making on users. They also have a manager who has given them the support they need to advance in terms of projects, and believes in quality of the work they are doing. So how does an engineering manager retain talent?
Prized Projects
Managers should realize that if they have engineers on their staff that have a decent track record, have been at even one successful startup (including the present one), and can bang out code on a couple platforms then chances are they are going to be wooed all the time! You can’t blame recruiters for trying to covet your prized programmers. Instead you’ve got to learn to understand each of your engineers and continue to motivate them. This is hard to do in a startup. Why? Because as a startup manager your time is limited and you’re under a lot of pressure to produce results and end up prioritizing it over making sure that everyone on your team is satisfied. And even if you wanted to please everyone there are only a limited number of juicy projects to work on. If you can’t promise a project don’t. But if there is a chance to break up a project into parts, and divvy it up that might be the way to go. That way you’re not playing favorites and you’ll benefit from building redundancy in the knowledge base over time. Remember startup engineers don’t want hand-me-down projects, i.e. they don’t want to feel like someone else has built everything and now they just get to maintain it. They want to be part of the creation phase, and if you can give them a slice of it then they’ll stay motivated because they’ll feel like you listened and cared about advancing their experience and skill set.
Communication and Coding Style
Most people speak up for what they want. Some just go off and build stuff. While others sit around and wait to be asked if everything is ok and are afraid to go off on their own. As an engineering manager its important to figure out what your engineers’ coding and communication style is right off the bat. Its perfectly ok to ask people whether they like having freedom to manage their own projects or need a more disciplined task master. You also need to know their preferred work style. Some people like to come in late and code into the night while others may be morning people and want time off to relax in the evening. There are those who code away in noisy environments while others need a quiet room to think in for a few hours a day. There are also some who work best if they just work on a single project and others like context switching or working along the entire stack as opposed to just front or backend development. These are the types of questions an engineering manager needs to ask during the hiring phase to gauge their candidate’s personality. It will of course change with time, which is why its important to do a monthly checkup at the very least.
Checkups
I’ve been on both sides of these, and frankly its awkward for everyone. The manager sits there and first wants a status update then moves onto pressing issues, and then finally asks the engineer how things are going. At which point an hour or more has gone by and everyone is exhausted. Checkups should not be status updates. A manager should know what the status is if they’ve reading checkins and tracking bugs. One-on-one time is meant to place the engineer’s concerns first. Find out if they’re stuck on something, if they’ve been exploring a new technology, how they like the project so far, or if they have any concerns with a member of the team or the company.
Rewards
Yes there are limited funds, so monetary rewards aren’t always possible. If you can’t afford to give someone a raise then at the very least give them praise! There are a lot of other ways to incentivize people: conferences, giving them time to learn a new technology, showcasing their latest achievements in front of their peers, and for heavens sakes tell the founders, investors, and management about the stellar job they’ve been doing!
Remember in a startup emotions runs high especially if there are periodic fires to fight. If there is one unsatisfied engineer then chances are there are more or there will be soon. As a manager your time is limited and its hard to motivate everyone on your team all the time. But that’s another reason why you have to make sure the team dynamic is one where people help each other out. Collaboration isn’t just about getting things done its about building a culture that can last through the fires.