Long term planning sounds like a contradiction in term when working in a Scrum process – or not? In my opinion it is a necessity: if you don’t know where you’re going you may have a great journey, but you don’t know where you will end up. The challenge with long term planning vs. the Scrum principles is that you need a way to work from a big vision to the small steps of a Sprint. Here’s a way to do this, it is what I called “Five Levels of Planning“.
The product vision is defined by the Product Owner, it describes the goal of product development, and it contains a shortlist of highly desirable features (aka themes). A vision doesn’t change often – once or twice a year probably.
Now the Product Owner needs to generate focus for the developers, the themes need to be ordered into a product roadmap and for the first theme more detail can be generated (epics). The Product Owner doesn’t have to do this on her own – specialists, stakeholders and developers can all help out. The roadmap is the start of the Product Backlog, a mix of detailed requirements and ideas for much later in the product lifecycle. Through a refinement process with the Product Owner and the Development Team involved the top of the backlog is researched, detail (stories) is added and solutions are determined. Feel free to call this high level design, as long as you don’t do it for the whole backlog, but only for the work in the foreseeable future – say about 3-6 months worth of work. Anything further down the line likely never developed, or when it is, it will be in a very different way then currently anticipated. Save your time and energy and spend it on delivering features that can make money now!
I digress: so the product backlog is understood by all involved, it has detail at the top, and an attempt can be made to estimate the work. You are a software development professional, and you know how hard this is. So don’t go overboard, it may take way too long to get high precision, I would aim for enough accuracy to manage expectations of stakeholders, and to have an indicator on whether development is harder or easier than expected. That indicator is an important input into retrospectives – bad estimates are ignored estimates, not the ones where reality shows different. With the backlog plus the estimates, the priorities can be reviewed between the Product Owner, Stakeholders and the Development Team. I call this a release plan, an order in the product backlog items that will serve the Product Owner well in terms of product usability, and an order that will also serve the team well in terms of delivery efficiency. Don’t plan out far into the future, maybe 3 months, then the world of the product owner will have changed, and thus the backlog, and thus the plan. And anticipate change in the plan – the future is not predictable.
That is a fair few steps before core Scrum is entered, all the work is aimed at getting a backlog that is serving all members of the Scrum Team well. Some teams spend days or weeks to get to this point, others just hours – do what you need to do with your team, and always ask yourself whether the extra time you spend is really necessary to build a better product. If you doubt this, then just build it.
Wrapping up the Five Levels of Planning: The Scrum Team works in the Sprint Planning on a review of the backlog and selecting the best work for the next few weeks. Best in terms of business, in terms of available skills and capacity, and in terms of dependencies. Some teams do drive out a detailed Sprint plan (tasks) others feel confident to have solutions to problems and to address the detail when the work is actually being done. Then the work gets done, the coders and testers work their magic and the Product Owner helps out with answers to questions, accepting the work that is completed. Addressing the unexpected (and unavoidable) issues during development is done in the daily Scrum – the brief conversation between all the team members on how things are going.
And the ScrumMaster? Your role in all this? Make it happen, make it agile and make it smooth!