Engineering Management: A Guide.
Engineering management is one of the most important roles in many organizations. In technology startups, the success of an engineering manager is often directly correlated to the quality of the product and the fortunes of the startup.
At Trueface, we often get asked to describe our engineering modus operandi by investors, recruits, and clients. As a startup that has undergone previous product pivots, process iterations, and incremental and drastic changes, our management philosophies did not develop overnight. But rather they were the result of an iterative process that manifested over the years.
In this article, I will try to summarize what has consistently worked for us in a decade of building startups, and to condense my operational philosophies into five main points. The following points should help any aspiring technical or non-technical leader be a better engineering manager.
- Know what kind of engineering manager your company needs you to be.
The role of engineering manager varies greatly. Some engineering managers have no technical background, some are very technical. Some feel the need to stay technically capable while others have no quarrel with transitioning to a pure management role.
Founders have often built their products by hand before hiring any employees to work on them, and engineering managers that are founders of their companies often feel the need to stay very technical, and to continue contributing to technical product development.
Figure out what your company needs. Do they need an operations manager? Or do they need a super technical lead? It's often hard to be both (but not impossible). As the team grows, shedding the role of a technical lead might feel extremely difficult (I’ve struggled with it myself), and if you’re the type that would like to remain technical, and if that desire hinders your ability to be a successful manager, then hire for the role. Give your organization what it needs.
2. Know what motivates your team.
Some employees are motivated by more physiological needs. They need some combination of the possibility of earning more, achieving bonuses or seeing a successful exit on the horizon. Some employees need to feel safe in their roles to be productive and to know that the company has enough runway. Some people need to feel a sense of belonging and purpose, while others are mainly driven by ego and the desire to be perceived as domain experts or thought leaders. Develop a friendship with your team and learn what motivates them. Try to figure out their attachment styles. Use that knowledge to drive them and strike the right balance between being an authoritative and supportive manager. Avoid a confrontational environment.
3. Develop processes and tools for internal & external success.
a. Understand the classic project development trade-off
The four target constraints of project management are quality, cost, scope, and time. These four target functions can be viewed graphically as a Tetrad Trade-off.
I suggest adding risk and resources to the equation. When you do, it becomes obvious that finding a balance that minimizes scope and time and allows for incremental iterations in the project's life cycle is crucial. Always say no to any new scope increase before saying yes. Find the minimum that allows you to test a hypothesis, sometimes it’s not a finished product, and often it’s something that requires no engineering effort.
b. Understand your capacity
The simplest way to quantify your production capacity is in terms of developer man-hours. For example, if you have 5 full-time developers working 8 hour days then your capacity is:
40 hours a day
200 hours a week
Figure how to divide up your team’s time and effort to maximize efficiency. Keep in mind that you need to allocate time to QA and support in addition to product development. Unless your team is big enough, it is often hard to create a split that encompasses all the skills needed for an effective support team, which makes role specialization difficult and places a heavier burden on effective time management.
c. Avoid the bystander problem.
In one experiment, for example, Latane and Darley had a student alone in a room stage an epileptic fit. When there was just one person next door, listening, that person rushed to the student’s aid 85 percent of the time. But when subjects thought that there were four others also overhearing the seizure, they came to the student’s aid only 31 percent of the time.
The Malcolm Gladwell excerpt above describes a phenomenon that is common in team dynamics called the bystander problem. Never assign a task to a group without explicit accountability. Clear ownership of every task is needed. We learned this the hard way.
d. Use measurable trackable objectives — OKRs are recommended
Managing by objective (MBO) is an extremely effective technique that keeps your employees aware of what they’re working towards. It also keeps company goals square in employee sights throughout execution. OKRs marry MBO management techniques with SMART goal setting principles to create a powerful, results-focused methodology that we use every day and highly recommend.
e. Pause to identify and correctly label the problems.
Labeling is an important step in effective communication. It’s often hard to address a problem in people’s minds until you pause to clearly identify and label it first. Good managers start by labeling vague issues. Labeling acknowledges the issue and paves the way for an effective discussion.
f. Visualize your project and workload.
Being able to see project statuses at a glance is immensely useful and can save you a lot of time and effort. The easiest way to track complex projects and pinpoint problems and areas that need focus is with good visual project representation. At Trueface, we use everything from project-based kanban boards and Gantt charts that track burn to feature matrices and story maps to give engineering and management full transparency into our projects.
4. Automate
The best way for small teams to do more with less is automation. We use automation to keep information flowing. We push information whenever we deem it necessary and we make it easy for people to pull the rest. We use simple webhooks and Zapier automation, all built around our chat to keep our team aware of everything from revenue to the status of support tickets. Today’s teams spend so much time on the chat so we also automate analyzing our communication to identify trends and areas that need focus.
5. Experiment, track, and document
We learned the hard way that it's not easy for you to guess what yields results without experimentation. Experiment to figure out what works for you and your team. Create an experiment schedule and stick to it. Recording and documenting your decisions and outcomes is a crucial step in improving, so we recommend you start a diary for each project and technology. Track your team’s time (your most valuable resource) and how it's spent. At Trueface, we use Wakatime for passive time tracking.
In conclusion, developing an effective engineering management style is an iterative process that can take years to define and get comfortable executing. For the TL;DR crowd, the steps that have worked for me and the Trueface team include:
- Figuring out the type of leader your team needs.
- Understanding your teammates and what motivates them.
- Developing processes and rules for project planning and review, work allocation and goal setting.
- Automating wherever you can.
- Experimenting, tracking and documenting everything.
I hope this post helps you understand the processes we’ve taken and why, and will hopefully help you skirt some of the early pitfalls we all faced, figuring out what works best for us. Try new things, iterate, try something else to figure out what works best for you. Above all, have fun with it.