Menu

Posts tagged “leadership”

How to Be a PM That Engineers Don’t Hate

From How to Be a PM That Engineers Don’t Hate:

You see it everywhere: Engineers complaining about the product managers that they work with. Hating on PMs is kind of like complaining about your utility provider or the TSA—so universal that it’s always good for a light chuckle in the right circles. The PMs don’t know how the technology works. All they do is send emails and take credit. They’re meeting generation machines.

When I interview engineers my first question is always, “Tell me about your experience working with PMs.” I do it to calibrate what kind of PMs they are used to working with, or to put it another way, how much I should apologize for our profession before we continue…

Anyway, the linked post is less about that, and more about some things PMs can do to work more collaboratively with other teams—not just engineering. Lots of good, practical tips and examples here.

Leaders, don’t be late for meetings

Some fairly standard advice here from Peter Yang on How to Run Meetings That Don’t Suck, but this point in particular is so important:

Try not to cancel or move 1-on-1s. If you’re a manager, it’s easy to move or cancel your 1-on-1s for other “important” meetings. This is disrespectful to your direct reports. Even if you see them everyday, nothing beats a private half-hour conversation where they can be open about real issues.

How we show up in meetings as leaders is very telling about how we view our team’s time. The most important rule is this: do not be late. I know this is hard to do in our culture of back-to-back meetings, but nothing says “I don’t respect your time” like consistently showing up 5 minutes late to meetings with no explanation. Here’s a quick tip: if you need a minute to go to the bathroom and/or get some more tea or whatever, make sure you join the meeting first and tell the person/people that you just got out of another meeting and you will be right back. Oh, and do not forget to mute when you leave…

Hypervigilance is not a sustainable lifestyle for leaders

In This will only take a minute the Raw Signal team shares some much-needed advice for leaders who feel like they never have time to think and reflect. This state of constant hypervigilance is not a sustainable lifestyle because:

On one level, you’re a human being. Regardless of your title or role, you are worthy of work that doesn’t wreck your health, or your happiness, or your ability to enjoy lunch away from your webcam. On another, if you’re a manager, you’re responsible for the work of a team of other human beings. If you don’t have the time to be thoughtful about your own work, the odds are very high that your team doesn’t either.

They go on to share some ideas for how to make this time to step back a priority, once you are “past the point where working a little bit more is going to clear your plate”.

Don’t give up on the value of product management because of bad past experiences

Maybe 10 years ago I would’ve gotten upset about an article like Spencer Fry’s No PM, no problem: how we ship great products fast, in which he explains why they don’t have product managers at Podia and how great that is. Luckily I’m now too old to stay up late just because I think someone’s wrong on the internet. Instead, I approach articles like these—ones I viscerally disagree with right off the bat—with a bit more curiosity. What is the source of the author’s assumptions? What is the data that led them to this particular set of conclusions? What is the problem they’re trying to solve, and what led them to this viewpoint as the solution?

As it turns out, we get the answers to those questions pretty early on in Fry’s post:

Why shouldn’t the developers—or designers—be tasked to work through the problems, instead of being handed a set of solutions?

Every single project, a developer is assigned what we call a Champion role and it’s that person’s responsibility to act as the PM in addition to their work as an individual contributor. This approach, as opposed to handing off a spec to stitch together with code, makes for much more engaged developers who feel more ownership of the work.

Ah, see, this makes sense! I can see why Fry concluded that PMs are unnecessary if his experience is that they (1) “hand off a spec to stitch together with code”, and (2) don’t give developers ownership over their work. The problem is likely that he has never worked with a PM that understands their role and does it well, so of course the data would lead to the conclusion “no PM, no problem”.

So let’s talk about those two assumptions for a minute.

Handing off specs to developers

This is just 100% not what PMs should do. If designers, developers, QA, marketing, and customer success are not part of the planning and design process of a feature, it’s just bad practice. There should never be a handoff in software development, only collaboration. A developer should know exactly what they’re doing once they start coding because they have been intimately involved in the design decisions and trade-offs that go into a project right from the start.

The role of the PM during this phase is to bring all the right customer and business data to the table to help the team through their decision-making. It is rare for them to say “this is the decision,” but in some cases where teams can’t come to an agreement it’s also their responsibility to make that call, explain it well—and be accountable if it ends up being the wrong decision.

Ownership of work

Engaged team members (not just developers) who feel ownership over their work is an essential element of an empowered team. If the teams don’t have that and the PM “calls the shots” then that is, again, bad product management.

At Postmark we have a similar role to the Champion role Fry uses at Podia. We call it the Driver (part of the DACI model). The PM is sometimes the Driver on a project, but not always. In every case where it makes more sense (such as a deeply technical back-end improvement, or a pure front-end redesign) a developer or designer or marketer is the Driver. We define the role as follows:

The Driver is the project leader. This is the one person who will be driving the team through decisions. They’ll be responsible for making sure all stakeholders are aware of what’s happening, gathering information, getting questions answered, and action items completed. A Driver, for example, will schedule and run project meetings, gather and distribute ideas, coordinate tasks, and track the team’s progress.

Drivers ensure a decision is made but don’t necessarily make the decision.

The team has autonomy and ownership to drive the project and make decisions as they see fit. Each project has an Approver assigned, usually someone on the leadership team, but they are there to support, answer questions, provide context, and in rare occasions, help make a decision if the team is at an impasse. PMs shouldn’t “own” projects. Teams should own projects.

So what do PMs do, then?

Fry’s post does allude to an age-old question, though: Why do you need separate PMs? Why can’t someone on the implementation team just do it? The short answer is that what goes into good product development and successful features is so much broader than just the code being written and shipped. And if we require designers or developers to be responsible for all of it, they would simply never ship anything.

So what value should PMs bring to the team, whether or not they are the Driver/Champion on a project? In addition to input on design/scoping decisions they should be responsible for all the things that are not directly related to building the feature at hand, but essential for its success. Some possible examples:

  • Customer input on what their needs are to help with the design and scoping of the feature.
  • Revenue modeling to figure out pricing and packaging.
  • ToS updates due to legal implications no one else thought of.
  • Working with the marketing team to figure out the best positioning and launch activities based on what value customers can expect.
  • Connecting the dots between this project and that failed one from 3 years ago as well as that thing the Lead Architect said in a meeting last month to ensure we don’t forget about an essential library dependency so that we actually build something that’s scalable and reusable in the future.

You get the picture.

There is enormous power in someone being around for the team as the person who’s got this so that they can focus on their work and relax in the knowledge that nothing will fall through the cracks. More than any other role in the organization, it is good product management that enables teams to work in a calm, empowered environment that produces consistently great software.

I have no doubt that Podia ships great products fast. They clearly have a culture of trust and empowerment, which is great. I do wonder how adding a good PM to the mix would enable them to go to even greater heights.

You can't stand under my umbrella

In You can’t stand under my umbrella the Raw Signal team makes the case for when it’s not appropriate for managers to be “sh*t umbrellas” for their teams:

When things are steady, and people know the right things to work on, teams are constrained by velocity. We know the course we’re racing, the question is just how fast we can go. In that context, it makes sense for a manager to clear every obstacle out of our way. But during times of significant change, teams are constrained by agility. It’s not that velocity doesn’t matter, it still does. But when everything has changed about the race, we need the ability to steer. A manager who tries to preserve velocity at all costs risks running us into a wall.

They go on to talk about how to Accept, Adapt, and Act in such moments of significant change.

How to build human connections in an async workplace

This is a great post by Chase Warrington for the Twist Async newsletter on How to build human connections in an async workplace. They make this really important point about what human connection is actually about on a remote team:

I’ve come to realize that team culture and human connection is primarily built by how you work together—not how you socialize together. […]

The work we do is what actually brings us together. That’s ok (and frankly healthy) to admit. One of the biggest benefits of remote work is that it provides you the opportunity to spend more on the people and things you care about outside of work. Let’s not sabotage that with a bunch of forced and awkward social events for teammates to attend on top of their work duties.

I think we forget this too often. Doing a fun online social activity together doesn’t improve team culture if we haven’t also made sure that actually working together is safe, healthy, and enjoyable.

Advice For Engineers, From A Manager

Marco Rogers has been an engineer and manager of engineers for 20 years. In this post he shares some short, practical (but not always easy to follow!) advice for engineers. A few of my favorites:

  • Learn what the true scope of the project needs to be. Back away from “story points” and understand what the project needs to accomplish. More context about the goals will help you negotiate what’s in and what’s out of scope.
  • Collaborate on designs. Designs never have the level of detail that matters. When you run into UX problems, work with people to develop a solution. Don’t just ask for more mocks. Own the details of what you’re building.
  • Don’t just write code. Solve problems. Make sure you understand the value of your work and you talk to people about that. Not just “features”. For example, “this needs to ship by Fall because it’s our big strategic bet for the year.” Tell people how to achieve the strategic goal.

Read the rest of his post for the others.

How New Managers Fail Individual Contributors

In the post How New Managers Fail Individual Contributors Camille Fournier makes a great point about the split between “managerial” and “technical” career tracks:

Most people become managers right at the point where career tracks split between “technical” and “management” specializations. The result is that many new managers have most recently been very technical, yet they have no idea what it means to climb the technical track, but they will be managing people who want to follow that path. To be a great manager, you can’t afford to let the ICs on your team feel that they have no career path, so it’s up to you to manage this well.

She goes on to to list five pitfalls that new managers should work to avoid in order to set their direct reports up for success.

Human systems and the stuff they make

There’s so much goodness in Mandy Brown’s latest management post Made It, but it’s this paragraph that gets to the heart of it:

This is one of the ways that the adage about “maker time” versus “manager time” does harm. Setting aside the fact that it’s not even coherent—managers make decisions and plans and systems and visions all day long!—it also serves this notion that the stuff is what matters and the humans are just an unruly mess that gets in the way of the stuff. This is a self-defeating story, inasmuch as you don’t get good stuff without a system that takes care of the humans.

I have been thinking about human systems a great deal over the past few weeks. It started when I read Donella Meadows’s Dancing With Systems. When I applied that lens to my own work it was impossible not to see it in absolutely everything we do. Take this quote, for instance:

Don’t maximize parts of systems or subsystems while ignoring the whole. As Kenneth Boulding once said, Don’t go to great trouble to optimize something that never should be done at all. Aim to enhance total systems properties, such as creativity, stability, diversity, resilience, and sustainability–whether they are easily measured or not.

There are so many implications of this principle for the way we make software today. Here are a couple I’ve been thinking about in particular.

Quality

When we have quality issues in our product it’s tempting to try to solve those issues with process and overhead. Common ways to do that include instituting additional approval gates before code can be deployed to production environments, or adding “QA periods” where the entire organization is asked to test a feature before it goes live.

These solutions optimize for parts of the system—such as deployments or manual testing—while ignoring the system that is responsible for introducing quality issues into the product in the first place. To quote Deming:

Inspection does not improve the quality, nor guarantee quality. Inspection is too late. The quality, good or bad, is already in the product. As Harold F. Dodge said, “You can not inspect quality into a product.”

We have to look at the system as a whole. What kind of automated test coverage do we have? What bottlenecks exist in our CI/CD pipelines? What level of responsibility do we ask of engineers to be stewards of their own code? Do teams have enough time to make sure that quality is built in from the start and not an afterthought? These are the total systems properties questions that have to be addressed in order to fix quality issues.

Team stability

One of the bigger leadership mistakes we make is to think that the humans that make up a social system are interchangeable and can be moved around at will without impacting the system as a whole. You see this especially in engineering teams where “resources” are constantly moved from one project to another—usually to speed something up that is perceived to be behind schedule. But we forget that it is the human system that produces the stuff, not the individuals.

Similar to the discussion about quality, if we perceive a project to be off track we need to understand how the project came to be off track, and then find ways to improve the system to correct that. Did we place unrealistic deadlines on the team without getting their input? Are we asking teams to build features that have not been validated with customers? Do teams have adequate autonomy and ownership over the way they prioritize their work? Do teams have the business context they need to make the best possible decisions?

If we instead go for the shortcut of moving people around, we will never get to the heart of the matter. Inserting additional humans into a system can inadvertently break it—and worse, moving folks from one project to another leaves a gap that is very likely to destabilize the project that they were working on before. Suddenly Customer Success doesn’t have an Engineer to talk to about documentation, or the Marketing Team doesn’t have anyone to fix an issue with a piece of demo software.

Once again, Donella Meadows says this well:

Before you disturb the system in any way, watch how it behaves. If it’s a piece of music or a whitewater rapid or a fluctuation in a commodity price, study its beat. If it’s a social system, watch it work. Learn its history. Ask people who’ve been around a long time to tell you what has happened.

Stable teams that work together for an extended period of time all have a steady beat, and we shouldn’t make changes to the system until we know exactly how that beat works. Here’s Donella again: “Before you charge in to make things better, pay attention to the value of what’s already there.”

And that’s how all this connects to Mandy’s piece that I linked to at the beginning. If we want the stuff to be good, we have to pay attention to the beat of the system of humans that make up an organization. We have to understand how they work, and we have to ask them how they want to work. We have to listen to the people who are beating the drums.

It may sound a little counter-intuitive, but if we optimize for the humans who make up a system, the good stuff will follow.

Discuss this post on Mastodon

Internal communications for executives

Some great tips here from Will Larson on how to improve internal communications as a leader. I especially like “Maintain the drip”:

These updates establish a persistent drip of information from you to the wider organization. Some weeks you might have a light update, but rather than folks thinking that you’re not doing much, they’ll be reassured that they are up-to-date on what’s important. Dense updates are good, but it’s the brief updates that reassure the team that you would have updated them if there was something they needed to know.

Read on for the others: test before broadcasting, build the packet, and use every channel.