Planeringsspelet är en del av en typ av mjukvaruutveckling som kallas extrem programmering. Det skapar en spelliknande miljö där personal från företag och utveckling, kallade ”kunder” och ”programmerare” i spelet, samarbetar för att utveckla en ny mjukvara. Det finns två delar av planeringsspelet: releaseplanering och iterationsplanering.
Releaseplanering är den inledande fasen av planeringsspelet, där teammedlemmarna bestämmer vilka funktioner programvara kommer att ha och hur lång tid det kommer att ta att utveckla funktionerna. Spelet börjar med att kunderna skapar ”berättelser”. Berättelser i detta sammanhang är korta beskrivningar av ett slutresultat som önskas från programvaran. Varje berättelse skrivs vanligtvis på ett separat registerkort. Kunder kan skapa berättelser när som helst i spelet.
Programmerarna får sedan berättelserna och uppskattar kostnaden, eller hur lång tid det kommer att ta att slutföra varje berättelse. När kunderna väl har kostnadsuppskattningarna placerar de berättelserna i prioritetsordning. Programmerare och kunder kan ställa frågor till varandra under hela processen för att klargöra uppskattningarna och prioriteringarna för berättelserna. Teamet kan också lägga till nya berättelser under processen, eller dela upp en stor berättelse i flera berättelser. Varje gång detta händer måste den eller de nya berättelserna ha en kostnad och prioritet tilldelad dem.
Programmerare har sista ordet i kostnadsuppskattningar och kunder har sista ordet i prioriteringar, så att varje grupp har den yttersta auktoriteten över sina expertområden. När kostnaderna och prioriteringarna har slutförts, gör teamet ett åtagande till releaseplanen. En releaseplan kan vara ”datadriven” eller ”storydriven.”
I det datadrivna engagemanget väljer kunderna ett releasedatum och programmerarna bestämmer hur mycket tid de kan lägga på att utveckla. Slutligen väljer kunderna berättelser att lägga till den tiden. En storydriven releaseplan innebär att kunderna börjar lägga till stories till releasen och programmerarna anger releasedatumet för de valda stories. Kunderna kan fortsätta att lägga till berättelser tills de bestämmer sig för att de kumulativa valda berättelserna kan fungera tillsammans som nästa utgåva.
Iterationsplanering är den löpande planering som sker under mjukvaruutveckling. Iterationerna i planeringsspelet sker med två veckors intervall, under vilka programmerarna skapar användbar programvara för några av de berättelser som valts under releaseplaneringen. I slutet av varannan vecka väljer kunderna de berättelser de vill skapa under de kommande två veckorna, och programmerarna räknar ut hur mycket arbete de faktiskt kan utföra under den tiden.