Day 1 of a new project. You have the team. You have the basic requirements. You’re ready to plan the sprint. What’s the first sprint goal? How do you decide where to start?
One of my many takeaways from reading Shape Up is that we should “start in the middle.”
The book says that there are 3 criteria for what to build first on a new project (or “cycle” in Shape Up lingo):
- Core: it should be so central that without it, the other work wouldn’t mean anything.
- Small: you should be able to complete it within a few days to start building momentum.
- Novel: build something you’ve never built before so that you can start learning.
Say you’re building a big marketing site for a bank. You start by creating a “Page” content type, right? Because it feels cozy to be able to add and edit page content after the first sprint? Wrong! That isn’t novel. You’ve built a “Page” content type 100 times. You won’t learn anything from that.
Instead, start with the daily mortgage rate ingestion engine. The site will use that data for displaying up to date rates and powering loan calculators. That is core (it’s a bank, after all), small (you could build it in a week or less), and novel (you’ve never ingested data like this).
The Pragmatic Programmer talks a lot about tracer bullets which fit right in here. Tracer code is a complete end to end connection with all the pieces of your system. You’re forced you to think about the integration points. Tracer code is core (duh, it’s the skeleton of the project) and novel (you’ve never connected those pieces in that way) and small (if it’s not, then find a way to make it smaller).
It’s all about eliminating uncertainty while also building momentum.
- Starting with something that isn’t novel won’t touch uncertainty. If you save all the risky bits until the last half, then you have half the time to deal with what you find.
- Starting with something that isn’t small won’t build momentum. There’s power in finishing something early. Showing quick progress sets the tone and gets people excited.
- Starting with something that isn’t core won’t give you a structure to build around as you go. To iterate, you need something to iterate on. You need some meat and bone rather than just fat.
Core, small, novel. Start in the middle. Read more here, from Shape Up.