Valmiin määritelmä on tehokas yhtenäistäjä tiimien ja organisaation laatukäsityksille. Hidasteena voi olla liika kunnianhimo.
Valmiin määritelmä (Definition of Done) listaa sovitut työvaiheet, jotka tekemällä vaatimus tai ominaisuus on valmis. Hyötynä on esimerkiksi sujuvampi työmäärien arviointi ja tuotteen katselmointi, kun kehittäjillä ja tuoteomistajalla on yhteinen ymmärrys siitä mitä “valmiiseen” sisältyy. Valmis tarkoittaa, että ominaisuus on potentiaalisesti julkaistavissa.
Valmiin määrittelyssä voi olla ongelmana liiallinen kunnianhimo tai toiveajattelu: “Täytyyhän meidän valmiiseen kuulua kaikki nämä asiat.” Kerralla liian korkealle asetettu laatutavoite voi olla mahdotonta saavuttaa. Tällöin valmiin määritelmä jää sanahelinäksi, joka unohtuu parissa viikossa. Toiveajattelun sijaan valmiin määritelmän tulisikin lähteä nykytilasta.
Vinkkejä valmiin määrittelemiseen ja huoltoon:
Pidä valmiin määritelmä lyhyenä (varsinkin aluksi).
Aloita valmiin määrittely nykytilasta (ei tavoitetilasta). Vasta kun määritelmä toteutuu käytännössä, sitä voi tarvittaessa laajentaa.
Jokaisen määritelmän rivin tulee olla yksiselitteisesti tulkittavissa joko tehdyksi tai keskeneräiseksi. Esim. “dokumentointi” tai “testaus” ovat huonoja, ne pitää määritellä tarkemmin.
Esimerkki yksinkertaisesta valmiin määritelmästä:
Koodi on versionhallinnassa
Vaatimuksen hyväksymiskriteerit täyttyvät (jos niitä on kirjattu)
Joku toinen on testannut toiminnallisuuden (kuin sen kehittäjä)
Vaatimus on asennettu testiympäristöön (tuoteomistajalla pääsy)
Tuoteomistaja on hyväksynyt vaatimuksen
Valmiin määritelmässä on usein maininta hyväksymiskriteereistä (Acceptance Criteria), kuten yllä. Hyväksymiskriteerit ovat vaatimuksille kirjattavia tarkennuksia ja yksityiskohtia, joiden perusteella vaatimus on toiminnallisuutensa osalta valmis. Lisäksi vaatimuksen tulee täyttää valmiin määritelmän muutkin kohdat. Jos vaatimuksella ei ole hyväksymiskriteerejä, sen toiminnallisesta valmiudesta päättää tuoteomistaja.
Valmiin määritelmä viittaa oletusarvoisesti vaatimuksiin (Product Backlog Items). Joissain tilanteissa voi olla hyödyllistä luoda erilliset valmiin määritelmät myös julkaisulle (Release) ja kehitysjaksolle (Sprintille). Näin harvemmin toistuvia työvaiheita voidaan tarvittaessa siirtää sprintin tai julkaisun loppupuolelle. Ketterämpi tiimi tekee kuitenkin valmista yksi vaatimus kerrallaan. Tällöin ei ole vaarana, että tuote on sprintin lopussa keskeneräinen, vaikka asiakas tarvitsisi välijulkaisun.
Toimivasta valmiin määritelmästä on hyötyä koko organisaatiolle ja projektityössä myös tilaajalle: Kaikki ymmärtävät mitä valmis tarkoittaa, työmääräarviot yhtenäistyvät ja kehitysvauhti (Velocity) on helppo laskea sprintin lopussa vain valmiin määritelmän täyttävistä vaatimuksista.
Comments