The Planning Game
The Planning Game enables us to quickly come up with a rough plan, and then refine it as the project continues. We could say that the Planning Game is a meeting, but as everyone knowsdevelopers hate meetings! The Planning Game is a vital point of interaction between customer and developer; it's quite literally cards on the table time. The meeting takes place with the team working through a stack of index cards that contain the user stories. User requirements are written on index cards and are handled/discussed during the Planning Game. Using index cards might seem a little "Back to the Future" initially, but it is a highly effective tool. The simple utility of the cards connects customers and programmers to meet their common goal. Using index cards is by no means mandatory in the Planning Game, and you might find other tools, such as Web applications, can be effective. Whatever tools you choose, there is a clear separation of responsibilities during the Planning Game. Table 6.3 shows the responsibilities of each team member.
Table 6.3 Responsibilities During the Planning Game
Business |
Technical |
Define scope of the release |
Estimate how long each user story will take |
Define the order of delivery (which stories are done first) |
Communicate technical impacts of implementing requirements |
Set dates and times of release |
Break down user stories into tasks and allocate work |
Planning happens often and is done with an expectation of change. How can you start development with a rough plan? Even with our rough plan we have a more accurate picture than most because the customer and development team worked together to create it. The people who are doing the work are the same people that estimated the work. Problems and questions are dealt with early during the Planning Game, short-circuiting issues as they arise. We planned expecting change and involved the entire team in the process; therefore, we're on track to succeed! The XP practice of small releases works with planning as well. We can quickly gain feedback into how good our plan is, and if we need to adjust we can manage at a much finer level.
We will go in depth on both iteration and release planning in Hour 8, "Planning Your Software Release with XP" and Hour 9, "Developing Software in Iterations."