Het project dat maar niet van de grond wil komen

In de wereld van ICT is het een goed gebruik een project vooraf goed in kaart te brengen. Er moet duidelijkheid zijn over dingen als "Hoeveel tijd hebben we nodig om de klus te klaren", "Wat zijn de risico's van de operatie" en "Hoe staat het met de kosten versus het rendement". Om er maar enkele te noemen.

De tijd dat er een project werd uitgevoerd onder het mom "We hebben het nodig en we zijn er van overtuigd dat alles binnen budget en tijd gereed komt" ligt al zeker een jaar of zes, zeven achter ons. De complete loop van een project wordt nu in kaart gebracht. Van initiële business case naar eerste besprekingen, naar kostencalculatie, en vervolgens naar alle fasen van de uitvoering (als de uitgewerkte business case dit rechtvaardigt). En zo hoort het ook. U contracteert voor de bouw van uw serre thuis ook niet iemand die u wel aardig vindt en die zegt dat alles wel goed komt. U verwacht een gedegen plan en duidelijkheid over levertijd en kosten.

Ik trek deze vergelijking niet zomaar. Een bouwbedrijf versus een softwarehuis of IT afdeling. Lange tijd was de ICT branche omgeven met een atmosfeer van magie, moeilijke technologie en ondoorgrondelijke hardware. Gepaard gaande met magisch hoge tarieven.

Nu weet u wel beter. Een ICT bedrijf is niet meer of minder dan een ander gespecialiseerd bedrijf....zoals een bouwbedrijf. Van een bouwbedrijf wordt een dergelijke aanpak van projecten al vele decennia verwacht. Neem een project als de bouw van de Golden Gate bridge in San Francisco. Een behoorlijk project dacht ik zo. Vereist vakmanschap en inzicht. Maar wel gebouwd binnen de gestelde tijd en het gestelde budget.

Hoe zou een dergelijk project nu worden uitgevoerd ? Ik ben geen bouwer, architect of ontwerper van urban design. Om over het bouwen van een Golden Gate bridge maar te zwijgen. Zouden alle bakstenen, te graven gaten, kubieke meters te storten beton en benodigde klinknagels vooraf tot op de kleinste details zijn bepaald of geïnventariseerd ? Het aantal meters kabel ? De hoeveelheid arbeiders die deelnamen aan het project ? En dat ook nog eens volgens een model dat door de wol geverfd was ?

Ja inderdaad. En dat model bestond uit kennis, ervaring en vakmanschap.

Nu kijken we even naar een ICT project van enige omvang. Bijvoorbeeld het omzetten van een financieel/logistieke applicatie (of aantal applicaties) van een propriety omgeving naar het Windows platform. Gooi er ook maar meteen als voorwaarde tegenaan dat het eindresultaat nog vele jaren operationeel moet blijven en moet integreren met hedendaagse en continuiteit waarborgende technologie (hedendaags en continuiteit is vaak een gotspe gebleken). Microsoft .NET bijvoorbeeld. Om maar een willekeurige speler in deze markt te noemen.

De aanpak

Welnu, hoe te beginnen ? We hebben immers te maken met een black box waarin onvoorstelbaar ingewikkelde business rules zijn opgenomen die wel even moeten worden geïdentificeerd. Daarnaast moeten keuzes gemaakt worden voor de juiste ontwikkelomgeving, tooling en interfacing. Ik blijf met opzet oppervlakkig. We beginnen maar eens met een analyse van het systeem (of de systemen).

Ik ben het volmondig eens met de stelling "Analyse is bittere noodzaak". We analyseren ieder systeem afzonderlijk, brengen de raakvlakken tussen de systemen in beeld en maken statistieken met betrekking tot de complexiteit van alle applicatie onderdelen. We vervaardigen zels diagrammen die inzichtelijk maken welke tabellen door welke systeemonderdelen worden gelezen en bijgewerkt.

Geweldig. En zo ontstaat er op de muur van het projectbureau een collage van aan elkaar geplakte A4'tjes met alle systemen, batches en interactieve programma's. Indrukwekkend. 2 tot 4 vierkante meter blokjes en lijntjes waar men af en toe een quasi begrijpende blik op werpt. Tuurlijk, deze analyse kan zinvol zijn , maar is zowiezo onvolledig. Ik zie nog geen enkele business rule. En om heel eerlijk te zijn, die WIL ik niet eens zien. Ze zijn er en ze werken.

Maar we gaan door....Deze analyse wordt gebruikt als basis voor een stuk management informatie. Er worden kengetallen gefabriceerd, number of tables en platte bestanden, number of batches, number of programs, lines of code, number of branches enzovoort...Het houdt niet op.

Echter, we weten nu wel dat programma's x, y en z best wel ingewikkeld zijn. En programma's a, b en c vallen wel mee.

Maar, zei die programmeur dat drie maanden terug nu ook al niet ? Die man met dat baardje en die versleten trui ?

We vergeten even dit moment van inzicht en…..gaan door....

Welnu, laten we middels een intern onderzoek eens gaan uitpluizen wat er zoal aan functiepunten te bedenken is. Functiepunten kunnen worden geinventariseerd, en als basis dienen voor een inzicht in de omvang van het project. Dat is namelijk heel belangrijk (ben ik het wel mee eens). Want dit is in hoge mate bepalend voor de kosten van het totale project. Zeker als er sprake is van (re- of nieuw) design van de GUI of Web interface van een systeem.

Door het interviewen van gebruikers en managers komen we tot een inventarisatie van enkele honderden of wellicht duizenden functiepunten.

Dat is interessant. We weten nu bijvoorbeeld dat de benzinepomp op het terrein van de overslag direct is gekoppeld aan het grootboek van de verschillende vestigingen van het overslagbedrijf. Even tanken levert een journaalpost op die automatisch wordt doorgeboekt naar de financiële administratie van iedere vestiging, rekening houdend met soort brandstof, kenteken versus vestiging en dollarkoers.

Dat was toch dat bestandje XFUEL.DAT dat op File01//DayInfo/ledger werd opgepakt door die dagelijkse batch ? Dat zei die man met dat baardje ook.....6 maanden terug...

Tot zover analyse.

U begrijpt wat ik probeer duidelijk te maken. Overengineering is een verschijnsel dat zich regelmatig manifesteert in de wereld van ICT. In ieder geval dat deel van die wereld waarin ik actief ben. Begrijp me niet verkeerd. Analyse is absoluut noodzakelijk. Weet waar je aan begint, weet waar de voetangels en klemmen liggen. Weet donders goed wat de risico's zijn.

En zodra je dat weet, BEGIN dan gewoon. Maak gebruik van ervaring en kennis. Niet alleen van jezelf maar ook van anderen. Mensen die al jaren kennis van en ervaring met de systemen hebben. Luister naar de klant en de techneuten van deze klant, zij weten namelijk heel goed waar het om gaat. Controle en sturing van hun business, en die kennen zij beter dan ik. "Plan your work", maar vervolgens "Work your plan" !

Oh ja, en als er nu geen man met baardje is ? En geen kennis en ervaring ?

Dan komt dat project misschien nooit van de grond. Maar de rapportage zal indrukwekkend en zeer uitgebreid zijn. En garant staan voor een langdurige stroom van facturen. Een neverending story (maar wel een kassuccess).

Met vriendelijke groet, Danny Maijer.

PS

Ik heb tot dusverre altijd die man met dat baardje gevonden.....