Ja het speelt een rol, maar…

Waarschuwing: dit stuk gaat over statistiek. Maar als je allergie krijgt van sommetjes of wiskunde dan kun je dit stuk gewoon lezen. In de tekst staan geen getalletjes of formules.

Dit stuk schrijf ik in Zwitserland tussen de hoge bergen en diepe dalen. Zwitserland is een fantastisch mooi land dat vooral bekend staat om zijn vele wandelmogelijkheden. Momenteel heb ik uitzicht op wel twingtig prachtige bergen waarnaartoe mooie tochten te maken zjin. Bij het plannen van een tocht staat één vraag altijd centraal: hoe lang gaat deze wandeling duren. Bij gebrek aan goede beschrijvingen op kaarten en in boekjes zou ik dit graag willen uitrekenen. Hoe pak je zoiets aan?

De tijd die nodig is voor een wandeling is afhankelijk van een aantal factoren. Factoren zijn die dingen die de uitkomst bepalen. Voor eenvoudige berekeningen zijn het aantal factoren beperkt. Bijvoorbeeld: om de inhoud van een kubus te berekenen heb je de volgende factoren nodig: de hoogte, de lengte en de breedte. Met deze drie factoren kun je de inhoud van een kubus heel exact berekenen. Het is goed je te realiseren dat je niet alles in het leven kunt uitrekenen. De duur van een wandeling is daar een goed voorbeeld van. Hierbij spelen namelijk te veel factoren een rol.

Laten we de factoren voor onze wandeltocht eens benoemen. Een eerste factor die in het vlakke Nederlandse land te binnen schiet is de afstand. Des te meer kilometers, des te langer je er over doet. Als je in de bergen gaat lopen zijn er meer factoren die een rol spelen. Om er een paar te noemen: het te overwinnen hoogteverschil en het type pad (asfalt loopt sneller dan grote puinblokken). Er zijn nog meer factoren die de wandeltijd beïnvloeden: heb je ’s nachts lekker geslapen, hoe fit ben je, wat is het tijdstip van de dag, het weer (in de snikhete zon loop je minder rap een berg op). Je voelt waarschijnlijk wel aan dat des te meer factoren je toevoegt, des te nauwkeuriger de formule wordt.

Je kunt je voorstellen dat des te langer je nadenkt over mogelijke factoren, des te meer je er weet te bedenken. Zo zullen er altijd factoren zijn waar je nu nog niet aan hebt gedacht. Je formule zal daardoor nooit ‘af’ zijn. Je zult zien dat de berekening van de wandeltijd daardoor nooit precies uitkomt. Stel dat je met een formule uitrekent dat een wandeling drie uur een acht minuten duurt, dan zal je altijd zien dat je er iets korter of langer over doet. Bij en dergelijke berekening zit je bijna altijd fout.

De formule berekent dus niet, maar doet een voorspelling hoelang je er deze keer over doet. Het is een gooi in de goede richting. Pas als je de wandeling 100 keer maakt, dan is je gemiddelde tijd drie uur een acht minuten. Omdat de formule voorspelt in plaats van berekent is het eigenlijk geen formule, maar een model. Een model is een beeld van de werkelijkheid waarin bepaalde details, ten behoeve van de bruikbaarheid, zijn weggelaten.

Gelukkig is het niet erg dat het model voorspelt in plaats van berekent. De nauwkeurigheid van de voorspelling met een onvolledige model is waarschijnlijk al groot genoeg. En de nog ontbrekende factoren zullen niet de belangrijkste zijn. Met het aantal kilometers, het hoogteverschil en het type pad kom je negen van de tien keer al een heel eind. Sterker: Een pragmaticus in het Hollandse vlakke land zal met alleen de factor kilometers al ruim genoegen nemen!

Normaal gesproken probeer je het aantal factoren zelfs zo veel mogelijk te beperken. Des te minder factoren je nodig hebt om te voorspellen des te beter. Dat klinkt best logisch. Meer factoren zorgt er voor meer nauwkeurigheid, maar je moet ook meer informatie in je model stoppen: je model wordt ingewikkelder. Paradoxaal genoeg is een model met minder factoren vaak het meest bruikbaar, ondanks zijn lagere nauwkeurigheid. Als de factoren die we nu hebben (afstand, hoogteverschil en padtype) goede voorspellers zijn, dan hebben we naast deze drie geen extra factoren nodig.

Om te bepalen welke factoren je in een model opneemt en welke je weglaat kun je op de computer ingewikkelde berekingen maken. Je kunt ook de JBF-methode toepassen (Jan-boeren-fluitjes). Met gevoel voor het onderwerp kom je een heel eind. Zo zal de factor ‘het aantal stappen’ niet veel toevoegen als je ‘het aantal kilometers’ al gebruikt. Factoren kun je soms voor elkaar verwisselen. Allebei toevoegen heeft dan geen nu. Je mag kiezen welke het makkelijkst of het meest pragmatisch is. In dit geval het aantal kilometers.

Ook factoren met een heel lage voorspellende waarde kun je beter weglaten. Dat je ’s ochtends drie in plaats van vier boterhammen hebt gegeten zal best een factor zijn. Toch ga ik liever af op het aantal kilometers. Factoren die een formule niet sterk verbeteren hebben geen waarde. Is het aantal boterhammen een factor? Absoluut, maar de voorspellende waarde is dusdanig laag dat hij in praktische zin geen waarde heeft. Wat uiteraard niet wegneemt dat je goed moet eten voor je aan een fikse tocht begint. Maar dat is een andere discussie.

Advertisements

Make-or-buy model

De make-or-buy beslissing in softwareontwikkeling kent drie vormen. Allereerst is dit het zelf bouwen van het systeem. Hierbij heeft het bedrijf de volledige vrijheid om het systeem zo te bouwen, dat de bedrijfsprocessen optimaal ondersteund worden. Uiteraard moet het bedrijf de ontwikkelingskosten dan volledig zelf dragen. Deze kunnen fors oplopen. Desondanks is het maatwerk bouwen van systeem nog steeds vaak toegepaste mogelijkheid. Voornamelijk in niche markten, zoals overheidsinstellingen waar men met specifieke wetgeving te maken heeft.

Een tweede mogelijkheid is de inzet van een geïntegreerd systeem, zoals een Enterprise Resource Planning (ERP) systeem. Denk hierbij aan SAP, Baan of Exact. Belangrijk kenmerk van een geïntegreerd systeem is dat het een systeem is, dat ontwikkeld is voor de gemene deler van alle bedrijven in het marktpotentieel van de softwareleverancier. Dit houdt in dat de kans dat het ERP systeem zonder aanpassing ingezet kan worden bijna nihil is. Het zal altijd specifieke inrichting vragen (customizing) en regelmatig aanvullend maatwerk om, delen van, het ERP aanpassen aan de bedrijfsomstandigheden.

Het best of bread model gaat uit van een systeem dat is opgebouwd uit verschillende componenten, eventueel van verschillende leveranciers. Bij de keuze van de componenten wordt per functionaliteit bepaald welk component, van welke leverancier, het beste aansluit bij de wensen. Denk hierbij aan een systeem dat naast het verwerken van transactie de mogelijkheid moet bieden om gegevens te analyseren. Men zou dan kunnen kiezen voor software van Baan, aangevuld met componenten voor specialistische berekeningen en het pakket Crystal Reports voor de nodige analyses. Op deze manier wordt het systeem samengesteld uit bestaande componenten.

Het is wellicht overbodig om te vermelden dat hier een behoorlijke partij maatwerk voor gepleegd moet worden om de verschillende componenten op een juiste manier samen te laten werken. Wanneer alle componenten worden verkregen bij dezelfde leverancier dan is er sprake van een deels geïntegreerde oplossing, deels best of bread oplossing. Denk hierbij aan SAP die naast haar standaard modules ook componenten aanbiedt voor bijvoorbeeld customer relationship management (CRM).

In de loop van het afgelopen decennium is de keuze tussen maatwerk, geïntegreerd of best of bread verschoven. Het is de verwachting dat door middel van Application Service Providing een veelvoud van services aangeboden gaat worden. Hierdoor krijgt het best of bread model steeds meer potentie.

Management op de werkvloer

Deze tekst gaat over struiken en hoe je die het best kunt onderhouden: snoeien, sproeien en lief tegen praten. De struik is een metafoor. Het staat voor een bedrijf dat je net als een doodordinaire buxus wilt laten groeien. Denk even mee, en krimp tot een heel klein mannetje (of vrouwtje) van tien centimeter groot. Sta je buiten de struik? Of zit je in de struik op één van takken, dicht bij de stronk?

De positie die je inneemt bepaald wat je voor de struik kunt betekenen. Als je in de struik zit dan zie je met je eigen ogen wat er gebeurt. Je ziet dat de struik het naar zijn zin heeft, genoeg water heeft, of juist water te kort komt. Je kunt zien dat rupsje-nooit-genoeg via de takken naar de sappige blaadjes kruipt en daar een bedreiging vormt. Door te wonen en leven in de struik voel je met de struik mee, heb je een goed gevoel of de struik gezond is en kun je snel ad-hoc die ellendige rups een opdonder geven.

Maar wat nu als je de struik van buiten beschouwt? Dan kun je de struik in zijn geheel zien. Je kunt er om heen lopen. Het groen van de blaadjes beoordelen. Je kunt de struik met de andere buxussen, of wellicht met geheel andersoortige struiken, vergelijken. Je kunt ervaringen uitwisselen met andere mannetjes en vrouwtjes die ook buiten hun struik lopen. Je ziet dat jouw buxus een extra injectie water en voeding nodig heeft om de concurrentie met de andere struiken aan te gaan. Je ziet ook waar gesnoeid moet worden om de vorm te behouden.

De man in de struik kijkt vanuit de stronk, van binnen uit. De struik wordt gezond gehouden door korte ad-hoc acties en zal door voldoende onderhoud vanzelf groeien. Echter door gebrek aan referentiekader zal de groei langzaam en ongericht zijn. Bovendien kan een crisis alleen het hoofd worden geboden door extra hard werken. De man buiten de struik werkt planmatig vanuit overzicht en grote lijnen. Hij werkt door zijn struik te vergelijken met andere struiken en hulp in te roepen van derden. Hij mist alleen de voeling en het contact met het hart wat binnen in de buxus bonst.

Je kunt niet tegelijkertijd in de struik én buiten de struik staan. Dat is fysiek gewoon niet mogelijk, tenzij je jezelf in tweeën kunt splitsen. En dat terwijl beide zo hun krachten hebben. Als je een struik (of bedrijf) wilt laten groeien en je wilt gebruik maken van alle krachten die er zijn, dan is het letterlijk ren-je-rot: van binnen de struik naar buiten de struik, naar binnen, naar buiten, en zo voort. Wel goed voor de conditie!

Klaagzang op kamperen (met een tent)

Eerder schreef ik een klaagzang op hotels. Momenteel sta ik op een camping en ik voel de aandrang om ook hier een klaagzang over te schrijven. Al is de opzet wel anders. Van een hotel mag je verwachten dat zij alles voor je regelen: van ontbijt tot bed. Bij kamperen is dit iets anders: het is de bedoeling dat je zelf je hele hebben en houden meesleept. De camping is in principe alleen een grasveld waar je je tent neer kunt kwakken. C’est tout (kamperen is vooral in Frankrijk geliefd, maar dit terzijde).

Ik heb in jaren niet gekampeerd. Desondanks herinner ik mij die laatste keer als de dag van gisteren. We stonden in Zwitserland aan een prachtig meertje. Tot zover de positieve kant van het verhaal. Ik heb een kleine tent, zo’n tunneltje waar je al kruipend en sluipend je weg in moet vinden. Het luchtbed was niet fijn (ouderdom), dus slecht geslapen. Toen het ook nog begon te regenen, stroomde de emmer over en was het kampeerfestijn vroegtijdig voorbij. De resterende tijd brachten we heerlijk door in een van alle gemakken voorziene authentiek Zwitsers chalet.

Nu ik weer herinneringen ophaal, bedenk ik mij dat ik later toch nog eens kampeerde. In 2007 heb ik mij door een aantal ‘vrienden’ laten overhalen. Groepsdruk; zo zijn meer drama’s ontstaan. De camping lag hoog in de bergen, had geen warm water, laat staan douches. En uiteraard regende het. Met andere woorden: koud en nat zeikweer waar mijn normaal uitstekende humeur niet tegen kan. De volgende camping in die week had wel douches en warm water, maar ook overstromingen waardoor ik mijn luchtbed ergens onder andermans caravan heb moeten uitgraven.

De trend die het kampeergenot keer op keer verstoord is het slechte weer: kou en regen. Op zich kan een camping hier niet veel aan doen. Desondanks maakt deze factor dat ik eerder kies voor een ‘zimmer frei’ dan een tunneltent op een zompig grasveld. Momenteel is het lekker weer en is het kamperen goed uit te houden. Al begin ik mijn rug wel te voelen op het, nieuw aangeschafte, luchtbed. (NB: Tijdens het redigeren van dit stuk breekt de hemel open. De droge tent die morgen zo in de auto kon, is nu drijfnat. Merci.)

In een vlaag van naïef enthousiasme kocht ik ooit alle nodige kampeerspulletjes. Kamperen heeft zo één voordeel: de kosten. Zonder vergelijkend warenonderzoek stel ik dat een huisje anderhalf keer duurder is. Bij een huisje moet je daarnaast rekening houden met kosten voor een eindschoonmaak. Hierdoor valt de camping zeer gunstig uit. Zeker bij een kort verblijf. Het fenomeen kamperen is op zich waardeloos, maar wel lekker goedkoop. Alle waar naar zijn geld zullen we maar zeggen.

Sta op de schouders van giganten

Isaac Newton, de ‘uitvinder’ van zwaartekracht, schreef dat hij zijn ontdekking slechts kon doen omdat hij stond op de schouders van giganten. Newton bedoelde hiermee dat hij de inzichten die hij had, alleen kon hebben omdat andere hem voor waren gegaan. Newton was ontegenzeggelijk een slimmerik. Hij was zelfs zo slim dat hij begreep dat er nog meer slimmeriken rondliepen. Mensen zoals Descartes of bijvoorbeeld zijn rivaal Hooke. Newton gebruikte de inzichten van zijn voorgangers én concurrenten als basis voor zijn werk.

Newton was iemand die rondkeek, ideeën combineerde en daarmee aan de slag ging. Ik kan mij tegelijkertijd levendig voorstellen dat de man verschrikkelijk eigenwijs was. Desondanks omarmde hij de wijsheid van andere. En terecht. Door te staan op de schouders van giganten kun je meer bereiken dan door zelf het wiel uit te vinden. Andere zijn je voorgegaan, zij hebben hun ervaring opgeschreven en die kennis ligt vandaag voor iedereen voor het oprapen.

Opgeschreven kennis en ervaring van anderen vormt de basis van onze hedendaagse onderwijs en wetenschap. Maar wat kun je nou met een ervaring van een ander? In hoeverre is kennis waardevol voor jouw situatie? En wélke ervaringen van anderen zijn relevant? Dit zijn stuk voor stuk lastige vragen waar velen op vast lopen. Er zijn zoveel mensen die hun ervaring hebben opgeschreven, en over zo veel uiteenlopende onderwerpen. Soms schreef men vanuit een heel persoonlijke ervaring, soms vanuit empirisch wetenschappelijk onderzoek. De conclusie is dat niet alle opgeschreven kennis generaliseerbaar is naar jouw huidige bestaan.

Dit maakt het voor velen lastig om theoretische kennis tot zich te nemen. Theorie is vaak een ver-van-mijn-bed-show: mooi verhaal, maar in mijn situatie kan ik er niets mee. Of: ja hoor, daar geloof ik dus niets van, mijn ervaring is anders. Er is ook zoveel theorie; waar moet je beginnen? Vroeger had je één boek: de Bijbel. Die kon je bestuderen, dan wist je alles. Tegenwoordig heb je meer dan één mensenleven nodig om Wikipedia te lezen. De grootste problemen bij het opdoen van theoretische kennis zijn daarom deze twee vraag: waar begin ik en hoe zorg ik ervoor dat de leerervaring positief stimulerend is?

Dat een mens kan leren komt trouwens door de interessante eigenschap dat we niet alleen onze eigen ervaringen kunnen onthouden. De mens kan ook ervaringen van anderen onthouden en daar naar handelen: zie een anderen zijn vingers branden en ook jij blijft de volgende keer van die kaars af. Ervaringen van anderen worden echter minder sterk in ons systeem geïntegreerd. Het opnemen van theoretische kennis (geleerd van anderen bijvoorbeeld via het lezen van een boek) werkt veel sterker als je die kennis kunt koppelen aan eigen ervaring. Kennis die wordt opgedaan, maar niet in de praktijk wordt gebracht, komt minder sterk binnen en verliest bovendien snel zijn kracht en waarde.

Daarmee hebben we het derde probleem te pakken: hoe zorg je dat kennis beklijft? Het continu combineren van theorie en praktijk is daarvoor dus cruciaal. En daarmee is het enorm belangrijk om goede afwegingen te maken bij het opdoen van kennis: heb ik nu de tijd en motivatie om deze kennis op te doen én er in de praktijk mijn eigen ervaring aan te koppelen zodat de theorie effectief in mijn systeem wordt geïntegreerd. Theorie en praktijk opdoen kost veel tijd. Besteed die tijd wijs; kies onderwerpen die nu relevant zijn en bewaar andere onderwerpen voor later.

Het opdoen van nieuwe kennis is geen eenvoudig proces. Het kost geduld, volharding, doorzettingsvermogen en oefening. Maar naarmate je meer kennis en ervaring hebt opgedaan zul je makkelijker nieuwe theoretische kennis kunnen koppelen aan bestaande ervaringen en zal het integreren eenvoudiger worden. Ook leren kun je leren.

Scrum release notes

Iedere week werken software-teams hard om hun product te verbeteren. Ze maken bestaande functies makkelijker in het gebruik en voegen nieuwe functies toe. Of je software bouwt ten behoeve van een bepaald klant of voor heel veel klanten, feit is dat de software iedere week beter wordt. Dit is voor alle gebruikers goed nieuws. Ten eerste betekent meer functionaliteit meer waar voor je geld. Ten tweede, en zeker niet minder belangrijk, heeft de gebruiker een beter gevoel bij een product waar continu aan ontwikkeld wordt.

Release notes zijn een uitstekend middel om nieuwe ontwikkelingen te communiceren. Door stories expliciet te schrijven in communiceerbare release notes kom je een heel eind. Middels release notes kun je uitdrukken dat (en hoe) het product continu wordt verbeterd en uitgebreid – zowel grote als kleine verbeteringen.

Ik ben er van overtuigd dat het cruciaal is om gebruikers voortdurend en nauwkeurig op de hoogte te houden van nieuwe ontwikkelingen. Het blijkt soms lastig om expliciet te benoemen waar en hoe een product verbetert. Je kent de shampoo-flessen wel: “Nu, met verbeterde formule”. Wat voor shampoo geldt, geldt ook voor software. Expliciet is vaak beter. Na tien weken is het echter lastig te benoemen wat je in week één nou precies gedaan hebt.

De scrum-methode heeft als voordeel dat veranderingen in software gedocumenteerd zijn in stories. Story’s schrijven als release notes dwingt ook om van tevoren duidelijker te bedenken welke klantwaarde de story representeert. Zodat als de story geïmplementeerd is deze verbetering direct kan worden gecommuniceerd. Iets meer werk vooraf, maar een stuk minder werk achteraf.