Camille Fournier
Buy link


The Manager’s Path is a must-read for software engineering managers at all levels. Exploring important hard and soft skills that must be developed by managers, Fournier wrote an interesting and concise book.

The constant of the book is how a manager must hone her managing skills: not just themes like culture, leadership, feedback and performance management are discussed but challenging situations are also addressed.

Besides the hardships of management, the book also thrives on defining the responsibilities of each level: from mentoring junior staff to the delegation and efficient collaboration. Maybe it is the only book that has this kind of documentation (in the context of software organizations), also nicely summarized in the career ladder shared by Fournier on Chapter 9 (Creating Cultural Policy).

However, I believe that some advice on structuring and processes was ill-made, where I highlight the childish treatment of process czars. The bulk of the book centers on middle-managers, who benefit a lot from the data generated by iterative processes (e.g. Agile methodologies) or flow-based methods (e.g. Kanban).

Indeed, understanding the underlying theories of these processes helps a manager to structure and develop in the organization capabilities like sustainable development pace, organizational agility, and continuous improvement. It is also counterintuitive, as the author highlights preconditions and capabilities (e.g. Create a Data-Driven Team Culture topic on Chapter 7) required for work excellence that is justly found in the body of work of Agile, Lean and, especially, Kanban (Kanban Maturity Model by David Anderson is a must-read).

The aforementioned observation does not taint The Manager’s Path, which still stands as a recommended read. It explores well themes like culture, leadership, feedback, performance management and it is maybe the only book that documents management roles for software organizations.

Some quotes

Effective teams have good onboarding documents they provide to new hires. Things like step-by-step guides to setting up their development environments, learning how tracking systems work, and familiarizing themselves with the tools they will need for the job are crucial for new hires. These documents should constantly evolve to meet the changes of the workplace itself. Mentoring a new hire by helping her work through the documents, and having her modify those documents with any surprises she encounters during onboarding, provides a powerful message of commitment to her. It shows her that she has the power and obligation to learn, and to share what she’s learned for the benefit of your whole team.

As with many titles in software engineering, “tech lead” lacks a common definition. The best I can do is draw from my own experience and the experience of others. My job as tech lead was to continue to write code, but with the added responsibilities of representing the group to management, vetting our plans for feature delivery, and dealing with a lot of the details of the project management process.

The work of breaking down a project has a lot of similarity to the work of designing systems, and learning this skill is valuable even for engineers who don’t want to manage people.

You also know that it’s important to get your team into a schedule that allows them to be focused on development for long stretches of time, because they will need to focus for several days on coding problems. Part of your leadership is helping the other stakeholders, such as your boss and the product manager, respect the team’s focus and set up meeting calendars that are not overwhelming for individual contributors.

On the other hand, remember that people in their first 90 days lack the context that the overall team possesses, so take their observations with the requisite grain of salt, and definitely don’t encourage people in this period to criticize the established processes or systems in a way that makes the existing team feel attacked.

My goal in a 1-1 is first to listen to anything my direct reports want to discuss. I want the meeting to be driven by them, and I want to give them space to bring up whatever they feel is important.

Empathetic leaders can sometimes allow themselves to get sucked into an unhealthy closeness with their direct reports. If you start focusing a lot of energy on hearing reports’ complaints and commiserating, you’re quite possibly making the problem worse. You don’t have to have a to-do list, but problems in the workplace need to be either dealt with or put aside by mutual agreement. There is very little value to repeatedly focusing on drama.

Sometimes your 1-1s will be devoted to informal feedback and coaching. It’s good to hold these kinds of meetings at a regular interval, especially for your early-career employees. Quarterly is frequent enough to give the topic attention without it feeling like all you talk about is career development.

When something goes well, don’t save up your praise — give it freely in the moment.

Practice looking for talents and achievements on your team, first and foremost. Good managers have a knack for identifying talents and helping people draw more out of their strengths. Yes, you’ll also want to look for weaknesses and areas for improvement, but if you spend most of your time trying to get people to correct weaknesses, you’ll end up with a style that feels more like continuous criticism.

Adopting a habit of positive recognition forces you to be on the lookout for things to praise, which in turn causes you to pay attention to what individuals are bringing to various projects. You don’t have to do this in public, but every week there should be at least one thing you can recognize about someone on your team. Even better, look for something to recognize weekly for everyone who reports to you.

Performance reviews go wrong because people aren’t given time to prioritize working on them, and many people find them hard to write. They go wrong because we tend to remember and overemphasize things that happened most recently, and forget about the things that happened six months or a year ago.

If you’re a manager, you are going to play a key role in getting people on your team promoted. Sometimes it will simply be up to you to determine who gets promoted, but more commonly promotions will be reviewed by your management, or a committee. So you’ll not only need to have a good idea about who deserves to be promoted, but you’ll need to make a case for their promotion as well.

Many organizations have a rule of “up or out” for early-career employees. The entry levels of most engineering career ladders expect that people at those levels will progress within a certain period of time, and if they don’t, they aren’t meeting expectations and will be fired. Generally, you want to make sure that long-term employees are capable of doing their day-to-day work independently, without a lot of oversight or help.

Humans, by and large, feel good when they set small goals and meet them regularly.

Usually, unhappiness due to overwork has a root in problems that you can address. For example, if overwork is due to (in)stability of the production systems, it’s your job as the manager to slow down the product roadmap in order to focus on stability for a while.

Consensus can appear morally authoritative, but that assumes that everyone involved in the voting process is impartial, has an equal stake in the various outcomes, and has equal knowledge of the context. These conditions are rarely met on teams where each person has different levels of expertise and different roles.

(For managers of managers) Finally, even if you don’t intend to write much code, I strongly advise you to keep at least a solid half-day once a week completely free from meetings or other obligations, and try to use this time at least partially on some creative pursuit. You might write blog posts for your engineering blog, prepare conference talks, or participate in an open source project. Do something to scratch that creative itch, which can otherwise be hard for you to scratch as a manager.

As a manager of multiple teams, you can win back a lot of time by pushing an efficient meetings culture down to your teams. Hold people accountable to prepare in whatever way makes sense. Ask for agenda items up front. Any sort of standard meeting that involves a group of people, whether it’s planning, retrospective, or postmortem, should have a clear procedure and expected outcomes.

The responsibility of keeping your teams successfully moving forward and happily engaged is on your shoulders. When you stop going to all of their internal meetings, you run the risk of missing out on the very clues that will help you catch problems early — a major one being the existence of too many boring meetings. During meetings, look around the room at your team and notice their engagement. If half of them are falling asleep, staring off into space, on their phones or laptops ignoring the proceedings, or otherwise disengaged, the meeting is wasting their time.

Tasks like project planning, systems design, or being the key person during an outage are the biggest opportunity you have to grow talent on your team while also making the team run better. Strong managers spend a lot of their time developing members of their teams in these areas. Your goal is to make your teams capable of operating at a high level without much input from you, and that means they’ll need individuals who can take over these complex tasks and run them without you around.

Project management. Onboarding new team members. Working with the product team to break down product roadmap goals into technical deliverables. Production support. These are all skills members of your team need to learn. Teaching them may take time up front, but in the long run it will save you time. Not only that, but teaching your team how to do these things is part of your job.

A manager’s job involves making it easy for her employees to get things done by creating fertile environments in which work can happen. She focuses her team so that they can do what they do best. She cultivates camaraderie and friendship on the team, and helps people learn new skills.

Saying no to your boss rarely looks like a simple “no” when you’re a manager. Instead, it looks like the “yes, and” technique of improvisational comedy. “Yes, we can do that project, and all we will need to do is delay the start of this other project that is currently on the roadmap.” Responding with positivity while still articulating the boundaries of reality will get you into the major leagues of senior leadership.

Laziness and impatience. We focus so we can go home, and we encourage going home because it forces us to constantly focus. This is how great teams scale.

What is a skip-level meeting? Put briefly, it is a meeting with people who report to people who report to you. There are a few different ways that people hold these meetings, but their purpose is to help you get perspective on the health and focus of your teams. However you choose to hold them, keep this purpose in mind.

Beyond the coaching that you’ll need to provide your first-time managers, I recommend seeking out additional external training. If your HR team has a curriculum for new managers, make sure yours are given the time to attend, and encourage them to do so.

Let’s start with 1-1s. As we’ve discussed, 1-1s are an essential tool for a manager to determine the health of her team and gather and impart valuable information. Any manager you hire should role-play a few 1-1s as part of the interview process. One of the best ways to do this is by asking the people who would report to the new manager to interview her by asking her to help with problems they have right now, or have had in the recent past. Similar to a senior engineer being asked how he might approach debugging an issue that you just resolved, a good manager — even without a full understanding of the people or projects involved — should have good instincts for questions to ask and suggested next steps that might improve matters.

The more people you have, the more thoughtful structure you need to get everyone moving in the right direction. Leaders who want a high degree of control over their organization tend to need more structure in place to make sure their wishes are enacted. Modern companies often put their structural focus on goal setting instead of trying to make all decisions from the top, but don’t underestimate the structure you need to successfully set and communicate goals.

Success, on the other hand, tempts us with the silver bullet, that one weird trick that could make everything great. If you want to learn from success, make sure you can identify the actual improvement you’re seeking when applying those lessons more broadly, and that you understand the context required to repeat that success.