Buy My Book, "The Manager's Path," Available March 2017!

Saturday, September 22, 2018

Engineering Productivity

I’m often asked about the characteristics of great engineering managers. This is a question that almost always has a long answer that involves “well, she’s good at X, and he’s good at Y, and then there’s Z…” Every management role is slightly different, and a great engineering team will have managers who reflect a set of complimentary skill sets (such as operations, people management and coaching, product-focus) that are aligned with what their subgroup most needs.

However, for most of us, there is one characteristic that is not optional or debatable, which is that a great engineering manager is capable of creating a highly productive engineering team. This is one of the distinguishing characteristics of the management side of engineering. Call it what you will — drive for results, goal-oriented — if you are not great at getting your team to be productive, this is a critical growth opportunity.

How do I know this is important? Ask any engineering manager at a startup what one of their most dreaded questions is, and they will almost certainly mention “why isn’t it done yet?” Engineering productivity is a hard thing to measure, but most of us know intuitively what it feels like to be on a productive team. We’re shipping things, we’re focused, we feel like we know what we’re doing and why it is important.

So what are the management skills that are needed to achieve this result? At the first level of management, they look like:
  1. Breaking down the scope of projects to help your team ship frequently. An eye for the MVP, for sequencing work and for predicting likely risks and bottlenecks for project completion are the skills here. This is why I think project management is such an important part of engineering leadership development, and why I hate to hand it off to professional project managers for work that doesn’t cross teams or organizations.
  2. Balancing that product delivery with sustaining engineering so that you don’t end up with code that can’t be maintained in the future. The amount you will invest here depends on the future certainty (baby startup? Probably not so much!), but there’s a reason we call it “technical debt” and that is because it inevitably comes due, unless you declare bankruptcy.
  3. Prioritizing, prioritizing, prioritizing. Implicit in the first two skills is the ability to figure out what is important, and prioritize it. If you overprioritize shipping, you might get a lot done for a while, and then slow down as the debt you’ve accumulated comes due. Overprioritize sustaining engineering and you don’t ship product. You may not start out with these instincts, but they can be developed, so don’t be afraid to start making judgment calls now and learning from the results.
Managers who fail in these three areas quickly show why this is such an important skillset. Teams who don’t ship are usually disengaged and rarely get the positive feedback of seeing their work come to fruition. Teams who don’t ever clean up their tech debt end up burning out on the difficulty for supporting their software and the challenges building new features. And when teams don’t prioritize effectively, they end up burning cycles on things that are ultimately not that important which often contributes to a sense of purposelessness.

This is not the only thing that is important in engineering management, but without a focus on delivery, you are letting your team down in a critical way. So while you’re learning how to have good 1–1s, listen to people, create psychologically safe teams, and think about people’s careers, don’t forget that if your team isn’t shipping, you’re not doing your job. Nurturing a safe and healthy team helps your team do their best work, and helping them identify and deliver that best work is a key part of keeping them healthy.

Enjoy this post? You might like my book, The Manager’s Path, available on Amazon and Safari Online!

Sunday, July 29, 2018

Delegation: When being helpful is actually hurting

Effective delegation is one of the most critical skills a manager can learn. Without effective delegation, you fall victim to micromanaging your team, losing control of your time, and eventually failing to put yourself in a position where you can take on more and lead bigger things. There are many facets of effective delegation, and in this post I’m going to talk about one that tends to come from an otherwise good instinct: The failure to delegate because you are trying to be helpful.
Be Like Rep. Maxine Waters, and Reclaim Your Time!

“How can I help?”

I want my team to be happy and successful, and I want to feel useful and needed. So it’s not surprising that, when people bring me problems, my first instinct is to think of ways I can help them with these problems. Can I escalate it to one of my peers or my boss? Can I talk to the difficult employee for them, and try to improve the situation? Can I review the project plan and find the areas that are lacking detail and likely to cause the timeline to slip?
As I’ve managed people with a lot of management experience themselves, I’ve noticed that they very rarely take me up on these offers. Instead, they tell me exactly how they are thinking about tackling the situation, perhaps listen to a few bits of advice from me, and then only ask for my direct intervention when their efforts have failed. It’s totally awesome! And it has taught me a lot indirectly about effectively managing my own time, and what good delegation looks like.

Not My Monkeys, Not My Circus

So, what did their previous managers teach them that I need to learn how to do? Well, it turns out, their previous managers were probably pretty sensitive to something called “subordinate-imposed time.” I was introduced to this recently reading an old HBR article, “Management Time: Who’s Got the Monkey?” Published originally in the 70s, this article took me a few read-throughs to really understand. Its focus is on controlling your time as a manager, and in particular, making sure you don’t take on too many tasks that are really the job of your subordinates.
The article uses a confusing-to-me analogy of monkeys riding on your back to describe these tasks. In simpler language, these are often the tasks that you take on when you are trying to be helpful to the people who work for you. Examples include:
  • One of your directs asks for your input on a complex decision, and you take ownership of studying the factors and making that decision
  • Telling someone on your team that you want to review a proposal before they send it out. 
  • Volunteering to provide the first draft of goals for a project that a member of your team owns. 
These are all examples of reasonable things that someone might ask for your help on (and all things I’m sure I have done!). However, the way you choose to provide that help is key. In each of the cases above, you’ve taken over a piece of work from someone that works for you. You’re making the decision, insisting on final review of the proposal, and starting the project work. 
How would you approach these situations if you were instead determined to leave the delegation on your team member, and make sure that you didn’t use a lot of your time doing their work? Well, you might:
  • Talk over the decision in your 1–1, provide them with suggestions, but let them make the final call and justify it to the stakeholders
  • Review the doc in your 1–1 or another meeting specifically set up for this purpose (if they requested your review or if this is something they’re still learning how to do), but otherwise provide feedback at the same time that other stakeholders are given the doc
  • Let them set up the first draft of the goals, and again in the context of your 1–1 or a review set up for this purpose, review the goals that they have drafted and provide your feedback
You might object, all these meetings! But most of these touch bases can be done in the context of your weekly 1–1 (and in my experience doing this, most of them are). This frees you up outside of these scheduled, planned meeting times to focus on other important tasks that come from your own boss, the company and your peers, and things you want to get done for yourself. And most importantly, it puts the initiative squarely on the shoulders of your team, which is almost always where it belongs. They aren’t going to learn how to make good decisions, set good goals, or write effective docs, if you are always there providing a safety net or taking over the hard work from them. 

Reclaiming My Time

So the next time you find yourself tempted to volunteer to take over responsibility for something from someone who reports to you, pause. Instead of taking it over, ask them what they think the next steps should be. Give your feedback, and let them bring the follow-ups to you in the next appropriate touch base. You owe it to them to stop taking over their work in the name of helpfulness.

For further reading, the classic HBR Article linked above, “Management Time: Who’s Got the Monkey” has much more detail, including a very useful scoping of how much initiative someone is showing on a scale from “waiting to be told what to do” to “acting on their own, then routinely reporting.” And of course, you can always read my book, The Manager’s Path.

Tuesday, March 6, 2018

Are you out of alignment?

Alignment, in the teamwork sense, means “a position of agreement or alliance.” It is one of the critical qualities that determines success in an organization, particularly at higher levels.

Many individual contributors (ICs) get stuck at a certain point in their career because they can’t see that they are out of alignment with their company, and they don’t realize that the way alignment is achieved has changed for them. In the earlier part of your career, you can be relatively well-aligned just by doing a pretty good job on the things you are asked to do. You get an assignment, presumably from someone who knows what is important to do, and you do it well. As you grow as an engineer, maybe the technical implementation details of those assignments get more challenging, the tasks get bigger, but as long as you keep conquering them, you are fine.

That is until some point you realize that you’re still good at conquering the tasks, getting those hard problems solved, but you aren’t really getting promoted any more.

Sometimes this comes on slowly, and it looks like boredom. There are fewer and fewer of those meaty big technical problems for you to work on. You assume that they don’t need your skills. You get jealous that people aren’t asking for your advice before they build things, because clearly you know better!

Or it comes on all at once. You are told explicitly that you should find the next thing you want to work on, and you look around and don’t know what to look for. There’s no obvious problem that breaks down into what you know how to do. Or you find something, and you dig in. You get a prototype finished, and everyone yawns. Maybe it gets used for something small, but instead of changing the world for your team, people don’t seem all that impressed, and the things they are impressed by seem so trivial, boring, and technically easy by comparison!

My friend, you have discovered that you are out of alignment.

There are a lot of obvious ways people are misaligned to their companies. The classic “not a cultural fit” is one. If you fight against every process, decision, person around you, even if you’re right, that alignment mismatch will hurt you.

The more subtle way that most of us get out of alignment is by being unwilling to admit that we don’t understand what’s important to the company. We maybe don’t want to understand. We want to do things that are fun and challenging and interesting to us and have that work out to be the important thing. But for the fun things to be the important thing effortlessly is pretty rare. At a certain level, creating the alignment between projects that are interesting for you and what is needed by the company is a big part of your job.

Getting into alignment with the company is often a challenge for senior ICs because it requires a major change in focus. The hardest part is now identifying the right problem to solve, instead of solving the hardest problem. If you want to be able to find interesting work and also work on important things, you generally have to go find the interesting important things yourself. This requires that you to talk to a lot of people and listen to their problems, and then place a bet on a solution to one of these problems that will actually both be feasible but will also be seen as important. Your manager might help identify people that you could talk to, but you must take responsibility for doing the legwork and making the final choice in problems to address.

The alternative way to resolve this alignment issue is to force yourself to address problems that you don’t want to solve, problems that are perhaps not as glamorous to you but are clearly important for the success of the company. Taking responsibility for cleaning up an area that feels intractably broken is not the job for every engineer, but for some people it is an easier and more obvious path to alignment and success. The risk you take here is that you either burn out fighting to fix a situation that is really about people and organizational issues that are beyond your scope, or you pick a broken area that no one really cares about fixing.

In both of these scenarios, you are taking more risk than you used to in the past, and that is where the second part of the quest for alignment comes in. It’s not just about being willing to find the work to do, it’s about finding the most important work that is right for you to do. The more attuned you are to the needs of the company, the kinds of work that is highly valued, the more likely you are to put your energy into something that will pay off well for you.

I often say that at more senior levels you get promoted for making wise bets, and really what that means is that you are smart enough to know the payout for what you’re pursing. Whether it’s knowing which fire to put out first, or having an idea for the thing to build to make your whole team more effective, the better-aligned you are to the needs and values of the organization, the more likely you are to be successful.

Enjoy this post? You might like my book, The Manager’s Path, available on Amazon and Safari Online!

Saturday, January 13, 2018

Stop answering your own questions

I have a bad habit. I noticed it today as I was leaving a comment in a strategy document. I’d highlighted some text that I found unclear and commented:
“Do you mean X or Y? Because I don’t think it is reasonable for us to do Y”
This is one of my bad management habits. I jump to conclusions. I pretend to ask a question but then make it clear that only one answer can be right.
It is probably obvious why this is bad. While I do want to know more, in this framing, I am talking to hear myself speak, rather than genuinely asking for more information that would help me understand the plan and allow me to give better feedback. By stating my preference up-front I cut off discussion. What’s worse, I make the receiver unlikely to honestly answer my question; unless, that is, they feel up to the task of debating me.

Get Curious

In writing you can review what you have said and edit your phrasing to eliminate this kind of thing, but it’s significantly more difficult when you’re in verbal conversation. When you’re talking you don’t have a chance to see yourself poisoning the well and cutting off opinions before they can be explained. This is one of the many reasons I have tried to embrace the mantra get curious. I use this phrase to remind myself that I have to make room for people, that my first reaction is not always the right one, and that when I hear something that doesn’t sound right I need to listen more rather than jump all over it.
If you are (or were) a highly opinionated engineer, practicing making space for information rather than quickly jumping in and sharing your conclusions is a must for leadership growth. The more senior you become, the harder it is for people to feel comfortable disagreeing with you openly. That is not a sign of weakness on their part! Most people with any sense of self-preservation know that saying the wrong thing to the wrong person can have negative consequences. Lucky for you, as the manager, people are going to listen to what you have to say. Unlucky for you, as the manager, if you don’t make space for them to say things that you disagree with, you are unlikely to hear important details.
Making good decisions requires you to get as much information as possible, to understand the nuances of the scenario from all angles. It is very difficult to do that if people are afraid to contradict you. One of the less-obvious ways we make people afraid is by offering our opinions too early, without taking the time to get the rest of the information. So the next time you’re tempted to ask a question and answer it yourself, stop. Get curious. You already know there’s something you don’t totally understand, so hold on stating your opinions until you’re sure you’ve gotten as much information as possible.
Now, to go edit that comment…