Verhalenhakker: verschil tussen versies
Naar navigatie springen
Naar zoeken springen
k (Bronnen toegevoegd.) |
|||
(5 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 8: | Regel 8: | ||
|wens=Maximale doorstroom van waardevolle items. | |wens=Maximale doorstroom van waardevolle items. | ||
|toelichting=Krachten: | |toelichting=Krachten: | ||
*Teveel variatie in grootte van {{p|gebruikersverhalen}} | *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 {{p|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. | *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 {{p|gebruikersverhalen}} vanuit deze perspectieven: | Splits {{p|gebruikersverhalen}} vanuit deze perspectieven: | ||
Regel 25: | Regel 28: | ||
*… | *… | ||
|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. | |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. | ||
|nieuw=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. | |nieuw=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 {{p|enkelstuks doorstroom}}. | ||
}} | }} | ||
==Splitsstrategieën== | ==Splitsstrategieën== | ||
{{auteur|Simon Roberts}} verzon de volgende negen splitsstrategieën. | |||
__NOTOC__ | |||
<gallery perrow="3"> | |||
Bestand:Split-workflow-step.png|[[#Werkstroompaden hakken|Werkstroompaden hakken]] | |||
Bestand:Split-business-rule.png|[[#Bedrijfsregelvariant|Bedrijfsregelvariant]] | |||
Bestand:Split-major-effort.png|[[#Grootste inspanning|Grootste inspanning]] | |||
Bestand:Split-simple-complex.png|[[#Eenvoudig complex|Eenvoudig complex]] | |||
Bestand:Split-data-variation.png|[[#Gegevensvarianten|Gegevensvarianten]] | |||
Bestand:Split-data-entry.png|[[#Gegevensinvoer|Gegevensinvoer]] | |||
Bestand:Split-defer-performance.png|[[#Prestatie later|Prestatie later]] | |||
Bestand:Split-operations.png|[[#Operationele splitsing|Operationele splitsing]] | |||
Bestand:Split-spike.png|[[#Spike|Spike]] | |||
</gallery> | |||
===Werkstroompaden hakken=== | |||
[[Bestand:Split-workflow-step.png]] | |||
*Ontdek verschillende werkstroompaden naar het doel van de gebruiker. | |||
*Hak pad voor pad uit in je product. | |||
===Bedrijfsregelvariant=== | |||
[[Bestand:Split-business-rule.png]] | |||
*Bedrijfsregels vormen vaak paden van functionaliteit. | |||
*Rafel ze uit elkaar en bouw ze een voor een. | |||
===Grootste inspanning=== | ===Grootste inspanning=== | ||
[[Bestand:Split-major-effort.png]] | [[Bestand:Split-major-effort.png]] | ||
*Bouw eerst ondersteuning voor de belangrijkste kredietkaart—VISA. De basis ligt er dan en het meeste werk is al gedaan. | *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. | *Voeg vervolgens ondersteuning voor andere kredietkaarten toe. | ||
=== | |||
[[Bestand:Split- | ===Eenvoudig complex=== | ||
* | [[Bestand: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=== | ===Gegevensvarianten=== | ||
Regel 47: | Regel 74: | ||
*…en nog één… | *…en nog één… | ||
*… | *… | ||
===Gegevensinvoer=== | |||
[[Bestand: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=== | ===Prestatie later=== | ||
[[Bestand:Split-defer-performance.png]] | [[Bestand:Split-defer-performance.png]] | ||
Regel 57: | Regel 90: | ||
*Bouw stap voor stap: ‘Sign Up’, ‘Edit’, ‘Cancel’, klaar. | *Bouw stap voor stap: ‘Sign Up’, ‘Edit’, ‘Cancel’, klaar. | ||
=== | ===Spike=== | ||
[[Bestand:Split- | [[Bestand:Split-spike.png]] | ||
* | *Geen idee hoeveel werk het is? Doe een kort experiment in een tijddoos. Leer ervan, plan, en | ||
* | *Implementeer. | ||
==Bronnen== | |||
*http://rslawrence.wpengine.com/wp-content/uploads/2012/01/Story-Splitting-Flowchart.pdf | |||
{{Bron | {{Bron | ||
|bron=Scaling Lean and Agile Development | |bron=Scaling Lean and Agile Development |
Huidige versie van 24 jul 2012 om 10:20
…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
Simon Roberts verzon de volgende negen splitsstrategieën.
Werkstroompaden hakken
- Ontdek verschillende werkstroompaden naar het doel van de gebruiker.
- Hak pad voor pad uit in je product.
Bedrijfsregelvariant
- Bedrijfsregels vormen vaak paden van functionaliteit.
- Rafel ze uit elkaar en bouw ze een voor een.
Grootste inspanning
- 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
- Maak eerst ondersteuning voor directe vluchten.
- Voeg vervolgens ondersteuning voor één tussenstop toe.
- Maak het vervolgens af voor een willekeurig aantal tussenstops.
Gegevensvarianten
- Vertil je niet om alle gegevensvarianten in één keer te bouwen. Bouw er één…
- …en nog één…
- …en nog één…
- …
Gegevensinvoer
- 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
- Bouw eerst de functionaliteit, verzamel terugkoppelingen totdat iedereen tevreden is.
- Optimaliseer dan pas.
Operationele splitsing
- ‘Manage Account’ is wel heel groot. Wat zijn de belangrijkste stappen?
- Bouw stap voor stap: ‘Sign Up’, ‘Edit’, ‘Cancel’, klaar.
Spike
- Geen idee hoeveel werk het is? Doe een kort experiment in een tijddoos. Leer ervan, plan, en
- Implementeer.
Bronnen