Career Management

When you were a full-time hands-on coder, you probably tried to have many different types of coding experiences. Different languages, types of projects (web, mobile, shrink wrap, etc.), methodologies, coding responsibilities. Now that you’re a manager, the milieu may have changed, but the fundamental goal has not. Having different types of management experiences is important for your long term development – you may discover that you don’t want to have an experience twice, but at least you’ll know that, and you’ll understand the issues and when managing someone else who’s going through the process.

There are a number of specialized management challenges that are common enough that we can just list them out quickly. I.e., managing:

  • offsite/offshore contractors
  • a geographically diverse team
  • a large, complex, and/or risky project
  • a skunkworks project
  • a functionally diverse team
  • a big team

To some extent, these are specialized versions of what you’re already doing. Bigger, more difficult, more complicated versions of present responsibilities. If you’re doing well, expanded responsibilities should come to you, one way or another. Over time, it’s natural for your team to get bigger, for you to get responsibility for multiple teams, for your boss (or her boss) to ask you to take over a failing team and turn it around. This is normal career growth, and it’s a good thing.

Major Career Changes

At some point, though, these types of expanded responsibility teach you less than having had qualitatively different experiences. Such radically different experiences will occasionally drop in your lap, but more frequently you have to go looking for them. Adding on to your existing responsibilities doesn’t require a leap of faith, just a bit more work (or more effective delegation). Completely changing what you’re doing is hard, even (especially?) when you aren’t changing companies.

Here are some ideas on things you can do that don’t boil down to “more of what you’re already doing”. These all involve significant change and uncertainty, and you might not even know whether you made a good choice until years later. What you can be sure of, is that you will learn a tremendous amount that you never could have learned through an expanded but largely similar role.

  • Go from managing a large team in a large group, to managing a smaller team with broader responsibilities

Different roles have different responsibilities and tradeoffs. One manager might be responsible for a very large team (or multiple small ones), but inside a well-defined structure with an executive who runs interference on all of the main issues. Another manager might have a smaller team, but have responsibility over an entire business unit.

When you’re a manager in a larger group, you can set up a somebody else’s problem field, and focus on your specific set of responsibilities. When you’re the leader of a business unit, even if the absolute size of the group is small, you have a much wider set of tasks, concerns, responsibilities. You interact more with the business owners. You need to learn to work with them (and sometimes push them) effectively. You own the business, not just engineering, results.

  • Switch from an engineering leadership role to a business role

Move from product development to product management. Or the reverse. Changing your job content is, perhaps, the ultimate leap of faith. It requires a very different skill set, and will have you working with people who think in a fundamentally different way – but that’s kind of the point. Even if you discover it isn’t for you, it will open your eyes to a completely different world.

  • Switch from a development to an operations role, or vice versa

Even within “engineering” in a specific industry, there are many different roles, including feature development, QA, and operations. There are many different types of products, from shrinkwrap software with multi-year timeframes, to agile projects with frequent releases. Spending your entire career doing the same thing is going to prevent you from understanding the facts of life in other contexts.

  • Go from a larger to a smaller company, or found a startup

This is not an “I’m a founder, and so can you!” post. First of all, I honestly find that genre of article to be completely pompous. Secondly, it’s really not the point. The point is that there are some experiences you simply have to go through to understand. As an example, no matter how smart, insightful, wise, and knowledgeable you are, you can’t know what it’s like to have kids until you have them. No matter how much industry experience you have, you can’t know what it’s like to do a startup without actually doing one. No matter what happens (and the overwhelming likelihood is that it will crash and burn, taking your savings with it), it will profoundly change the way you look at companies, people, development, projects, and process.

Things you can do today

Life is complicated. It isn’t always the right time to make a major career change, and sometimes your company situation doesn’t lend itself to natural expansion of responsibilities. Even in the best of situations, no matter how wonderful your mentor or how sophisticated your company’s training program, relying on leadership/management development to “just happen” is not a winning strategy. Sometimes you’ll get a lot of direction, sometimes you’ll be left to your own devices.

With this in mind, I present the following short and terribly incomplete list of things you can do to develop yourself within the context of your current role.

  • Take on an unofficial responsibility

Some responsibilities are concrete, official, and define your role in the company (e.g., technical manager of the XYZ widget functionality suite). Others are informal decorators (e.g., the person who knows the most about server ABC, organizes the tech talks, manages the intern program, drives the company-wide hackathons, etc.). The official designations are hard to expand without executive buy-in. The informal designations are yours for the asking – all they require is additional work. These are the management equivalent of “don’t wait for someone else to solve your problems.”

I joke with my direct reports that in writing this blog I’m giving them a detailed user’s manual on their boss. More importantly, this blog serves as a way for me to work through my ideas, give them structure, and explain them to myself. Don’t underestimate the value of a public journal. Also, don’t forget it’s public!

  • Hire a personal coach, or organize a leadership/management training program

It’s a truism that technical managers don’t get much, or any, formal management training. Be the person who works to change this in your organization. Shameless plug: my brother does this for a living, so don’t hesitate to contact him if you’re interested!

  • Organize a leadership seminar series

Set up a series of seminars in which senior executives discuss key lessons in their paths to the top.

  • Read

There are a lot of books out there that will help you understand your role, other people, common shortcomings, and ways to excel. I recommend the following books because I found them to be personally useful (I’m not getting kickbacks) – not only are they interesting in their own right, many of them also are so well-known that after reading them, you’ll start picking up references to them in conversations.

A final note

It’s natural to get overwhelmed when making a significant career transition. It’s easy to feel like you’re on your own, that you don’t know what you’re doing, and that you don’t have time to learn because there’s so much that needs to get done right now. The important thing to remember is that you have tools to deal with risk, and lots of people who are invested in your success.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s