We have set a goal of delivering working software as part of every sprint. That requires sprint planning and deciding on what will be in or out of scope. In this episode, we look at ways to craft a sprint and assist us in setting priorities and content. The ultimate goal is to provide working software that satisfies the customer.
The First Step
When we start a project, there will often be an overwhelming amount of tasks in the backlog. We will need to go through several sprints to reduce that long list of items. Our goal is working software along the way so consider crafting a story for each sprint. This will provide a way to tie together the tasks completed and show value to the customer.
For example, we often start with foundational tasks like security, registration, authentication, a home page, etc. We can have a story for an early sprint that is “Register The User” or “The User Home/Landing Page” or “General Site Navigation.” These may span multiple sprints or could be combined for a single sprint. The story should tie to use cases of some form and then to the tasks in the sprint. When you take the approach, you set some constraints for the sprint and crafting a way to communicate the progress to the customer.
Fill The Bucket
There is an often-used example of scheduling time that equates it to putting rocks in a container. You have large stones that can fill the box, then smaller ones that can fill gaps and down to some sand (or water) to fill the time. A sprint can work the same way. We will have large items that take a lot of time/effort and then smaller things we can slip into the “cracks” in the schedule. Start with a couple of significant/cornerstone tasks that contribute to the story and fill in around those.
We will look at prioritization, and that should be approached so that the larger items are higher priority, and the least essential items are also smaller. That will allow for the most efficient combination of small and large tasks. We often have small amounts of time available at the end of a sprint to “fit something in” rather than large blocks of time.
Priorities
Many sprint planning approaches I have seen often include three categories of tasks. These categories are: items to complete in the sprint, functions to complete, and “nice to address” features. Our story will provide a basis for assigning those priorities.
In our previous example, we mentioned a user registration story. Some critical tasks for that would include a user registration page/form, creating a user in the system, and the process to move from registration to registered for a user. That gives us our “must-have” items. We can add tasks that should be included, like validation, and maybe login to show a user is registered. The nice-to-have functions might be a registration confirmation email sent out or change password functionality.
Challenge of The Week: How do you handle your sprint planning?