Post

Engineering Management for the Rest of Us

Around one year ago, I was promoted, and in a company with a Y career, I had to choose between a management or technical branch. I had already put a lot of work into thinking about this, so it was unsurprising to my manager that I quickly chose technical. It may come a moment when I will become a manager, but so far, managing projects, developing solutions, ideating new engineering efforts, and providing guidance and vision to younger developers have been fulfilling and quite challenging.

I learned that the technical path is not people-free, nor was I seeking it to be. The more I acquired responsibilities, the clearer it became that I faced issues that I would classify as management-related. Dealing with conflicts, owning and making decisions, and, the most impactful, helping others, mainly helping junior engineers grow and achieve their goals.

It was a great surprise when my Twitter feed got stormed by posts on Sarah Drasner’s book Engineering Management for the Rest of Us. A book written for those who didn’t go into engineering to become a manager but still want to do their best to support their teams.

This post tries to summarize this very well-written and insightful book, not from the perspective of someone who is now or wants to be a manager but wants to learn as much as possible about people to help them do as great work as they can. This text intends to help me organize my learnings, at the same time as it can also be helpful to others.

Many of the phrases I write are directly taken from the book, and although I expect that you can learn from this, I still highly recommend you read the book. Sarah writes in such an easy way, and I bet you’ll be hooked as I did. So, without further ado, I think we should jump into it.

The manager’s job

The manager’s job is to create an environment that enables everyone to do their best work together and succeed. They should strive to ensure that staff is compensated fairly and align people with the outcomes, ensuring they understand the why instead of tactical details of how to get something done.

The job is less about writing code and more about expressing strategies and ideas. Managers should disambiguate healthy conflict from personal attacks to encourage respectful discourse. They should be interruption-driven to keep their team focus-driven and always aim to make great work.

It’s indispensable to understand power imbalances and people structures and consider strategies outside one particular project.

Values

Values are fundamental beliefs that guide, motivate, and drive our actions. The act of sharing values can have the side effect of building trust and vulnerability in a team. These values are mentioned several times in the book, and the author indicates that identifying the individual values of everyone on the team can help understand someone’s perspective on different scenarios.

Sarah proposes a values workshop as a tool to understand one another better and not to be weaponized, where the manager gives team members a few minutes to pick five values from a list like the one below and share their reasoning.

- Accountability, Advocacy, Autonomy, Compassion, Collaboration, Contribution, Creativity, Curiosity, Dependability, Diversity, Empathy, Ethics, Excellence, Fairness, Family, Friendships, Fun, Growth, Happiness, Health, Honesty, Humility, Humor, Inclusiveness, Independence, Knowledge, Performance, Personal Development, Spirituality, Perfection, Power, Preparedness, Reliability, Success, Teamwork, Traditionalism, Trustworthiness, Versatility, Vision, Warmth, Wealth.

Values are mutable and can change. It should not be held against someone.

Negative Bias

The human brain has a negative bias that often reminds us of bad memories more than good ones. However, not every fear reaction is necessarily a threat to our livelihood or well-being. To mitigate stress during conflicts, several steps can be taken:

  1. Check-in with facts: Sometimes, we react to an event without checking that we understand exactly what’s going on.
  2. Find and rally around the positive: Looking for the positive elements of a situation and saying them out loud can help balance what’s naturally imbalanced.
  3. Reject negative premise: maintain a positive outlook.
  4. Review consequences: What are the real risks? State them clearly, or let someone else voice them so everyone is on the same page about what’s at stake. Then you can sort out what the biggest risks are and what aren’t really risks at all.
  5. In dire situations, step away: There can be times when meeting as a group is no longer productive, and everyone needs time away to cool off and regain perspective

Long-term care of employees

The importance of breaking down tasks and focusing on small, doable bits for growth is emphasized. New tasks require more cognitive effort, while habits require less. Developing habits through breaking down tasks can help someone trying to grow.

When employees feel that their work is valued, they are better able to do their job. The manager’s job is to teach the skills necessary for success incrementally, speak up about negative behavior in the team, value employees, and foster a culture of growth.

On career laddering, clarifying the value of employee tasks, and scaling oneself to help others as one moves up in a team is required. Having clear goals for career growth is essential, and understanding the value of one’s tasks can help with this. As one moves higher in a team, it becomes increasingly important to help others grow and succeed.

To make real change, we need to connect people to the why. Be specific about why the changes are made. In engineering work, we make changes and get to see the results of that change immediately. “Yes! It compiled!” In engineering management, the cycles can be much longer, have more parameters, have more risk. But they also have the potential for a much grander scale of impact.

1:1s are critical

The purpose of a 1:1 meeting is to make the employee feel valued and connected. It is a safe space for exploring concerns before they become real problems. The manager’s job is to provide a supportive environment where employees can freely speak about concerns, especially those that might affect their performance.

It’s important to know when to let an employee vent and when action is needed. Active listening and eye contact can help the manager understand the cues that reveal what is required for the situation.

Giving and receiving feedback

Feedback is essential to managing a team, but it must be done carefully and thoughtfully. It’s necessary to ask team members how they prefer to receive feedback and listen to their answers. Additionally, pointing out positive growth on the team and giving accolades for it in public can be a powerful motivator. However, avoiding exposing someone’s development in a way that belittles them is essential. Feedback aims to help the team member grow and improve, not shame or embarrass them.

Receiving feedback can be difficult, but it’s also the best way to grow and demonstrate the vulnerability needed to cultivate honest communication within a team. One way to receive feedback is to respond with gratitude, even when the feedback is difficult to hear. For example, answering with “That’s a great point” can help the team member providing feedback feel heard and understood. Additionally, asking questions gives more information about what they’re conveying and allows the person receiving the feedback to approach the problem with a more academic mindset.

Recognizing that the ego plays a role in receiving feedback is essential. While an unchecked ego can be a nightmare, a healthy ego can be important for understanding where you are, where you sit, and what you need. Finally, it’s important to remember that just because someone has a fault or needs feedback, it doesn’t negate your need for feedback. Being receptive to feedback and willing to grow is essential to being an effective team member and manager.

Good meetings

The key elements of a good meeting include having a clear purpose, agenda, the right people (and number of people) in attendance, some order and structure, and a clear decision, outcome, and next steps.

To ensure the purpose of the meeting is clear, it’s important to define the shared goal, the action items to reach the outcome, who owns what and how, and timelines.

The right people in the room involve not too many or too few people and clear roles and responsibilities. If you invite everyone to meetings out of fear of hurt feelings, it’s likely not a problem with your sessions and more a sign that roles and responsibilities aren’t clear for everyone.

Maintaining order and structure during the meeting is essential, which means avoiding talking over each other or dropping in and out.

At the end of the meeting, there should be a clear decision, outcome, and next steps. Having a Directly Responsible Individual (DRI) to ensure accountability and ownership is helpful. If you haven’t decided by the end of the meeting, then your next steps may be to figure out who will make the decision and inform everyone, or to roll the conversation over to a new session.

Not all meetings are the same, so having sessions less structured is okay. The purpose of the meeting is the discussion itself.

Managing conflicts

Managing conflict is an ongoing learning process. The focus should be on creating a healthy environment where disagreements are voiced without leading to personal attacks. False harmony is not the solution, where people don’t express their opinion to avoid conflict. Embracing conflict is important, but it’s also necessary to understand when to disagree and commit with an appointed decision-maker. To have a productive disagreement, it’s best to detach oneself from any personal attachment to an idea.

Prioritization

When prioritizing your team’s work, having a clear plan is essential. One effective method is using OKRs, or Objectives and Key Results. Objectives should be high-level goals that inspire a picture of the future, while Key Results are specific, measurable data points. It’s also important to accept that you won’t succeed 100% of the time, and be comfortable with the 70 percent rule (as suggested in Measure What Matters).

To prioritize effectively, it’s crucial to identify the highest goals and let go of others, no matter how difficult it may be to say no. This will give your team the bandwidth and space to focus on critical tasks and avoid chaos.

Saying no feels strange and uncomfortable at first, but it is an act of courage on behalf of your team in an indirect way. If you say no at the start, you’re incurring less damage.

High-level

Making clear decisions is crucial because unclear decisions can result in poor choices. Impaired judgment can result from an inability to determine what is essential. Time investment isn’t solely based on what someone values but on what they don’t. Even though individuals aim to prioritize and organize their lives, achieving perfect balance is impossible. Everyone should give themselves some slack and avoid self-blame. Rather than listening to their self-hating inner voice, they should turn down the volume and do their best.

Day-to-day

The author proposes the following list of priorities:

  1. Things that are actively on fire or are time-sensitive
  2. Things that can be done quickly
  3. Things that need a scheduled block of time
  4. Things that I may get to further along

It is essential to accomplish small tasks early on, as it boosts morale and creates a feeling of productivity.

Finding a system that motivates and makes one proud of their progress is crucial, despite new tasks constantly appearing. Being a manager may be frustrating as tasks now involve coordinating and driving alignment in meetings rather than hands-on work.

Other relevant points

  • You can’t fix problems if you don’t know about them, and no one will tell you about them unless you make space for them.
  • Peer and mob programming can also help a team share context when a project is in a 0-1 (from nothing to productive). It also helps remote teams feel connected.
  • The challenge as an engineering manager is to notice larger patterns, like when many folks complain of the same thing, rather than one developer who may have a strong opinion.

Further recommendations from the author

  • Book: Nonviolent Communication, Marshall B. Rosenberg
  • Book: Accelerate by Nicole Forsgren, Jez Humble, and Gene Kim
  • Book: Whistling Vivaldi: How Stereotypes Affect Us and What We Can Do, Claude M. Steele
  • Book: Measure What Matters by John Doerr
  • career-ladders.dev: Career laddering is a system used to show what expectations are at different levels of a role, the purpose of which can be defining how one might be promoted. Created by Sarah Drasner, author of the book being summarized here
  • Article Good and Bad Technical Debt (and how TDD helps) by Henrik Kniberg
  • Article The Productivity Cycle by Alex Sexton
  • More from Sarah Drasner: https://sarah.dev/writing/

Closing remarks

I enjoyed so much reading this book, and as I browse through my notes and highlight to write this post, I can’t stop questioning: why this book targets managers? There’s so much more in the book! Anyone who might be working on engineering and wants to understand better people, relations, and how to improve their non-technical work should read it.

I’m lucky enough that not everything was news to me. I have a very good manager who has taught me many things through actions or talks, but still, having it all put together like this has brought some new perspectives.

As a technical person, reading a book written by someone with an engineering background like Sarah is stimulating. The words flow smoothly, the comparisons are spot on, and the language is relatable. As a woman in the field, I could not be prouder of having Sarah as an inspiration.

This post is licensed under CC BY 4.0 by the author.