Category Archives: Projecten

Het belang van een proeflapje

In een vorige blogpost wees ik op het belang van het omgaan met risico’s. Een hele begrijpelijke reactie vond ik: “Boris, hoe ga ik dan om met risico’s in de technologie?”.


Risico  

Stel, je hebt een technisch risico geïdentificeerd in een project. Laten we als uitgangspunt nemen dat je in het project een combinatie hebt van vertrouwde technologie en een technologie die je nog niet goed kent. Hoe ga je dan om met het laatste risico? Een belangrijke techniek die je kunt gebruiken is het proeflapje!

Proeflapje

Met een proeflapje weet je hoeveel wol
je nodig hebt.Foto van Arne Heggestad, ga naar foto 

Proeflapjes maken doe je zo 
Voor mensen die veel breien is een proeflapje een bekend begrip, maar voor de meeste mensen zal een uitleg op zijn plaats zijn. In het breipatroon staat aangegeven hoeveel pennen en steken je moet gebruiken om bijvoorbeeld een wollen trui met een bepaalde maat te maken – in mijn geval zou dat al snel lengtemaat XXL zijn. Maar de één maakt net wat lossere steken bij het breien dan de ander. En wol is een natuurlijk materiaal, dus de elasticiteit verschilt wel eens. Het aantal pennen en steken in een patroon is een gemiddelde. Daarom maak je eerst een proeflapje, om uit te proberen hoe je het precies moet doen. Als je weet hoe het moet, haal je het proeflapje gewoon weer uit. De wol kan dan worden hergebruikt.

Teveel geitenwollen sokken?  
Misschien spreekt deze analogie je niet zo aan. Dan is hier een militaire versie, want in gevechtssituaties doen ze net zoiets: daar sturen ze een verkenner voor de troepen uit. Bij Arendsoog was dat Witte Veder, in de Golfoorlog gebruikte Stormin’ Norman SEAL’s met Hummers. De verkenner bepaalt de beste route, geeft schattingen over de reistijd en geeft aan of er hindernissen moeten worden overwonnen. En dan kunnen de troepen aan de slag.

Het throw-away prototype
Ook in IT-projecten is het mogelijk op deze manier om te gaan met technische risico’s. Het proeflapje heet daar dan een throw-away prototype. Laat een ontwikkelaar (de verkenner) een versie maken die alleen maar aantoont hoe je met de technologie werkt. Hierbij worden de functies beperkt tot het absolute minimum. De code hoeft voor deze keer niet netjes of onderhoudbaar in elkaar te zitten en er zit geen foutafhandeling en logging in.

Verkenner3

Kies een goede verkenner

Foto van Cpl. James L.
Yarboro, U.S. Marine Corps 

 

 

 

Kies de goede verkenner
Uiteraard kies je een goede ontwikkelaar voor deze klus. De geschiedenis zit vol met voorbeelden van de rampzalige gevolgen van ontbrekende of verkeerde informatie van verkenners. Zo verloren de Romeinen in de slag om het Teutoberger Woud drie complete legioenen mede door ontbreken van verkenners en verloor Napoleon de slag bij Waterloo mede door verkeerde informatie van de verkenners. Xerxes en zijn Perzen daarentegen wonnen juist de slag bij Thermopylae van de Spartanen door goede informatie van verkenners.

Gooi het throw-away prototype weg
Als het prototype klaar is, gebruik je de inzichten die het maken heeft opgeleverd. De inzichten van het prototype worden verwerkt in het ontwerp en urenschattingen, het team kan nu worden opgeschaald en er kan worden begonnen met het bouwen van de echte versie in een schone omgeving. Het throw-away prototype zelf wordt na afloop weggegooid, zoals de naam al aangeeft. De verleiding is misschien groot om door te willen bouwen op het prototype, maar trap niet in die valkuil. Het prototype is niet geschikt als fundament; het was een bewuste keus om het prototype quick & dirty te realiseren. In je urenschatting ga je er vanuit dat je geen hergebruik kunt doen van het throw-away prototype in het echte product.

Pijpinspecties
Een mooi praktijkvoorbeeld van de inzet van een throw-away prototype komt van de ontwikkeling van EngeMOVI’s nieuwe device voor pijplijninspectie, of Pipe Inspection Gauge (PIG). Een pijplijninspectie-device wordt in een olie- of gaspijplijn ingebracht om de staat van de leiding te inspecteren. Bij de ontwikkeling identificeerden de ontwerpers het geolocatie algoritme als hun grootste technische risico. Hun throw-away prototype bestond uit een basale versie van meetapparatuur, bevestigd met tie-wrap op een fiets. Dit prototype stelde hen in staat hun algoritme te testen en te verfijnen, mede omdat een fiets bij benadering de gewenste snelheid heeft. Na de tests werd het prototype weer gedemonteerd.

Risicomitigatie
Als je een technisch risico hebt geïdentificeerd, dan is het gebruik van een throw-away prototype een goede manier om dit technisch risico aan te pakken of op zijn minst de impact te beperken (het risico te mitigeren). Een throw-away prototype kun je in iedere ontwikkelmethode gebruiken (waterval, scrum, jbf etc).  Dus: bepaal het risico van het project en pak het aan! Maak een proeflapje of stuur een kundige verkenner vooruit. Met deze onmisbare informatie kun jij de (wed)strijd winnen: het project op tijd en binnen budget succesvol afronden.

LinkedInFacebookTwitterDeel deze blogpost
Posted in Developer, Projecten | Tags: , , , , | Plaats een reactie

Let op de piano van het project!

Laatst werd ik betrokken bij een project dat me deed denken aan mijn laatste verhuizing. Het projectteam was in moeilijkheden geraakt. Het project was bijna af, maar liep helemaal vast op het allerlaatste onderdeel. Zonder dit onderdeel zou de opdrachtgever beslist niet akkoord gaan met oplevering van het project. Of ik even kon helpen…

Er moest een hoogwerker worden besteld om de piano te verhuizen.

Er moest een hoogwerker worden besteld
om de piano te verhuizen.

Te zwaar om te dragen
De situatie leek op wat tijdens mijn verhuizing gebeurde: de verhuizers keken de hele dag telkens even naar onze 19e-eeuwse Bechstein-piano. Ze voelden soms even hoe zwaar onze piano was en gingen dan vooral snel verder met taken in hun comfortzone. Zoals het verhuizen van al die dozen met boeken. Aan het eind van de dag was de hele flat leeg en bezemschoon, maar de piano stond nog op zijn plek. Eindelijk kwam het hoge woord er uit. De ene piano is de andere niet en onze piano was met zijn degelijke gietijzeren binnenwerk te zwaar om de smalle trappen af te dragen – ze dachten dat hij wel 450 kilo zou zijn. Kortom, er moest een hoogwerker worden besteld. Natuurlijk gaf hun baas niet meteen zijn goedkeuring voor die extra kosten en daarna moesten we nog een hele tijd wachten voor de hoogwerker er was. Het werd dus een latertje.

Vooruit schuiven
Dit is hoe het soms ook gaat met projecten. De teamleden gaan allemaal enthousiast aan de slag met het soort problemen dat ze kennen en schuiven het onbekende nog even voor zich uit. Aan het einde van het project blijkt het onbekende tegen te vallen en mag de baas opdraaien voor de extra doorlooptijd en kosten.

Extra hulp en routineklussen
In het voorbeeld van de piano wordt goed duidelijk dat het slimmer is om de meest risicovolle delen van een project zo vroeg mogelijk aan te pakken. Als zo’n deel langer duurt dan verwacht of als er moet worden gewacht op extra hulp, dan kan de wachttijd immers worden gevuld met routineklussen die toch gedaan moeten worden. Zo lijdt de projectduur niet onder de moeilijkere projectonderdelen. In het ergste geval blijkt dat het risicovolle deel helemaal niet uit te voeren is, maar dat wordt dan dus al duidelijk voor er veel geld is uitgegeven aan de routineklussen.

Bij RUP pakt het ontwikkelteam al vroeg in het project de meest riskante onderdelen aan.

Bij RUP pakt het ontwikkelteam al vroeg in het
project de meest riskante onderdelen aan.

Risico’s vroeg aanpakken
Sommige ontwikkelmethodes hebben deze gedachte hoog in het vaandel, zoals Rational Unified Process (RUP). Bij RUP pakt het ontwikkelteam al vroeg in het project de meest riskante onderdelen aan. RUP is een ‘incrementele ontwikkelmethode’, waarbij een systeem in een aantal etappes (increments) wordt gemaakt. Incrementeel ontwikkelen heeft een aantal voordelen ten opzichte van de traditionele ‘waterval’: er is meer ruimte voor veranderende eisen en wensen, er is meer ruimte voor voortschrijdend inzicht, en er worden vaste piketpaaltjes geslagen richting eindacceptatie. Bij RUP worden de risico’s bovendien slimmer gemanaged.

Let op de piano
En het project waar ik moest helpen? Het had anders kunnen lopen, maar in dit geval zat er helaas niets anders op dan de opdrachtgever te vertellen dat het project uitliep. Gelukkig kon de opdrachtgever hierop wachten en kon het team leren van deze veelgemaakte fout. Zij letten voortaan op de piano!

Posted in Achter de schermen, Projecten | Tags: , , , , , , , | Plaats een reactie