User Story Mapping gir en nyttigere backlog Workshop, Smidig 2011 Nils Christian Haugen nch@scienta.no Christian Stensholt christian.stensholt@bouvet.no 1
Agenda Intro til User Story Mapping (15 min) Demo av oppgave for gruppearbeid (5 min) User Story Mapping i grupper (40 min) Retrospektiv (25 min) Erfaring med USM fra prosjekter (5 min) 2
The hardest single part of building a software system is deciding precisely what to build. Photo by SD&M 3
Programvareutvikling handler om å lære 4
Som pasient ønsker jeg å se en liste av tannleger slik at jeg kan velge en som kan undersøke tennene mine 5
6
6
7
8
8
8
8
8
Pasient Tannlegeassistent Tannlege Få undersøkt tennene Ta imot timebestillinger Undersøke tenner Velg en tannlege Kontakt tannlegekontor Foreslå aktuelle tidspunkter Noter bestilling Ta i mot pasient tid Vis liste av tannleger Velg tannlege Vis tilgjengelige tidspunkter per dag Reserver time Vis navn på neste pasient Søk på navn Vis tilgjengelige tidspunkter per uke bekreftelse på epost Vis timehistorikk Søk på område påminnelse på SMS 9
Forstå hvem som er involvert og hvorfor 10
Forstå hvem som er involvert og hvorfor Mitt mål er sunne tenner 10
Forstå hvem som er involvert og hvorfor Pasient 10
Forstå hvem som er involvert og hvorfor Pasient Mitt mål er å hjelpe folk til sunne tenner og samtidig drive god butikk 10
Forstå hvem som er involvert og hvorfor Pasient Tannlege 10
Forstå hvem som er involvert og hvorfor Pasient Tannlege Mitt mål er å hjelpe tannlegen med å gjøre en god jobb 10
Forstå hvem som er involvert og hvorfor Pasient Tannlegeassistent Tannlege 10
Forstå hvem som er involvert og hvorfor Pasient Tannlegeassistent Tannlege 10
Forstå hva folk gjør Pasient Tannlegeassistent Tannlege Folk utfører arbeidsoppgaver. 11
Forstå hva folk gjør Pasient Tannlegeassistent Tannlege Finn alternative tannleger Velg tannlege Kontakt tannlege for time Noter time i kalender Puss tenner Forbered undersøkelse av tenner Finn tilgjengelige timer for pasient Reserver time for pasient Flytt timebestilling for Ta betalt pasient for tannlegetime Ta i mot pasient Sett av tid til Si fra privat om avtale sykdomsfravær Undersøk tenner Ta røntgenbilde av tenner Bestill time Betal for tannlegetimereis til tannlegen Folk utfører arbeidsoppgaver. 11
Forstå hva folk gjør Pasient Tannlegeassistent Tannlege Finn alternative tannleger Velg tannlege Kontakt tannlege for time Noter time i kalender Puss tenner Forbered undersøkelse av tenner Finn tilgjengelige timer for pasient Reserver time for pasient Flytt timebestilling for Ta betalt pasient for tannlegetime Ta i mot pasient Sett av tid til Si fra privat om avtale sykdomsfravær Undersøk tenner Ta røntgenbilde av tenner Bestill time Betal for tannlegetimereis til tannlegen Arbeidsoppgaver gjøres som del av en aktivitet for å oppnå et forretningsmål 12
Forstå hva folk gjør Pasient Tannlegeassistent Tannlege Finn alternative tannleger Velg tannlege Kontakt tannlege for Få undersøkt time Noter time i tenner kalender Puss tenner Forbered Forvalte undersøkelse av materiell tenner Finn tilgjengelige Ta i mot timer for pasient timebestillinger Reserver time for pasient Flytt timebestilling for Vedlikeholde instrumenter Ta betalt pasient for tannlegetime Ta i mot pasient Undersøke Sett av tid til tenner Si fra privat om avtale sykdomsfravær Undersøk Forvalte Ta røntgenbilde pasientjournal tenner av tenner Bestill time Betal for tannlegetimereis til tannlegen Arbeidsoppgaver gjøres som del av en aktivitet for å oppnå et forretningsmål 12
Forstå hva folk gjør Pasient Tannlegeassistent Tannlege Finn alternative tannleger Velg tannlege Kontakt tannlege for Få undersøkt time Noter time i tenner kalender Puss tenner Forbered Forvalte undersøkelse av materiell tenner Finn tilgjengelige Ta i mot timer for pasient timebestillinger Reserver time for pasient Flytt timebestilling for Vedlikeholde instrumenter Ta betalt pasient for tannlegetime Ta i mot pasient Undersøke Sett av tid til tenner Si fra privat om avtale sykdomsfravær Undersøk Forvalte Ta røntgenbilde pasientjournal tenner av tenner Bestill time Betal for tannlegetimereis til tannlegen Aktiviteter er ofte evigvarende eller repeterende. 13
Forstå hva folk gjør Arbeidsoppgaver kan brytes ned i Få undersøkt tenner deloppgaver. Velg en tannlege Kontakt tannlegekontor Finn aktuelle tannleger Vurder aktuelle tannleger...... Se etter annonser i avis Søk etter tannleger på gule sider Få anbefaling fra venner Vurder reisevei........................ 14
Forstå hva folk gjør Få undersøkt tenner tid Velg en tannlege Arbeidsoppgaver kan forklares i Finn aktuelle tannleger Vurder aktuelle tannleger sekvens Se etter annonser i avis Søk etter tannleger på gule sider Få anbefaling fra venner Vurder reisevei 15
Forstå hva folk gjør tid Folks aktiviteter og arbeidsoppgaver går sammen om å danne arbeidsprosesser. 16
Forstå hva folk gjør Pasient Tannlegeassistent Tannlege Få undersøkt tennene Ta imot timebestillinger Undersøke tenner Velg en tannlege Kontakt tannlegekontor Foreslå aktuelle tidspunkter Noter bestilling Ta i mot pasient tid Folks aktiviteter og arbeidsoppgaver går sammen om å danne arbeidsprosesser. 16
Forstå hva folk gjør Pasient Tannlegeassistent Tannlege Få undersøkt tennene Ta imot timebestillinger Undersøke tenner Velg en tannlege Kontakt tannlegekontor Foreslå aktuelle tidspunkter Noter bestilling Ta i mot pasient tid Roller, aktiviteter og arbeidsoppgaver kan organiseres i et brukerhistoriekart. 17
Forstå hva folk gjør Pasient Tannlegeassistent Roller Tannlege Få undersøkt tennene Ta imot timebestillinger Aktiviteter Undersøke tenner Velg en tannlege Kontakt tannlegekontor Foreslå aktuelle tidspunkter Arbeidsoppgaver tid Noter bestilling Ta i mot pasient Roller, aktiviteter og arbeidsoppgaver kan organiseres i et brukerhistoriekart. 17
Brukerhistoriekart forteller historiene Pasient Tannlegeassistent Tannlege Få undersøkt tennene Ta imot timebestillinger Undersøke tenner Velg en tannlege Kontakt tannlegekontor Foreslå aktuelle tidspunkter Noter bestilling Ta i mot pasient tid Både den korte og lange versjonen. 18
Brukerhistoriekart forteller historiene Pasient Tannlegeassistent Tannlege Få undersøkt tennene Ta imot timebestillinger Undersøke tenner Velg en tannlege Kontakt tannlegekontor Foreslå aktuelle tidspunkter Noter bestilling Ta i mot pasient tid Både den korte og lange versjonen. 18
Brukerhistoriekart forteller historiene Pasient Tannlegeassistent Tannlege Få undersøkt tennene Ta imot timebestillinger Undersøke tenner Velg en tannlege Kontakt tannlegekontor Foreslå aktuelle tidspunkter Noter bestilling Ta i mot pasient tid Både den korte og lange versjonen. 18
Prioriter arbeidsprosesser Timebestilling Lagerhåndtering Timeavbestilling Forvaltning av journal 19
Prioriter arbeidsprosesser Timebestilling Lagerhåndtering Timeavbestilling Forvaltning av journal 19
Prioriter arbeidsprosesser Timebestilling Lagerhåndtering Timeavbestilling Forvaltning av journal 19
Prioriter arbeidsprosesser Timebestilling Lagerhåndtering Timeavbestilling Følg penga! Forvaltning av journal 19
Prioriter arbeidsprosesser Timebestilling Lagerhåndtering Timeavbestilling Forvaltning av journal 19
Identifiser funksjoner Pasient Tannlegeassistent Tannlege Få undersøkt tennene Ta imot timebestillinger Undersøke tenner Velg en tannlege Kontakt tannlegekontor Foreslå aktuelle tidspunkter Noter bestilling Ta i mot pasient tid 20
Identifiser funksjoner Pasient Tannlegeassistent Tannlege Få undersøkt tennene Ta imot timebestillinger Undersøke tenner Velg en tannlege Kontakt tannlegekontor Foreslå aktuelle tidspunkter Noter bestilling Ta i mot pasient tid Vis liste av tannleger Velg tannlege Vis tilgjengelige tidspunkter per dag Reserver time Vis navn på neste pasient Søk på navn Vis tilgjengelige tidspunkter per uke bekreftelse på epost Vis timehistorikk Søk på område påminnelse på SMS 20
Identifiser funksjoner Pasient Tannlegeassistent Tannlege Få undersøkt tennene Ta imot timebestillinger Undersøke tenner Velg en tannlege Kontakt tannlegekontor Foreslå aktuelle tidspunkter Noter bestilling Ta i mot pasient tid Vis liste av tannleger Søk på område Velg tannlege Vis tilgjengelige tidspunkter per dag Vis tilgjengelige tidspunkter per uke Reserver time bekreftelse på epost påminnelse på SMS Vis navn på neste pasient Funksjoner som vil gjøre det enklere / raskere / bedre Søk på navn å utføre arbeidsoppgavene Vis timehistorikk 20
Identifiser funksjoner Pasient Tannlegeassistent Tannlege Få undersøkt tennene Ta imot timebestillinger Undersøke tenner Velg en tannlege Kontakt tannlegekontor Foreslå aktuelle tidspunkter Noter bestilling Ta i mot pasient tid Vis liste av tannleger Søk på område Velg tannlege Vis tilgjengelige tidspunkter per dag Vis tilgjengelige tidspunkter per uke Reserver time bekreftelse på epost påminnelse på SMS Vis navn på neste pasient Ikke velg løsning for Funksjoner som tidlig! vil gjøre det enklere / raskere / bedre Søk på navn å utføre arbeidsoppgavene Vis timehistorikk 20
Identifiser funksjoner Pasient Tannlegeassistent Tannlege Få undersøkt tennene Ta imot timebestillinger Undersøke tenner Velg en tannlege Kontakt tannlegekontor Foreslå aktuelle tidspunkter Noter bestilling Ta i mot pasient tid Vis liste av tannleger Søk på område Velg tannlege Vis tilgjengelige tidspunkter per dag Vis tilgjengelige tidspunkter per uke Reserver time bekreftelse på epost påminnelse på SMS Vis navn på neste pasient Funksjoner som vil gjøre det enklere / raskere / bedre Søk på navn å utføre arbeidsoppgavene Vis timehistorikk 20
Nye verktøy kan endre arbeidsflyten Pasient Tannlegeassistent Tannlege Få undersøkt tennene Ta imot timebestillinger Undersøke tenner Velg en tannlege Kontakt tannlegekontor Foreslå aktuelle tidspunkter Noter bestilling Ta i mot pasient tid Vis liste av tannleger Velg tannlege Vis tilgjengelige tidspunkter per dag Reserver time Vis navn på neste pasient Søk på navn Vis tilgjengelige tidspunkter per uke bekreftelse på epost Vis timehistorikk Søk på område påminnelse på SMS 21
Nye verktøy kan endre arbeidsflyten Pasient Tannlege Få undersøkt tennene Undersøke tenner Velg en tannlege Kontakt tannlegekontor Foreslå aktuelle tidspunkter Noter bestilling Ta i mot pasient tid Vis liste av tannleger Velg tannlege Vis tilgjengelige tidspunkter per dag Reserver time Vis navn på neste pasient Søk på navn Vis tilgjengelige tidspunkter per uke bekreftelse på epost Vis timehistorikk Søk på område påminnelse på SMS 21
Brukerhistoriekart viser mer kontekst enn tradisjonelle brukerhistorier Pasient Tannlege Få undersøkt tennene Planlegge arbeidsdag Velg en tannlege Kontakt tannlegekontor Finn aktuelle tidspunkter Noter bestilling Ta i mot pasient tid Vis liste av tannleger Velg tannlege Vis tilgjengelige tidspunkter per dag Reserver time Vis navn på neste pasient Søk på navn Vis tilgjengelige tidspunkter per uke bekreftelse på epost Vis timehistorikk Søk på område påminnelse på SMS 22
Brukerhistoriekart viser mer kontekst enn tradisjonelle brukerhistorier Pasient Tannlege Få undersøkt tennene Som pasient Planlegge arbeidsdag Velg en tannlege ønsker jeg å se en liste av tannleger Kontakt tannlegekontor Finn aktuelle tidspunkter Noter bestilling slik at jeg kan velge en som kan Ta i mot pasient Vis liste av tannleger Søk på navn Søk på område undersøke tennene tid mine Vis tilgjengelige Velg tannlege tidspunkter per dag Reserver time Vis tilgjengelige tidspunkter per uke bekreftelse på epost påminnelse på SMS Vis navn på neste pasient Vis timehistorikk 22
Brukerhistoriekart viser mer kontekst enn tradisjonelle brukerhistorier Pasient Tannlege Få undersøkt tennene Planlegge arbeidsdag Velg en tannlege Kontakt tannlegekontor Finn aktuelle tidspunkter Noter bestilling Ta i mot pasient tid Vis liste av tannleger Velg tannlege Vis tilgjengelige tidspunkter per dag Reserver time Vis navn på neste pasient Søk på navn Vis tilgjengelige tidspunkter per uke bekreftelse på epost Vis timehistorikk Søk på område påminnelse på SMS 22
Sorter funksjoner etter prioritet Pasient Tannlege Få undersøkt tennene Undersøke tenner Velg en tannlege Kontakt tannlegekontor Finn aktuelle tidspunkter Noter bestilling Ta i mot pasient tid Vis liste av tannleger Velg tannlege Vis tilgjengelige tidspunkter per dag Reserver time Vis navn på neste pasient prioritet Søk på navn Vis tilgjengelige tidspunkter per uke bekreftelse på epost Vis timehistorikk Søk på område påminnelse på SMS 23
Sorter funksjoner etter prioritet Pasient Tannlege Få undersøkt tennene Undersøke tenner Velg en tannlege Kontakt tannlegekontor Finn aktuelle tidspunkter Noter bestilling Ta i mot pasient tid Vis liste av tannleger Velg tannlege Vis tilgjengelige tidspunkter per dag Reserver time Vis navn på neste pasient prioritet Søk på område Vis tilgjengelige tidspunkter per uke påminnelse på SMS Søk på navn bekreftelse på epost Vis timehistorikk 23
Sorter funksjoner etter prioritet Pasient Tannlege Få undersøkt tennene Undersøke tenner prioritet Velg en tannlege Vis liste av tannleger Søk på område Kontakt tannlegekontor Velg tannlege Finn aktuelle tidspunkter Bygg opp tid brukskvalitet iterasjon for iterasjon Vis tilgjengelige tidspunkter per dag Vis tilgjengelige tidspunkter per uke Noter bestilling Reserver time påminnelse på SMS Ta i mot pasient Vis navn på neste pasient Søk på navn bekreftelse på epost Vis timehistorikk 23
Sorter funksjoner etter prioritet Pasient Tannlege Få undersøkt tennene Undersøke tenner Velg en tannlege Kontakt tannlegekontor Finn aktuelle tidspunkter Noter bestilling Ta i mot pasient tid Vis liste av tannleger Velg tannlege Vis tilgjengelige tidspunkter per dag Reserver time Vis navn på neste pasient prioritet Søk på område Vis tilgjengelige tidspunkter per uke påminnelse på SMS Søk på navn bekreftelse på epost Vis timehistorikk 23
Planlegg leveranser Pasient Tannlege Få undersøkt tennene Undersøke tenner Velg en tannlege Kontakt tannlegekontor Finn aktuelle tidspunkter Noter bestilling Ta i mot pasient tid Vis liste av tannleger Velg tannlege Vis tilgjengelige tidspunkter per dag Reserver time Vis navn på neste pasient prioritet Søk på område Vis tilgjengelige tidspunkter per uke påminnelse på SMS Søk på navn bekreftelse på epost Vis timehistorikk 24
Planlegg leveranser Pasient Tannlege Få undersøkt tennene Undersøke tenner Velg en tannlege Kontakt tannlegekontor Finn aktuelle tidspunkter Noter bestilling Ta i mot pasient tid prioritet Vis liste av tannleger Søk på område Velg tannlege Vis tilgjengelige tidspunkter per dag Første leveranse Vis tilgjengelige tidspunkter per uke Reserver time påminnelse på SMS Vis navn på neste pasient Søk på navn Andre leveranse bekreftelse på epost Vis timehistorikk 24
Mer info Jeff Patton http://agileproductdesign.com/ blog/dont_know_what_i_want.html blog/the_new_backlog.html presentations/user_story_mapping/ Bok kommer i februar. 25
Pasient Tannlegeassistent Tannlege User Story Mapping Få undersøkt tennene Ta imot timebestilling Undersøke tenner Velg en tannlege Kontakt tannlegekon Foreslå aktuelle Noter bestilling Ta i mot pasient tid 1. Hvem er involvert? Vis liste av tannleger Søk på navn Velg tannlege Vis tilgjengelige Vis tilgjengelige Reserver time bekreftelse Vis navn på neste Vis timehistorikk 2. Hva ønsker de å oppnå? Søk på område påminnelse 3. Hvilke arbeidsoppgaver utfører de? 4. Hvilke aktiviteter er arbeidsoppgavene en del av? 5. Hva kan vi gi dem av verktøy som vil gjøre arbeidet deres lettere? 26
Smidig konferansepåmelding Smidig konferansen har utviklet en web-applikasjon for å forenkle påmelding og betaling av konferansedeltakelse. Applikasjonen har som mål at det skal være enklest mulig for deltakerne og melde seg på og betale, og samtidig medføre minst mulig arbeid for arrangørene som gjør dette på frivillig basis. Per i dag har ikke applikasjonen funksjonalitet for å melde på grupper av deltakere som betales samlet. Mange organisasjoner ønsker og trenger dette, noe som medfører mye ekstraarbeid for arrangørene som i dag må gjøre dette manuelt. Neste sprint har som mål å tilby funksjonalitet for gruppepåmelding, og som utviklingsteam er dette deres oppgave. Bruk user story mapping for å lage en backlog med nødvendig funksjonalitet, slik at dere er klare til å spille planning poker. Involverte personas: Petter Avdelingsleder - Vil effektivt melde på 10 stk fra avdelingen sin - Vil betale samlet, enten via PayPal eller faktura - Trenger bokføringsbilag, enten kvittering eller faktura. Christian Arrangør - Vil mest mulig effektivt administrere påmeldinger til konferansen - Får i dag mange henvendelser om samlet påmelding og betaling fra organisasjoner på epost - Må registrere betaling enkeltvis for hver gruppedeltaker i tilfelle senere avmelding/kreditering - Trenger å ha oppsyn med betaling og gjøre manuell oppfølging i unntakstilfeller Hva Christian må gjøre i dag for gruppepåmeldig: 1. Skrive manuell påmelding, trykke betalt 2. Kommer til paypal, trykker back 3. Trykker betal en gang til og er innlogga 4. Endrer fakturainformasjon og legger inn adresse 5. Lager faktura i regnskapssystemet og sender den 6. Går gjenom gruppa og setter til er fakturert 7. Når betaling kommer, finne fram hvilke påmeldigner det gjelder, gå gjennom hver enkelt og sette betalt Ønsker f.eks. å ha en felles referanse (fakt. nummer) mellom regnskap og reg.system, slå opp fakturanummer og kunne registrere betaling på alle sammen samtidig. 27
Forslag til løsning Petter Christian Påmelding Fakturere Registrere betaling Purre Avklare hvem som deltar Registrere deltakere Betale deltakere Finne nye gruppepåmeldinger e faktura Finne nye betalte faktura tid Verifisere betaling Registrere deltakere som betalt Finne forfalte faktura e purring Vis liste av tannleger Registrere navn, epost, tlf, middag Betale med PayPal Søk på skal ha faktura e på epost e på epost Søk på navn Betale med faktura Søk på må følges opp e i konvolutt e i konvolutt Registrere som fakturert (integrasjon) 28
Notater på flip-over 29
Noen erfaringer med User Story Maps Christian Stensholt, Bouvet ASA
Bakgrunn Starta for to år siden Stort delprosjekt om energiavregning for tog Tok av i sommer Lage og estimere en produktkø Oppstart av to offentlige prosjekt Tilbudsarbeid
Positivt Enkelt å introdusere Lett forståelig for andre enn It-folk Skaper oversikt Funksjonalitet og avklaringsbehov blir veldig synlig Fremmer diskusjon Utdyper temaene Tvinger fram avklaringer Styrker forståelsen i teamet
Utfordringer Finne riktig abstraksjonivå Hva er aktivitet oppgaver brukerhistorier Ta med en fasilitator Styre diskusjonen Konsentrere seg om det viktigste Parkere diskusjoner
Konklusjoner Prøve og feile Kjør iterativt Flytt rundt på aktiviter og oppgaver