I really like the this Mountainsides approach to software projects from the Postlight team:
It’s sort of like a Gantt chart that was left on the stove too long, leaving all those neat and tidy bars melting into one another.

I really like the this Mountainsides approach to software projects from the Postlight team:
It’s sort of like a Gantt chart that was left on the stove too long, leaving all those neat and tidy bars melting into one another.

The key point here is: imaginary work doesn’t count. Get to running code early. Or a rough interface. Or an outline of the copy. Whatever it is, the way to get uphill is to roll up your sleeves. Show evidence that the approach works and seek out the things that might go wrong. Then when you get over the hill, your team can trust that the work is really going to ship as planned.
— Ryan Singer, Real Work vs. Imaginary Work
While reading this great interview with the band CHVRCHES I came across a passage that struck me as a good description of how product managers should work. They describe the producer on their latest album like this:
And I think that’s why he’s so good at what he does. He’s not a kind of producer that has one thing that he does and he tries to make every artist do that thing. He steps into the room and tries to figure out the people that are in it and figure out the music they’re making, and then how can he add something to that and offer wisdom and guidance and make it better.
We all have methods and techniques we gravitate towards: Jobs-to-be-Done, Agile, customer journeys, sticky notes… It’s totally fine to have favorite methods that we know inside out and that have worked well in the past. But it would be a mistake to force one of our favorites on a team when it’s not the right thing for them.
One of the most difficult things a product manager needs to do is first understand how a team works and what makes them effective, and then figure out which methods and processes can create the right environment for them to thrive. That’s the skill that sets apart the great product managers from the good ones.
Ah, estimates. That thing we all know we need to do (and get better at), but no one really wants to talk about. Well, Gina Trapani takes the topic head on in a great post called Estimation Is a Core Competency:
Estimates don’t need to be perfectly accurate as much as they need to be useful.
Good estimates create trust among your PMs and business leaders and collaborators. Being able to identify the risks and uncertainties in a project early gives your project team the information they need to plan around those risks and uncertainties.
Are you consistently getting waylaid by unforeseen work mid-flight, or just taking longer to execute on the work you did know about? That creates distrust between engineers and business leaders, and if it happens repeatedly, that distrust compounds and calcifies into resentment— that is, if you’re still in business.
Gina goes on to give some great tips for better (i.e. more useful) estimates.
I read something recently that struck me as a really good idea for our team. Usually that feeling goes away after a couple of hours (“nah, it’s cool but not a good fit for us”) — but not this time. In Running in Circles, Ryan Singer talks about the knowns/unknowns in a project like a hill:
The most important question for a team isn’t “what is left?” but “what is unknown?” Can you see the edges? Have you gone in there and seen everything that needs to change? The only way to gain certainty is to roll up your sleeves and engage with the reality of problem.
At Basecamp our teams seek out the areas with the scariest unknowns and work on them first. This uphill work requires strategies. We wrote about these in Getting Real. Open the code, spike something that works, load it with real data and try it. When the whole feature is too big to prototype, factor out the most important pieces and spike them.
He has a a nice visualization of it:

He also uses an example from a recent project to show how they map this out:


As they “move over the hill”, different parts of the project become known, and they become more certain about what’s left to do. We’re working on some checklists to identify development risks before we start a project, and this looks like a great way to visualize those risks and track them as you go.
Janna Bastow wrote a great post on product management for maturing products. From Growing up Lean: Lean Strategies for Maturing Products, here’s a recommendation for how to avoid becoming a “Feature Factory”:
Break the backlog up into two parts: The Product Backlog and the Development Backlog. […]
Product Backlog: A list of all of the things you could do. You’ll never complete everything on this list, and it’ll always be in a constant state of flux. It’ll include customer requests, suggestions from your team, through to insights from your experiments and prototypes. It should be accessible by your team, to both contribute and follow along on progress – your team should be helping to build and flesh out the ideas in your backlog. This is your space to prototype and spec out ideas, map them to your objectives, and track their progress until ready for production.
This is similar to how we do things at Postmark. Here is our Releases board in JIRA:

You’ll see that we have our short-term planning (the Development Backlog), that currently only covers 2018.2 and 2018.3 (roughly 6 weeks each). And then we have the mysterious Later release… that’s the Product Backlog. It’s that list of all the things we could do. When we do short-term planning we pull from that list, as well as other areas (most notably, our “Idea Zone” in Basecamp, which I should also write about at some point).
I’ve written about maturing products before as well. I’m happy to see that Jenna and I bring up similar points. Here’s a quote from my post Product Management for well-established products, which echoes some of her thoughts:
With an established product, it’s way too easy to get off track (Evernote, anyone…?). So what I argue for is a flexible quarterly roadmap of prioritized themes. You don’t write down dates next to a long list of features. You don’t make hard commitments for releases that might never happen.
Instead, you put together a list of themes you’d like to work on, in order of priority, based on how closely they align with your objectives and key results for the quarter.

Photo by Michał Grosicki on Unsplash
Over the past year I’ve become increasingly aware of a fundamental divide in the prevailing wisdom on how good products are built. I’m not talking about waterfall vs. post-waterfall methods. I’m also not talking about the differences between specific methods like Agile and Lean. I’m talking about different philosophies on the best way to build products in an already post-waterfall world.
These differences have been apparent for a while, but they came into stark focus for me over the past week, as I finished reading two books in quick succession: Getting Real by Basecamp and Inspired (2nd ed.) by Marty Cagan. Both books are interesting and worth reading by themselves, but even more so when you read them right after another.
Basecamp and Marty agree on the biggest challenges in building good products, but diverge quite often on how they believe teams should deal with those challenges. Let me provide a couple of examples.
Both books are adamant that value (defined as whether someone will use/buy your product) needs to be validated as early and as cheaply as possible, and that the old ways of doing things are expensive and wasteful. Basecamp says you do this by “racing to running software” and making sure that it’s cheap to make changes:
It’s ok to do less, skip details, and take shortcuts in your process if it’ll lead to running software faster. Once you’re there, you’ll be rewarded with a significantly more accurate perspective on how to proceed. Stories, wireframes, even HTML mockups, are just approximations. Running software is real. […]
With real, running software everyone gets closer to true understanding and agreement. You avoid heated arguments over sketches and paragraphs that wind up turning out not to matter anyway. You realize that parts you thought were trivial are actually quite crucial.
And earlier:
Change is your best friend. The more expensive it is to make a change, the less likely you’ll make it. And if your competitors can change faster than you, you’re at a huge disadvantage. If change gets too expensive, you’re dead.
On the other hand, Marty believes in building prototypes really fast, and testing those with real customers before you commit to code:
One of the most common traps in product is to believe that we can anticipate our customer’s actual response to our products. We might be basing that on actual customer research or on our own experiences, but in any case, we know today that we must validate our actual ideas on real users and customers. We need to do this before we spend the time and expense to build an actual product, not after.
And later, on prototypes:
Product discovery [coming up with a validated product backlog] involves running a series of quick experiments, and to do these experiments quickly and inexpensively, we use prototypes rather than products.
On the topic of “functional specs”, both books agree that writing long specs filled with “requirements” is a terrible way to build software. I don’t think any of us disagrees with that. But again, they diverge on the best alternative. From Basecamp:
So what should you do in place of a spec? Go with a briefer alternative that moves you toward something real.
Write a one page story about what the app needs to do. Use plain language and make it quick. If it takes more than a page to explain it, it’s too complex, The process shouldn’t take more than a day.
Then begin building the interface — the interface will be the alternative to the functional spec. Draw some quick and simple paper sketches. Then start coding it into HTML. Unlike paragraphs of text that are open to alternate interpretations, interface designs are common ground that everyone can agree on.
Marty favors a technique called the Opportunity Assessment for the vast majority of projects:
The idea is to answer four key questions about the discovery work you are about to undertake:
- What business objective is this work intended to address? (Objective)
- How will we know if we’ve succeeded? (Key results)
- What problem will this solve for our customers? (Customer problem)
- What type of customer are we focused on? (Target market)
[…] You need to ensure that every member of your product team knows and understands the answers to these four questions before you jump into your product discovery work.
To summarize this another way: most people in this post-waterfall world agree that the biggest reason why software projects fail is that various risks are assessed too late, which ends up being too costly for the business to survive. Most even agree on the core principles to follow to fix this: tackle risk as early and as cheaply as possible. Where we are seeing the divide is in how this should be done.
One perspective is what we can call the prototyping movement (I’m deliberately staying away from naming specific methodologies). The goal is to align around business objectives and build functional prototypes to meet those objectives as quickly as possible, and test those with real users before engineering gets involved.
The other perspective, the real software movement, says that even that takes too long, and that nothing can replace the feedback you get from working software in production — as long as you’re able to make changes very quickly.
In our search for easy answers and silver bullets, the obvious next question here is, “ok, so who’s right?” But I think good product managers eschew such easy answers. Good product managers are always learning about different perspectives, but they have to learn through an added dimension—the lens of their own product and culture.
So for me, the real takeaway from these books hasn’t been the prescribed solutions — although those are certainly helpful as idea starters. The real takeaway has been all the roadblocks to good product development that I noted down as I was reading. The different kinds of risk we need to validate. The constraints we tend to miss when we brainstorm and plan. The heavy processes that do nothing more than slow teams down and make them unhappy. How to address those challenges in a particular culture is where the true art of modern product management lies, and what makes the job itself so difficult to pin down, define, and get good at.
I’ve learned a great deal about product, culture, and teams this year. But no lesson has been more valuable than this: the challenges to building good products are universal, but the solutions are not, and the biggest value I can add to the team is to work with them to figure out the best way for us, in our context to address these challenges in a way that ensures the team is happy and productive, and our customers love our products.
I’m guess if I have to make a New Year’s Resolution, getting better at this would be it.
Questionable use of stock photography aside, Colin Lernell’s Is the Product Requirements Document Dead? A Debate. brings up some interesting points. I’ve long argued that if you do it right, a good “product spec” is essential to successful product management and development. We’ve come a long way since the original concept of a 45-page PRD that no one reads (not even the person who wrote it). The format has evolved as we’ve grown accustomed to leaner development processes.
One of Colin’s suggested alternatives to the dreaded PRD is what he calls an MVPRD. I don’t like the term (the overuse of the MVP concept makes it all but useless these days). But the approach is one I agree with:
Write your first MVPRD in a short, limited amount of time (just enough to communicate to your team and start work) to avoid bloat. As you move toward or through development, meet with your team frequently to assess and iterate on what should go into the document and what should be taken out. Remember to keep it lean and that your intent is to figure out what you need in the document and if you need it at all.
Our product specs at Postmark follow a similar journey. At the beginning of a project I start a new spec document from a template in our wiki. I fill out as much of the basics as possible, which in our case consists of the following:
We use that information for our team kick-off call, and then we start filling out the rest of the document as we go. We also go back and make changes as we get further down the road and make decisions. We have three main sections for this part of the document:
The important thing to remember about this fluid version of a product spec is that it is not a document you write from front to back at the beginning of a project and then never look at again. It’s also not something that’s every really done. It’s a document that starts small and that you keep working on as you go.
The benefits of doing it this way is that it not only helps you document all the little decisions you make along the way as you build a product, it also builds up organizational knowledge to remind you of why the team made the decisions they made. Because you will forget otherwise. So if you’re developing without a blueprint and feeling some pain and chaos, give this approach a shot. It might just provide the relief you need.
I find teams generally do a good job of thinking of the features that make up the core customer-facing functionality of their project. It’s the non-customer-facing features that tend to be forgotten.
— James Hood on why software project estimates are so often wrong, from Plan All of the Things!
A few months ago I wrote a post about how we build a product vision and roadmap for Postmark. It’s now almost 6 months later, and I just published a big post on the Postmark blog about how things are going. From roadmap to shipping: effective product management for remote teams is about how we moved from vision to execution, and how we dealt with the many challenges that remote teams bring to the equation. For example, on communication:
As a remote team we have to walk a fine line between working in private and working in public. We see this as a basic sine wave, where balance is extremely important. Work in private too much and you become silo’d and isolated. Work in public too much and it gets distracting for the rest of the team (and you never get time to focus). So we ran with the sine wave metaphor to create a diagram that outlines our ideal approach to private/public working and how we gather feedback.
You can view the post to see this diagram as well as a bunch of other topics: