Alternativ- och felflöden i ett användningsfall

Jag tycker om att definiera felflöden i ett användningsfall. Alla mallar jag sett för användningsfallsbeskrivningar har rubrikerna huvudflöde och alternativflöden (eller förlopp), att de också har rubriken felflöde (på engelska, exceptional flows) är inte lika vanligt, även om det förekommer.

Fördelen med felflöden är att det är finns en enkel och intuitiv uppdelning mellan möjligheter som systemet erbjuder och fel som inte får/ska inträffa. Att definiera ett flöde som det ena eller det andra ger tydliga signaler till utvecklarna om att vara på sin vakt när vi pratar felflöden. Dessa måste nämligen hanteras innan vi kan gå i produktion. Alternativflöden däremot måste vi inte alltid implementera innan produktionssättning eftersom systemet fungerar även utan dessa. Man kanske inte drar full nytta av systemet men det går i alla fall att använda. Det är också enkelt att arbeta på detta sätt med beställaren. Först frågar man vad man vill erbjuda användaren och sedan vad som inte får inträffa.

Exempel på alternativflöde: Rabatter till vip-kunder.
Ovanstående alternativflöde implementeras inte i den första releasen utan levereras senare. Dvs systemet kan i dagsläget inte erbjuda rabatter till vip-kunder.

Nackdelen med felflöden är att den till en början så intuitiva uppdelningen i fel och alternativ blir allt annat än logisk och konsekvent när man börjar skärskåda den. Är det t.ex. ett felflöde när produkten kunden ska köpa är tillfälligt slut? Eller när han/hon anger fel pin-kod? Risken är att man hamnar i en oändlig och teoretisk diskussion kring vad som är ett fel och vad som är ett alternativ.

Trots detta är mitt råd ändå att försöka tänka i termer av felflöden och alternativflöden, men resulterar det i många diskussioner och stor förvirring i projektgruppen. Sluta genast upp med det…

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *

Följande HTML-taggar och attribut är tillåtna: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>