Verhalenhakker

Uit Pareltaal
Versie door Martien (overleg | bijdragen) op 19 mei 2012 om 15:45 (Krachtenveld uitgebreid.)
Naar navigatie springen Naar zoeken springen



Houtblokhakker-trevor-harrison.jpg


…bouw van een complex systeem in een agile of scrum omgeving.

✣  ✣  ✣

Maximale doorstroom van waardevolle items.

Krachten:

  • Voortdurend opleveren van waardevolle zaken die voorzien in een behoefte van een ander levert voldoening op en geeft betekenis aan je werk.
  • Teveel variatie in grootte van gebruikersverhalen verstoort de doorstroom van werk. Grote brokken leiden tot verstoppingen en vertragingen en daarmee potentieel tot afval.
  • Het werkt het makkelijkst als alles ongeveer dezelfde grootte heeft.
  • Kleinere items zijn vaak beter verzorgd (completer, kernachtiger, consistenter, autonomer) en leiden daarmee tot minder onverwacht werk en verhogen zo voorspelbaarheid en duurzaam tempo.
  • Inschatten hoeveel inspanning een item kost om te maken is voor kleinere items preciezer, consistenter en met minder spreiding te doen.

Splits gebruikersverhalen vanuit deze perspectieven:

  • Scenario—een specifieke volgorde van stappen binnen een use case.
  • Use Case—de verschillende paden door dezelfde use case of gebruikersverhaal.
  • Rol—operator, beheerder, power user
  • Niet-functionele eisen—prestatie, schaalbaarheid, betrouwbaarheid, onderhoudbaarheid, …
  • Configuratie—verschillende configuraties, besturingssystemen, mobiele apparaten, technologieën.
  • Kanalen—internet, back office, winkel, GUI, commandoregel, …
  • Gegevenssoort—deelverzamelingen, elementen en formaten van gegevens (bijv. XML).
  • Type—soorten dingen zoals soorten transacties of handel.
  • Integratie—integratie met bestaande systemen.
  • CRUD—Create, Read, Update, Delete.
  • Stub—namaak implementatie van iets

Daarom:

Hak de gebruikersverhalen op tot vergelijkbare (niet per sé dezelfde) grootte, bijvoorbeeld alleen van complexiteit 3, 5 en 8. Splits alles wat groter op tot deze drie waardes. Doe je uiterste best altijd waarde voor de gebruiker te blijven creëren.

✣  ✣  ✣

Mocht je toch veel variatie in grootte blijven houden, overweeg dan om naar grootte uit te splitsen over teams, zodat elk team toch zaken van vergelijkbare grootte afhandelt. Streef ultiem naar enkelstuks doorstroom.


✣  ✣  ✣



Splitsstrategieën

Werkstroompaden hakken

Split-workflow-step.png

  • Ontdek verschillende werkstroompaden naar het doel van de gebruiker.
  • Hak pad voor pad uit in je product.

Bedrijfsregelvariant

Split-business-rule.png

  • Bedrijfsregels vormen vaak paden van functionaliteit.
  • Rafel ze uit elkaar en bouw ze een voor een.

Grootste inspanning

Split-major-effort.png

  • Bouw eerst ondersteuning voor de belangrijkste kredietkaart—VISA. De basis ligt er dan en het meeste werk is al gedaan.
  • Voeg vervolgens ondersteuning voor andere kredietkaarten toe.

Eenvoudig complex

Split-simple-complex.png

  • Maak eerst ondersteuning voor directe vluchten.
  • Voeg vervolgens ondersteuning voor één tussenstop toe.
  • Maak het vervolgens af voor een willekeurig aantal tussenstops.

Gegevensvarianten

Split-data-variation.png

  • Vertil je niet om alle gegevensvarianten in één keer te bouwen. Bouw er één…
  • …en nog één…
  • …en nog één…

Gegevensinvoer

Split-data-entry.png

  • Bouw eerst de simpele variant, die een beroep doet op de intelligentie van de gebruiker.
  • Verfijn in een volgende stap en met ingebouwde slimheid en gegevensvalidatie zodat de gebruiker uitsluitend juiste gegevens in kan voeren.

Prestatie later

Split-defer-performance.png

  • Bouw eerst de functionaliteit, verzamel terugkoppelingen totdat iedereen tevreden is.
  • Optimaliseer dan pas.

Operationele splitsing

Split-operations.png

  • ‘Manage Account’ is wel heel groot. Wat zijn de belangrijkste stappen?
  • Bouw stap voor stap: ‘Sign Up’, ‘Edit’, ‘Cancel’, klaar.

Spike

Split-spike.png

  • Geen idee hoeveel werk het is? Doe een kort experiment in een tijddoos. Leer ervan, plan, en
  • Implementeer.