Menu

Posts tagged “product strategy”

Products as functions

I’ve been really intrigued by Ryan Singer’s thinking around Products as Functions:

Products are easier to reason about when you think of them as functions. They transform an input situation into an output situation.

This lets you describe what the product does as a transformation of the user’s circumstance instead of a bundle of features.

I’ve been using this thinking on a new project we’re working on at Postmark. I like this approach because it gives us a framework to communicate why something is a good idea to work on, and it focuses on the benefit for customers. If our answer to the question “How much better is this new outcome?” is “Not better enough”, then we need to define a better Output situation, which would lead to a better Process.

Where are your "invisible asymptotes"?

Eugene Wei’s Invisible asymptotes is a long, excellent article about the importance of not just thinking about product-market fit, but also product-market unfit:

For so many startups and even larger tech incumbents, the point at which they hit the shoulder in the S-curve is a mystery, and I suspect the failure to see it occurs much earlier. The good thing is that identifying the enemy sooner allows you to address it. We focus so much on product-market fit, but once companies have achieved some semblance of it, most should spend much more time on the problem of product-market unfit.

For me, in strategic planning, the question in building my forecast was to flush out what I call the invisible asymptote: a ceiling that our growth curve would bump its head against if we continued down our current path. It’s an important concept to understand for many people in a company, whether a CEO, a product person, or, as I was back then, a planner in finance.

He goes on to discuss those asymptotes for different companies (for example, shipping fees for Amazon). Another interesting bit:

We speak often of the economics concept of the demand curve, but in product there is another form of demand curve, and that is the contour of the customers’ demands of your product or service. How comforting it would be if it were flat, but as Bezos noted in his annual letter to shareholders, the arc of customer demands is long, but it bends ever upwards. It’s the job of each company, especially its product team, to continue to be in tune with the topology of this “demand curve.”

I see many companies spend time analyzing funnels and seeing who emerges out the bottom. As a company grows, though, and from the start, it’s just as important to look at those who never make it through the funnel, or who jump out of it at the very top. The product market fit gradient likely differs for each of your current and potential customer segments, and understanding how and why is a never-ending job.

Figuring out what your product’s invisible asymptotes are sounds like a really good thought process to me. At the beginning of the article Eugene mentions one way Amazon tried (and succeeded) in answering this question:

For people who did shop with us, we had, for some time, a pop-up survey that would appear right after you’d placed your order, at the end of the shopping cart process. It was a single question, asking why you didn’t purchase more often from Amazon.

Another technique he mentions:

One approach I’ve taken when talking to companies who are trying to achieve initial or new product-market fit is to ask them why every person in the world doesn’t use their product or service. If you ask yourself that, you’ll come up with all sorts of clear answers, and if you keep walking that road you’ll find the borders of your TAM taking on greater and greater definition.

A good way to frame this could be to ask yourself something like this:

If we didn’t change anything about [product name], at what point would we hit a growth ceiling, and what are the factors that would cause that?

If you can have a reasonably confident answer to where the S-curve inflection point will be, you can start planning on avoiding it early. That’s a worthy effort, and definitely something I intend to think through for our products.

Product managers: don’t play favorites with methods and techniques

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.

Product management for maturing products

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:

JIRA releases board

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.

How Facebook realized that it’s more than a platform

Nicholas Thompson and Fred Vogelstein has a gripping feature in Wired called Inside Facebook’s Two Years of Hell. It’s long, but very much worth reading. It takes us through a journey that starts with Facebook’s years of denial:

It appears that Facebook did not, however, carefully think through the implications of becoming the dominant force in the news industry. Everyone in management cared about quality and accuracy, and they had set up rules, for example, to eliminate pornography and protect copyright. But Facebook hired few journalists and spent little time discussing the big questions that bedevil the media industry. What is fair? What is a fact? How do you signal the difference between news, analysis, satire, and opinion? Facebook has long seemed to think it has immunity from those debates because it is just a technology company—one that has built a “platform for all ideas.”

And it ends at the point they are at now: starting to realize that they can’t hide behind the “we’re just a platform” excuse any more.

Two product roads diverged in a wood

Forest roads

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.

The same, but different

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:

  1. What business objective is this work intended to address? (Objective)
  2. How will we know if we’ve succeeded? (Key results)
  3. What problem will this solve for our customers? (Customer problem)
  4. 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.

Many ways to skin a cat

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.

So which is it?

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.

Personas and Jobs-to-be-Done: a match made in heaven

I’m guessing that not everyone is going to agree with NN Group on this one, but I’m on board with their article about Personas vs. Jobs-to-Be-Done:

With the popularity of the JTBD paradigm, there are calls in some corners to abandon personas, suggesting that JTBD has emerged as a more useful technique. This point of view is based on a fundamental misunderstanding of the purpose of personas as primarily demographic representations of users, missing the key behavioral considerations that are essential to good personas and that provide much needed guidance for interaction design and product strategy.

The thing is that, as I have written in Job stories are great, but personas aren’t dead, we shouldn’t confuse marketing personas with design personas, which are specifically created to guide the development of product features. Design personas are based on needs, goals, and dimensions that have a direct impact on their interaction with the product.

Good design personas are complementary to JTBD, not in conflict with it. As NN Group further explains:

Well-executed personas are based largely on rich behavioral characteristics, attitudinal data, and insights about mental models, and they require qualitative research with real users to uncover the why behind users’ behaviors. These rich personas typically will include information related to specific goals that users must achieve when they use the product; these goals are directly comparable to the information found in the jobs-to-be-done definition.

So instead of choosing between Personas and JTBD, I’d like to have both, please. I’ll use Personas to get a better understanding of the goals and needs of our target market, and I’ll use JTBD to help create the products that will meet those goals and needs.

Good/Bad Product Manager: the Wildbit perspective

I think most of us know Ben Horowitz’s classic Good/Bad Product Manager post. At Wildbit we have a whole section of similar Good/Bad posts to help define our take on various roles — but until recently, the Product Manager slot was empty. I started working on our take on the Good/Bad Product Manager debate a while ago, and we finally published it last week.

I realized that the most important lesson I learned about product so far at Wildbit is the importance of a happy and effective team, and how much of a Product Manager’s time should be spent on that:

No amount of workshops, sticky notes, or JTBD theory will help you create consistently awesome products that customers love if you don’t work with a team that is fulfilled and motivated.

That might be a slightly controversial idea, and it might not work for every organization. But it certainly works for us. So here it is, our perspective on what it takes to be a good product manager.

Product Management for well-established products

There’s a lot you need to get right when launching a new product. There’s figuring out the user needs and the business goals; there’s testing hypothesis and finding product/market fit; there’s prioritizing the roadmap (or more likely these days, deciding not to use a roadmap at all)… the list goes on and on. So naturally there’s quite a bit of writing on this topic. Most product management advice (including, ahem, a certain book) covers this area of fresh or updated products very well. What we see less of is articles and books about how to manage a well-established product.

What do I define as a well-established product? It’s fuzzy, but I see it roughly as a product that has been in the market for more than a couple of years, has a steady and growing revenue stream, as well as a few healthy competitors. The reason I’m interested in well-established products is because, well, Postmark (where I work) is one. We have a product that most of our customers love, and it’s growing in both users and revenue. Of course we have ideas on how to make it better, but we’re in a different stage of our journey. We’re not frantically playing catchup with competitors or trying to complete a bunch of features that aren’t adding value to any customers yet.

This is, I’ll admit, a wonderful position to be in as a product manager. But it doesn’t mean there’s no work to do. I’ll stop short of pulling out the “software is never done” trope (in fact, I’d argue that software can be done). I will say that we’re definitely not done with ours yet. So as a product manager, I learned this year that well-established products face a different set of challenges than newer products. Here’s an incomplete list of my hypotheses about managing such products:

  • Prioritization becomes a much finer art (with a little less science).
  • Roadmaps become more important.
  • Process becomes more necessary.

I’d like to spend a little time discussing each of these issues separately.

Weekend work

Prioritization

When I started at Postmark we went through a full product discovery and prioritization exercise. I wrote a long post about it on our blog: How we built a product vision and roadmap. I also followed that up a few months later with From roadmap to shipping: effective product management for remote teams — a post on how we moved from strategy to execution. Something I didn’t get into in those posts is how my understanding of prioritization evolved as we moved further into the details.

Postmark is a tool for developers. That means that feedback from customers comes in often, and it comes in detailed. Feature requests are usually incredibly specific (and useful), ranging from a field that’s needed in an API, to missing functionality and how that affects their business. Due to the sheer volume of high-quality feedback we get, I learned quickly that I needed an efficient way to categorize and prioritize things as they come in, otherwise everything would just go die on a backlog somewhere.

The biggest shift here was to move to a system where we prioritize themes, not individual problems or features. A theme is loosely defined as a particular customer problem or opportunity we need to solve — similar to the “hypothesis” nomenclature in lean development. Now, when new ideas come in to JIRA (Yes, yes, I know; more on JIRA later) — either internally or from customers — I follow a set of steps to (1) process and (2) prioritize them:

  1. First I do a gut check: is this something we’d ever do? Does it point to a customer problem or business opportunity that would be beneficial for all of us to solve? If so, great. If not, the request gets rejected with a note so we can get back to the customer or internal stakeholder.
  2. If a theme already exists for a particular idea (e.g., Improvements to the Bounce webhook, or Improvements to the Statistics page), I add it there, and considered it processed. It would be too overwhelming to think through the details of every single idea, but I know that when the time comes to work on a particular theme, it’ll be there, and we’ll go through it then.
  3. If a theme doesn’t already exist for that idea, it gets a little trickier. Is this important enough to group together with other things to create a new theme? Do we expand a theme to “make room” for the idea? This is where things get decidedly less certain, and I have to be comfortable with a certain amount of fluidity. I might create a new theme, only to merge it into something else later. That’s ok. As long as it’s somewhere manageable where we won’t forget about it, I’m happy.

During our quarterly planning I don’t make the team go through every single JIRA ticket (to their enormous relief). Instead, we discuss our OKRs (Objectives and Key Results) for the quarter, and then decide which themes to work on that line up with those OKRs. Once our themes are prioritized, I work with the teams to figure out how best to address it — it’s usually a combination of some of the ideas already inside that theme, and a few new ones we come up with.

And this leads me to my next point…

Roadmaps

I’m still quite amazed at how out-of-fashion roadmaps have become. It seems to me that a lot of people got burnt by 2-year corporate plans that weren’t allowed to change, and then decided that the only way to deal with that (admittedly atrocious) situation was to get rid of roadmaps altogether.

I respectfully disagree.

I’ve written about this before, so I’ll just reiterate one bit here:

The purpose of a product roadmap is to set forth a long-term vision for the business, and break that up into smaller, meaningful pieces of work, based on what you know now. It’s fallacy to believe that this is an unchangeable list of dates about where the business is headed. A product roadmap that doesn’t react to day-to-day changes in the market and within the company is a pretty dumb document.

This is, in my experience, especially true for a well-established product. There is a lot more leeway to mess around and see where things go on a new product. 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. And then you meet every week as a core team to discuss a couple of things:

  • Did any new theme arise over the week that is important for us to discuss?
  • If so, and if we should work on it soon, what does it replace?
  • If not, then let’s get back to work.

This keeps the roadmap flexible, and it keeps the team aligned on what the most important themes are for the product and our customers.

Process

Which brings me to my last point… process. I’ll quote Michael Lopp on this until the day I die:

Engineers don’t hate process. They hate process that can’t defend itself.

Considering the sheer number of detailed input we get on the product as well as the amazing ideas coming from inside the team, there’s no way I could just wing it. Maybe there are some PMs who can hold everything together in some kind of virtual kanban board in their heads, but I just can’t do that.

So yes, we use JIRA, and you know what? It works for us. The Customer Success and Marketing teams submit ideas and hypotheses with links to the customers who request it. If and when those ideas make it into a theme, they continue to add more customers to it as we go. They can always see where something is in the development process, and when it gets released they get to go tell a bunch of customers that the thing they asked for is now live. And that is really cool.

I understand why people hate JIRA, I really do. But I think I’m such a big proponent of it because we were able to come up with a way for it to benefit the whole team, and actually make their lives easier, not harder. We have a process that can defend itself. And I don’t think you can work on a well-established product without something like that.


This year has been an enormous learning experience for me. I’ve never worked on a product like Postmark before. It’s a product that is basically universally loved, where feedback comes in from people who are passionate about it and can’t imagine their development lives with out it.

As much as it is a dream to work on a product like this, I feel like I had to learn a whole new set of skills to be effective as a product manager in such an environment. I know I still have a long way to go, but I can tell you one thing — I’m excited to learn more in 2017.

Easy features can be very expensive

James Gill has a good overview of How bad features are born:

Most importantly, does this feature deserve to exist? Why are you working on it?

If you’re embarking on a new feature primarily because you’ve seen a competitor release something similar, then you probably haven’t thoroughly considered or even identified the problem you’re trying to solve. If you’re jumping into a new feature because it seems like “it wouldn’t be too hard to do” that’s great, but does it actually deserve to be built right now?

The biggest danger I see is this “it’s easy to implement” argument. A feature might be easy to implement, but that doesn’t make it “cheap”. The problem with implementing even easy features is that they’ll most likely remain in the product forever. That creates the potential for lots of (expensive) maintenance and support.

Also see How Much Does A New Feature Cost?