Development

Software-ontwikkeling

Lean en Scrum: een Siamese tweeling?

27 augustus 2012

Veel organisaties zijn druk bezig om agile (in het bijzonder Scrum) te implementeren. Toch zijn er maar weinig organisaties die hun hele bedrijfsvoering agile inrichten. Door veel directies worden wel vaak organisatiebrede verbeterprogramma’s opgestart, vaak met behulp van de ‘Lean’-aanpak. De IT-manager is daarom niet te benijden: net bezig om op een agile-manier, iteratief, software te ontwikkelen, dan komt Lean daar ook nog eens bij. Wat is het verschil? Kunnen de twee aanpakken elkaar aanvullen?

Scrum is een raamwerk voor softwareontwikkeling dat via korte iteraties (sprints) van enkele weken steeds weer werkende software oplevert die telkens de hoogste toegevoegde waarde heeft. Scrum is een eenvoudig raamwerk bestaande uit drie rollen (productowner, Scrum-master en teamleden), vier meetings (sprintplanning, daily stand-up, sprintreview en sprintretrospective), en vier artefacten (werkend product, productbacklog, sprintbacklog en definition-of-done).

Lean-softwareontwikkeling bestaat uit zeven principes waarmee een organisatie haar proces en producten kan optimaliseren. Lean bestaat vooral uit principes en maakt niet concreet wat er precies wanneer moet gebeuren. Scrum daarentegen doet dat wel. Scrum is veel methodischer dan Lean: het legt een raamwerk neer hoe je als organisatie op een agile-manier software ontwikkelt.

Risico

Als we Lean en Scrum met elkaar vergelijken, dan valt al snel op dat Scrum gebaseerd is op veel van de Lean-principes. In het kader geven we een overzicht van de zeven principes voor Lean-softwareontwikkeling. Wat daarin vooral opvalt is dat Scrum weliswaar methodisch is en helpt bij het hoe, maar dat het waarom achter de Scrum-elementen niet of nauwelijks expliciet is gemaakt. Als er met Scrum wordt gewerkt dan worden wel veel Lean-principes afgedekt. Helaas is dat dan wel impliciet en voor veel mensen vaak onbewust.

Het grote risico is dan dat Scrum mechanistisch wordt toegepast. Men doet wat er staat, maar heeft geen idee waarom. In de praktijk gebeurt dat regelmatig. Er is zelfs een naam voor: ‘Zombie-Scrum’, teams die zonder na te denken een set van rituelen plichtmatig uitvoeren. Zonder na te denken waarom ze dat doen en wat ze er eigenlijk mee willen bereiken.

Kortom, het antwoord is dus niet Lean of Scrum, maar: beide. De één gaat namelijk perfect over het wat en waarom, terwijl de ander concreet maakt hoe. De projectie van Scrum op de Lean-principes (zie kader), laat precies zien waar de logische combinatie van Lean en Scrum te vinden is. Lean gaat over het waarom achter de onderdelen van Scrum. We mogen dan ook gerust stellen dat Scrum feitelijk een methodische implementatie is van Lean. Veel van de Lean-principes worden in Scrum afgedekt. Echter, het is belangrijk om elk van de zeven Lean-principes expliciet de aandacht te geven die ze verdienen. Een te sterke methodische blik heeft een verhoogd risico op zombiegedrag.

Hoe mapt Lean op Scrum?

LEAN       SCRUM
 
1. Elimineer verspilling

Alles wat niet direct bijdraagt tot klantwaarde is verspilling. Voorbeelden hiervan zijn: niet gebruikte functionaliteit, bugs, herhaalde kennisoverdracht, onnodig wachten en dergelijke. De kunst is om verspilling te herkennen. Een belangrijk hulpmiddel hiervoor is het maken van een waardestroommodel.

 
  • De productbacklog is gesorteerd op waarde en voorkomt dat tijd wordt besteed aan minder belangrijk werk.
  • Korte iteraties (sprints) zorgen voor een vast ritme en flow in het proces.
  • Zelfsturende crossfunctionele teams voorkomen het doorgeven van werk, wachttijden en onvolledige overdracht van kennis.
         
2. Versterk leereffecten

De beste manier om software te ontwikkelen is door het te benaderen als een continu leerproces. Leren lukt het best als er zo snel mogelijk feedback tot stand komt. Korte iteraties waarmee telkens een nieuwe werkende versie wordt geleverd, is een basisvoorwaarde voor feedback. Aannames kunnen dan snel worden getoetst.

 
  • Elke sprint wordt afgesloten met een review waarin stakeholders feedback geven op het product.
  • Elke sprint wordt afgesloten met een retrospective waarin gekeken wordt naar verbeterpunten.
  • Elke meeting wordt gedaan met het hele team om te leren en kennis vanuit verschillende disciplines te delen.
         
3. Beslis zo laat mogelijk

Hoe complexer een project is, hoe beter het is om keuzes uit te stellen en opties open te houden. De beslissing wordt immers beter als er meer informatie beschikbaar is. Iteratief opleveren helpt hierbij. Feedback maakt zaken namelijk duidelijker en helpt om betere keuzes te maken. Zaken die nog onduidelijk zijn kunnen later worden opgepakt wanneer ze duidelijker zijn.

 
  • Door te werken in sprints wordt precies genoeg tijd gestopt in de voorbereiding van komende sprints en wordt voorkomen dat er tijdrovende detailbeslissingen over werk in de toekomst worden genomen.
  • Elke sprint eindigt met een review van werkende software aan eindgebruikers waardoor voortschrijdend inzicht wordt meegenomen in komende sprints.
  • De productbacklog staat niet vast: alles kan er op en er ook weer af. Hierdoor worden beslissingen pas genomen als het echt moet.
         
4. Lever zo snel mogelijk

Hoe sneller waarde wordt geleverd, hoe sneller men naar de markt kan en hoe eerder er feedback komt om het product nog beter te maken. Daarnaast zorgt sneller leveren ervoor dat het veel makkelijker wordt om beslissingen uit te stellen. Bij langzame processen is het noodzakelijk om ver vooruit te plannen, veel eerder al keuzes te moeten maken, waardoor de flexibiliteit afneemt en het langer duurt om op verrassingen te reageren.

 
  • Korte iteraties (sprints) die telkens een werkende en geteste versie opleveren, vormen het kloppend hart van Scrum.
  • Een dagelijks ritme van waarde leveren en afstemming van het team in de daily stand-up, zorgt voor focus op snelle levering.
  • Het leveren van waarde voor de eindgebruiker staat centraal (user-stories).
         
5. Respecteer mensen

De mensen die het werk doen hebben meer dan wie ook zicht op de juistheid van de aanpak en de resultaten. Door een team zelf verantwoordelijk te maken voor de eigen processen en deze zelf te laten verbeteren, worden leerpunten eenvoudiger en sneller verwerkt. Beslissingsprocessen worden daardoor beter en sneller.

 
  • Mensen staan centraal: zelfsturende stabiele crossfunctionele teams.
  • Het team bepaalt hoeveel werk het aan kan via de sprintbacklog (pull).
  • Het team geeft zelf aan wat het betekent wanneer het ‘klaar’ is (defintion-of-done).
  • Het team is zelf verantwoordelijk voor de aanpak en procesverbeteringen.
         
6. Bouw kwaliteit in

Kwaliteit achteraf proberen in te brengen, bijvoorbeeld door aan het einde te testen, is zeer inefficiënt. Daarom moet het leveren van kwaliteit en borgen van kwaliteit centraal staan in alles wat het team doet. Van iedere afzonderlijke stap in het proces moet het resultaat al getest zijn. Alleen dan kan er snel worden geleverd. Ook hiermee wordt verspilling uit het systeem gehaald. Werk dat namelijk niet tot kwaliteit leidt, is verspilling.

 
  • Dagelijkse feedback op kwaliteit door continu testen en leveren van werkende software.
  • Continue feedback op kwaliteit door cycli van enkele weken (sprints).
  • Zelfsturende teams van professionals die zelf verantwoordelijk zijn voor het eindresultaat en directe controle hebben op de kwaliteit van het werk.
         
7. Houd zicht op het geheel

Het grote risico van complex werk is dat het zodanig wordt opgedeeld in losse delen dat die, ieder voor zich, prima te overzien zijn maar het zicht op het geheel vervaagt. Daarom moet er in alles wat er gebeurt altijd een compleet kader zijn waarbinnen het voor iedereen volstrekt helder is hoe de onderdelen bijdragen aan het totaal.

 
  • Het eindresultaat (werkende software) staat in alles centraal.
  • De backlog is langer dan een sprint, het team weet daardoor wat de stip op de horizon is.
  • Eén crossfunctioneel team dat gezamenlijk het eindresultaat realiseert. Geen losse disciplines maar één gezamenlijk beeld en eindresultaat.
 
Lees het hele artikel
Je kunt dit artikel lezen nadat je bent ingelogd. Ben je nieuw bij AG Connect, registreer je dan gratis!

Inloggen

Registreren

  • Direct toegang tot AGConnect.nl
  • Dagelijks een AGConnect nieuwsbrief
  • 30 dagen onbeperkte toegang tot AGConnect.nl

Ben je abonnee, maar heb je nog geen account? Laat de klantenservice je terugbellen!