How do you balance investing in large, foundational projects that take time to deliver value with pursuing smaller, quick-win features that can immediately delight users? Any frameworks or strategies you recommend?
Great question. It's really hard to prioritize small, iterative product improvements against large new features/bets. In my experience you need both, as well as a few other aspects. The way we do it in my teams is to think of it as balancing investment levels between different buckets, and to dedicate capacity to each of these buckets. Otherwise it's a constant struggle.
We've tried to describe it in this section of the Atlassian product discovery handbook talking about ideas, and that one about prioritization.
A couple of different types of buckets:
-
Boulders, rocks and pebbles
Boulders: large investments with potentially big payoff but high uncertainty, too. E.g. one or multiple teams over one or multiple quarters.
Rocks: medium sized investments with fewer risks, but potential for delighting users. E.g. one team for a month.
Pebbles: Small, typically straightforward change. E.g. one person for a week.
Don't underestimate the impact of rocks and pebbles! In my experience users LOVE to see the app they use get better every time, that's a great way to create fans.
-
RUF: Reliability + Usability improvements + new Features. Think of the RUF framework as a pyramid:
At the base of the pyramid there's Reliability. Reliability is about building trust. Trust takes a long time to build, but can be destroyed very quickly — a single event of data loss or security breach can be a serious source of churn, let alone repeat incidents. So you need to invest in your product's reliability first and foremost.
Usability Improvements comes second: a feature is rarely “done” — it’s part of a system and that system needs constant tuning. In your roadmap, it is important to allocate budget and resources to keep investing in improving your current feature set.
At the top of the pyramid is new features, both large and small.
Then you decide how you want to invest in each:
E.g. for a super early stage app you might be spending all your time on boulders and rocks, and little in reliability or usability improvements. For a more mature product you might spend 50% in the reliability bucket and only 10-20% on new features.
Then how you actually implement that in your team can vary. In my teams we look at it at investment over time: we might be focusing on a boulder for a quarter, then go back and tackle a few rocks and pebbles. Some of the teams have a rotation where 1 engineer is focusing on pebbles each week. etc.
But the important part is to have a strategy and make it a conscious choice, vs something that you react to every time you get a new request from a customer or stakeholder.