Suunnittelupeli on osa tiettyä ohjelmistokehitystä, joka tunnetaan nimellä äärimmäinen ohjelmointi. Se luo pelimaisen ympäristön, jossa liiketoiminnan ja kehityksen henkilöstö, jota kutsutaan pelin “asiakkaiksi” ja “ohjelmoijiksi”, kehittävät yhdessä uuden ohjelmiston. Suunnittelupelissä on kaksi osaa: julkaisun suunnittelu ja iteraation suunnittelu.
Julkaisusuunnittelu on suunnittelupelin alkuvaihe, jossa tiimin jäsenet määrittävät, mitä ominaisuuksia ohjelmistolla on ja kuinka kauan niiden kehittäminen kestää. Peli alkaa siitä, että asiakkaat luovat “tarinoita”. Tässä yhteydessä tarinat ovat lyhyitä kuvauksia ohjelmistosta halutusta lopputuloksesta. Jokainen tarina kirjoitetaan yleensä erilliselle hakemistokortille. Asiakkaat voivat luoda tarinoita missä tahansa pelin vaiheessa.
Ohjelmoijat saavat sitten tarinoita ja arvioivat kunkin tarinan valmistumisen kustannukset tai ajan. Kun asiakkailla on kustannusarviot, he asettavat tarinat tärkeysjärjestykseen. Ohjelmoijat ja asiakkaat voivat esittää toisilleen kysymyksiä koko prosessin ajan selventääkseen tarinoiden arvioita ja prioriteetteja. Tiimi voi myös lisätä uusia tarinoita prosessin aikana tai jakaa suuren tarinan useisiin tarinoihin. Aina kun näin tapahtuu, uudelle tarinalle tai tarinoille on määritettävä hinta ja prioriteetti.
Ohjelmoijilla on viimeinen sana kustannusarvioissa ja asiakkailla lopullinen sana prioriteeteissa, joten jokaisella ryhmällä on lopullinen valta heidän osaamisalueillaan. Kun kustannukset ja prioriteetit on viimeistelty, tiimi sitoutuu julkaisusuunnitelmaan. Julkaisusuunnitelma voi olla “datapohjainen” tai “tarinapohjainen”.
Tietoihin perustuvassa sitoutumisessa asiakkaat valitsevat julkaisupäivän ja ohjelmoijat määrittävät, kuinka paljon aikaa he voivat käyttää kehittämiseen. Lopuksi asiakkaat valitsevat tarinoita, jotka lisätään tuohon aikaan. Tarinapohjainen julkaisusuunnitelma tarkoittaa, että asiakkaat alkavat lisätä tarinoita julkaisuun ja ohjelmoijat asettavat valittujen tarinoiden julkaisupäivän. Asiakkaat voivat jatkaa tarinoiden lisäämistä, kunnes päättävät, että valitut tarinat voivat toimia yhdessä seuraavan julkaisun yhteydessä.
Iteraatiosuunnittelu on jatkuva suunnittelu, joka tapahtuu ohjelmistokehityksen aikana. Suunnittelupelin iteroinnit tapahtuvat kahden viikon välein, jolloin ohjelmoijat luovat hyödyllisiä ohjelmistoja joillekin julkaisun suunnittelun aikana valituille tarinoille. Kahden viikon välein asiakkaat valitsevat tarinat, jotka he haluavat luoda seuraavan kahden viikon aikana, ja ohjelmoijat laskevat, kuinka paljon työtä he voivat tehdä tuona aikana.