How do we figure out what to build?
Now that weâve been building our product â called Flashcrow â for a while, itâs worth talking about something tricky: how do we plan what to build? Weâve got 12 user groups, and a billion possible priorities. We use three processes that feed into one another in order to get clearer on how to build what matters, for the users that matter, in the time we have.
Itâs the thing that says what outcomes matter, and in what order youâre gonna build them. Itâs pretty vague on timelines, but it usually says whatâs gonna happen within the 3 months with some clarity, and it has a bunch of ideas and some good priorities for 3-to-9 months away.
The roadmap gets made from our vision: whereas a vision just gives us something to aim at, the roadmap adds some clarity around priority and timing to that vision. It makes the dream real, but still a little unformed.
Sure, you might know what features a user needs â but what if youâre really putting an app together from nothing? You probably donât know what theyâll look like, how theyâll fit together, or even which are the most important.
To solve those problems, you need something that helps guide your experimenting, that gives you increasing confidence and clarity over user needs, and that puts the focus on what you must do first. And thatâs what our hypothesis dashboard did in the early stages of our product development. Sure, we donât use it as much now that weâve validated and falsified many hypotheses â instead, weâre leaning more on user stories and epics â but it was super important in getting us here.
The hypothesis dashboard was the way we turned hypothesis-driven validation into a process, backed by a kanban board. This is what it looks like:
Neat, hey? We can filter by whatâs being validated (feasibility/viability/desirability), what slice of the product it could affect, and whether itâs ready to test (and should be added to our sprint plan) or already tested, in which case weâll have to integrate its conclusions into our sprint plan too, or go back to the drawing board.
The roadmap tells you whatâs important, the hypothesis dashboard tells you what we believe about how to solve whatâs important, and the sprint plan tells us how weâll try to go and build it, based on our view of what we need to do now, and with the expectation that weâll probably learn weâre wrong in exciting ways.
Because the sprint is where the rubber meets the road and all our previous beliefs will actually get tested, itâs also where we discover the ways weâre wrong. So the sprint plan canât be that weâll do everything on here, or that we should even try. Instead, weâre setting priorities based on a simple question: what do we need to do first in these next two weeks to accomplish what we must? And the goal of our sprint plan becomes: do the important stuff first, and find out if the plan is still right along the way.
When framed as âwhat do we need to do first,â it allows us to take the pressure off ourselves needing to execute on all the things we could execute on. Weâll start with some riskier stuff thatâs important, in case we learn that our roadmap or hypothesis beliefs were wrong in important ways. And thatâll probably affect our sprint plan, maybe even getting us to reprioritize stuff or adapt to adjust in the middle of our sprint if itâs important enough.
The sprint is the place where we learn what to adapt to, and then we adapt. The sprint plan needs to ensure weâre not wasting effort in adapting to the wrong things, and gets us quickest to the learning part. In concrete terms: the sprint plan needs to make sure that weâre getting closer to a hypothesis dashboard that has helpful and validated hypotheses, and that our roadmap is accurate and well-prioritized so that we get closer to realizing our product vision.
Whatâs the work, then, that ends up on the sprint plan? Anything that we believe could do those things well: getting closer to the truth, and to the goal. Could be user testing, or a UI design exploration activity. It could be some preliminary backend coding around the map tile pipeline, or frontend dev. It could be some communication work to express our vision or roadmap to get stakeholder feedback. In a sprint, there are only ever a few pure âresearch questionsâ that we ask in order to directly falsify or validate our beliefs; most of the time, we learn that our plan is right or wrong by doing the thing we thought was right.
The other reason that anything can make it onto our sprint board is because our roles are interdependent, and as a team, there are many ways we can unstick one another and create progress for our whole product.
Without the structure of the roadmap and hypothesis dashboard, itâd be hard to know what âprogressâ means, making a sprint plan hard to articulate. But sometimes, you have to do that anyway: you might just have to start with a sprint plan but no roadmap, and the need to get you closer to getting a roadmap. Maybe thatâs a topic for another post, though: how do you bootstrap an agile, lean team that doesnât have an established vision or roadmap to work from? Weâve got a little experience in that now, too :)Â