One Day Tasks
It is quite difficult to identify a portion of work for one day. On the other hand it incredibly and surprisingly simplifies basically everything in the scrum. Let me try to explain...
Traditional tasks
All of us know them very well. You've got a story to show some data on the screen. It is quite natural to split it into back-end part and front-end part. So far so good. Naturally, you're going to start with back-end. It will need need any DAO, some service, couple of unit tests... The easiest thing that you can do is to create a task with description of "Implement back-end functionality" and estimate it by 3 days. Wait, 4 days would be more reasonable. As a bonus, you have now at least 3 days for saying "I' worked on my task yesterday and I'll continue working on it today" on stand-ups. Life is easy. Even the burn-down chart looks great as long as you log hours. All other members of the dev-team do the same and the ScrumMaster sees a nice chart every morning. But suddenly, right before the end of the sprint the burn down stops going down and looks like dead men's ECG. What happened? This guy forgot this on his general task (e.g. integration tests), that guy forgot that, other guys just underestimated something and now they all just updated remaining hours. ScrumMaster had an heart attack and now he tries to convince the dev team that the sprint goal is important and thus they're supposed to finish everything over the weekend. Everybody is annoyed. But they are not that bad team, they don't really want to hide behind their tasks and they like their ScrumMaster... So they did a retrospective and realised that they need more granular tasks. Like implement DAO, implement service, do uint tests... And they even agreed on a rule that maximum estimate of one task is 16 hours. Will this help? I'm not that sure...
The problem is that soon or later there will be basically atomic task (create service) but every developer will say that it is not possible to get it done in 16 hours. And now what? I say "play video games!".
Play video games
Video games have checkpoints. They are usually not very far form each other and after each checkpoint you can decide if you want to try to reach another one. They usually don't have linear complexity - there are tough bosses waiting for you And the mission is not complete until you reach the last one no matter how many of them are already behind.
While a user story represents a shippable increment, a task doesn't. It is not necessary to define tasks as deliverables - they can represent checkpoints. The only problem is that it is much more difficult to see or identify checkpoints than clearly visible deliverables. It requires thinking. But I would bet that you already did it and maybe you're doing it every day. Have you ever said to yourself "I'll just finish this idea to see if it's working and then I'll go"? I did this many times because I don't like to go home with unfinished idea in my head. It keeps me thinking about it and I can better sleep when I know what is the point from which I can continue tomorrow. For example you want to be sure that the complex query in your DAO class is really working well in every case. Or you need to know that your algorithm builds correct tree when the whole solution is based on using a tree... You didn't finish the DAO or the algorithm but you reached a checkpoint. When you're implementing a service it definitely has an interface. Can particular methods be your checkpoints? A combination of them? You just need to ask yourself "What I want to get done today?".
Sprint planning in 30 minutes and 5 min stand-up
So after grooming the stories the team spent some extra time and identified checkpoints or one day tasks for couple of stories that will go to the next sprint. Now it's time to pick the fruit. One day tasks work perfectly with the scrum board. At the beginning of sprint planning the dev-team just creates stickers for particular tasks and put them on the board when the story is taken to the sprint and the task is assigned. Nobody needs to calculate remaining capacity for particular members because first everybody knows his capacity and second the overall capacity is given by the number of stickers where member's count times sprint days is 100%. Of course, there is always something wrong, something takes longer etc. so by experience it's a good practice to keep the number of stickers on the board somewhere between one half and three quarters of the maximum number. The sprint planning can be done in 30 minutes this way.
Scrum board with 1d tasks gives an ultimate view of the work status. It's simple. During the stand-up, each day each team member just moves his checkpoint sticker to the "Done" column or draw a dot on it if it was not done. The team can easily see if they still follow their plan... Instead of describing their work from yesterday they focus on why some checkpoints have not been reached and how to help each other. As a bonus, nobody needs to log hours or status into any system. The ScrumMaster sees everything clearly on the board and can do it in few minutes. Developers can focus on their work.
12/30/2016
Komentáře
Okomentovat