User Stories Applied for Agile Software Development

Ohjelmistokehityksessä on joitain perustotuuksia, jotka pätevät olipa kehitysmalli mikä tahansa. Yksi tällainen totuus on se, että ennen kun jotain voidaan tehdä, on tiedettävä mitä pitäisi tehdä. Ohjelmistokehitysmenetelmien historia tuntee useita erilaisia tapoja määritellä toivottu lopputulos. Siinä, kuinka paljon tavoitetilasta pitäisi tietää missäkin menetelmässä, on hyvin suuria eroja. Samoin siinä, miten toivottu lopputulos itse asiassa kuvataan.

Asiasta käytetään usein nimeä vaatimusmäärittely ja sen koostamiseen käytetään yleisesti monia erilaisia kuvaustapoja. IEEE on tehnyt suosituksen, kuinka vaatimukset pitäisi kuvata; UML ja monet muut menetelmät suosittelevat käytttapausten käyttöä; joissakin menetelmissä käytetään käyttötapausten sijaan skenaarioita ja käytännössä valtaosa projekteista käyttää jotain epävirallista, kenties itsekehitettyä tapaa kuvata vaatimukset jollain tavalla.

Tässä kirjassa esitellään käyttäjätarinat, jotka ovat erityisen hyvin ketteriin menetelmiin soveltuva tapa kuvata kehitettävälle järjestelmälle asetettuja toiveita. Käyttäjätarinoiden esittelyn lisäksi kirjassa käydään kattavasti läpi koko ketterä kehitysprosessi tarinankirjoituksesta julkaisusuunnitelmaan ja iteraation suunnitteluun.

Luvussa 15 esitetään miten käyttäjätarinoita voidaan käyttää Scrumin kanssa. Käyttäjätarinat istuvat luontaisesti tuotteen työlistan (engl. product backlog) muodostamiseen. Sprintin työlistaan (engl. sprint backlog) käyttäjätarinat pilkotaan vielä pienemmiksi, selkeiksi tehtäviksi.

Luvut 2-5 tuovat loistavasti esiin ketteriin menetelmiin sisäänrakennetun käyttäjälähtöisyyden ja asiakasyhteistyön. Heti projektin aluksi mietitään käyttäjäroolit (tai ehkä mennään vielä pidemmälle, ja määritellään persoonat) ja kuinka tarinat kirjoitetaan, priorisoidaan ja lopulta toteutetaan tiiviissä yhteistyössä asiakkaan kanssa.

Tätä kirjaa voi suositella varauksetta kenelle tahansa. Niin projektipäälliköiden, Scrum-mestarien, tuotteen omistajien ja kehittäjien kuin ylemmän johdonkin on hyvä tietää, millä tavoin projektia voidaan ohjata käyttäjätarinoilla - myöskään projektin tilaajaa, asiakasta unohtamatta. Kunkin luvun lopussa onkin kätevä tiivistelmä kulloisestakin aiheesta kahdesta eri näkökulmasta: mitkä asiat ovat asiakkaan vastuulla ja mitkä ovat kehittäjien vastuulla. Näiden lisäksi on myös aiheeseen liittyviä kysymyksiä, joita pohtimalla pääsee punnitsemaan, kuinka hyvin sisäisti esitetyn ajatuksen. Kirjan lopussa (Appendix B) on myös vastaukset esitettyihin kysymyksiin.

Sisältö:

  1. Part 1: Getting Started
    An Overview
  2. Writing Stories
  3. User Role Modeling
  4. Gathering Stories
  5. Working with User Proxies
  6. Acceptance Testing User Stories
  7. Guidelines for Good Stories
    Part II: Estimating and Planning
  8. Estimating User Stories
  9. Planning a Release
  10. Planning an Iteration
  11. Measuring and Monitoring Velocity
    Part III: Frequently Discussed Topics
  12. What Stories Are Not
  13. Why User Stories
  14. A Catalog of Story Smells
  15. Using Stories with Scrum
  16. Additional Topics
    Part IV: An Example
  17. The User Roles
  18. The Stories
  19. Estimating the Stories
  20. The Release Plan
  21. The Acceptance Tests
    Part V: Appendices
  22. Appendix A: An Overview of Extreme Programming
  23. Appendix B: Answers to Questions