In een vorige bijdrage is gepleit voor het opsplitsen van het management van ICT-projecten in afzonderlijke projecten, te weten: analyse, ontwikkeling en implementatie. De doelstellingen, deelnemers en werkwijzen, en daarmee de risico’s en doorlooptijden van deze activiteiten, kunnen namelijk nogal uiteenlopen. In dat geval is het beter ze onder te brengen in afzonderlijke projecten. Zelfs als een kort-cyclische iteratieve methodiek wordt gevolgd. Onderbrenging in afzonderlijke projecten sluit iteratie natuurlijk niet uit.
De keuze voor een iteratieve of een meer sequentiële aanpak is dus geen principekwestie, en zou dat ook niet moeten zijn. Zuivere vormen bestaan alleen in theorie maar niet in de praktijk, het is meer een kwestie van gradatie. Het beeld van waterval als een strikt sequentiële aanpak zonder terugkoppeling is een karikatuur, een strikt iteratieve aanpak is dat ook. Het gaat erom wat nodig is.
In geval van analyse gaat het in eerste instantie om de vertaling van wensen in eisen. Dit is een bedrijfsmatige stap waarbij de wat- en waaromvragen centraal staan. De vertaling van eisen in specificaties, het vervolg, staat meer in het teken van ontwerp. Dit vervolg is meer technisch waarbij de hoe- en waarmee-vragen de foci zijn. De stap van analyse naar ontwerp is groot. Een veel voorkomende valkuil is te snel de details in te duiken. Dit is met name bij kort-cyclische aanpakken een risico.
Analyse- en ontwerp-activiteiten lopen vaak door elkaar. Veel van wat onder analyse wordt geschaard is feitelijk verkapt wensdenken d.w.z. het denken in oplossingen. Veel business cases lijken soms doelredeneringen (vaak financieel gemaakt om ook twijfelaars, c.q. de CFO, over de streep te trekken).
Een ander onderscheid dat vaak niet, of onvoldoende, wordt gemaakt is tussen ontwerp en constructie. De beschrijving van een object (grafisch en / of linguïstisch) is niet hetzelfde als de constructie m.a.w. ook dit zijn heel verschillende activiteiten (en vereisen verschillende vaardigheden); het werk van een ontwerper / architect is heel anders dan het werk van een constructeur / bouwvakker.
Het onderscheid tussen analyse, ontwerp en constructie wordt, zoals hierboven aangegeven, soms helemaal niet gemaakt. Gebruikerseisen worden dan direct omgezet / vertaald in (software)code. Hierdoor kunnen veel misverstanden ontstaan. Het vertalen van wensen in code is bovendien erg duur, het is immers veel makkelijker (en veel goedkoper) een stroomdiagram te veranderen of aan te passen dan software.
De vertaling van wensen in code is geen eenrichtingsverkeer De praktijk is dat er ook vanuit de code naar de wensen wordt gekeken. Het kostenplaatje is hierbij natuurlijk van belang (wat is nodig en wat is “”nice to have” en wie bepaalt / bepalen dat?).
Helaas is informatieanalyse in de bedrijfspraktijk niet of nauwelijks onderzocht. We moeten het doen met vuistregels gebaseerd op extrapolaties uit de wetenschappelijke literatuur en veel schade en schande (lessons learned). Veel “lessons learned” worden niet gepubliceerd. Zgn. “benchmarks” en “best practices” kunnen helpen. Maar welke richtlijnen of leidraden ook worden gekozen, de vraag blijft natuurlijk wat in een bepaald geval relevant is. In deze bijdrage kunnen alleen enkele algemene overwegingen en valkuilen worden genoemd.
Bedrijfsfocus is het belangrijkst, met name de manier waarop activiteiten zijn georganiseerd en de manier waarop het toezicht op hun uitvoering is geregeld. Hoe dan ook: het aanbrengen van focus en afbakening is belangrijk. Het is lastig om te blijven denken in bedrijfstermen en niet alleen rekening te houden met nu en straks maar ook met binnen en buiten. Ook als het gaat om lokale veranderingen kan het nuttig zijn vanuit een bredere (bedrijfs)focus te kijken. Dit geeft namelijk niet alleen perspectief maar kan ook helpen lokale aanpassingen in de juiste context te blijven zien.
Vaak wordt gezocht naar een quick fix, ook, of met name, door externe consultants. Die zijn soms geneigd te denken vanuit de gekozen oplossing en minder of niet vanuit het bedrijf. Doorgaans hebben externen (consultants, ontwikkelaars) minder begrip van, en belang bij, zaken die relevant zijn voor het bedrijf. Bovendien kunnen zaken die vanzelfsprekend worden gevonden, door externen maar ook door bedrijfsmensen, onbenoemd blijven. Dit kan aanleiding geven tot fouten dan wel misverstanden.
Een populaire werkwijze bij het specificeren van eisen is het iteratief doorlopen van vinklijsten (checklists). Dit lijkt voor de hand liggend en is makkelijk maar het kan een valkuil zijn. Het risico is namelijk dat, door het klakkeloos gebruiken van vinklijsten, het denken wordt uitgeschakeld. Dit kan een gevaar zijn, net als het blindelings volgen van benchmarks en best practices. Vinklijsten, benchmarks en best practices kunnen bruikbaar zijn als inspiratiebron of als vergelijkingsmateriaal maar niet als sjabloon. Dit is ook het gevaar van het kritiekloos volgen van methodieken en IT-modellen. Het zijn richtlijnen en geen voorschriften.
Het is niet altijd verstandig te kapitaliseren op de mening van één persoon of de overtuiging van een kleine groep. Bedrijfsbrede consensus is meestal niet haalbaar. Toch is het raadzaam enige “business alignment” na te streven. Dit geeft niet alleen meer draagvlak maar het is ook voor het management van het project belangrijk.
Een veel gemaakte fout is te veel nadruk te leggen op geld en tijd. Geld en tijd zijn weliswaar belangrijke randvoorwaarden maar zijn nooit het doel. Toch wordt het succes en falen van (project)activiteiten vaak eenzijdig uitgedrukt in de beschikbaar gestelde project-tijd en -geld. Belangrijk is echter om ook het eindpunt, d.w.z. het bedrijfsbelang, scherp te hebben. Dit is minder eenvoudig dan het lijkt.
Een manier om doelen concreter te maken is om ze SMART te maken. SMART is een afkorting die staat voor Specifiek, Meetbaar, Attractief (of Acceptabel), Realistisch en Tijdgebonden. In de context van een bedrijf zullen doelen meestal producten (goederen en / of diensten) zijn. Ook kan het helpen een levenscylusbenadering te volgen. Een dergelijke benadering is ook, of misschien wel met name, nuttig als een iteratieve benadering wordt gevolgd (zodat, ook in geval van veel iteraties, de weg naar het doel zichtbaar blijft).
Informatieanalyse wordt bij voorkeur vanuit verschillende perspectieven uitgevoerd, bijvoorbeeld mensen, processen en gegevens. Eigenlijk is dit een soort triangulatie, d.w.z. een gebruik van meerdere perspectieven.
Mensen. Voor wat betreft organisatie worden in de literatuur weliswaar een aantal basisstructuren onderscheiden maar die zijn nogal beperkt en in de praktijk heb je hier niet veel aan. Toch is het organogram of “de hark” bij het begin van informatieanalyse een nuttig startpunt. Het geeft in ieder geval een indruk van hoe de taken, verantwoordelijkheden en bevoegdheden globaal zijn verdeeld. Let wel: dit zijn de formele lijnen, informeel kan het heel anders gaan.
Het denken in “stakeholders” of belanghebbenden is ook een handig startpunt, met name door niet alleen naar de interne stakeholders maar ook naar de (relaties met) externe stakeholders te kijken. Zo’n netwerk-benadering is soms vruchtbaarder. Ook dynamiek is belangrijk. Hierbij wordt niet alleen gekeken naar het bestaande netwerk maar ook naar het effect dat veranderingen kunnen hebben op stakeholders en hun onderlinge relaties.
Het in kaart brengen van organisatiestructuren en stakeholders kan ook van pas komen bij het verdelen van zgn. autorisaties.
Processen. Populaire startpunten bij het denken in termen van processen zijn waardeketens en bedrijfsmodellen.
In geval van waardeketens is de vraag wat er moet gebeuren om van input (ingrediënten) naar output (doelen) te komen. Ook in dit geval is iteratie belangrijk. In geval van ketens wordt vaak gesproken over “forward chaining” en “backward chaining”.
Bedrijfsmodellen zijn ook een populair vertrekpunt bij het in kaart brengen van bedrijfsprocessen. Ook in dit geval is het perspectief nog tamelijk globaal.
Bij het meer gedetailleerd modelleren van processen wordt vaak een onderscheid gemaakt in primaire, secundaire en tertiaire processen. Primaire processen zijn dan de processen die nodig zijn om inputs om te zetten in outputs en secundaire processen zijn die processen die nodig zijn om de primaire processen uit te kunnen voeren. Deze (bedrijfsvoerings)processen worden vaak aangeduid met de afkortingen PIOFACH of COPAFIJTH. Primaire processen zijn vaak het meest onderscheidend en worden vaak gemodelleerd door eerst de zgn. “happy flow” in kaart te brengen en daarna de uitzonderingen (exceptions).
Ook in geval van processen is iteratie / validatie belangrijk. Dit gebeurt vaak in de vorm van zgn. “talk throughs” of “walk throughs”. Ook wordt vaak gebruik gemaakt van meer geformaliseerde notaties zoals “use cases” (UML), BPMN of EPC. Het zal duidelijk zijn dat het werken met user stories, use cases e.d. op een veel hoger detailniveau plaatsvindt.
Gegevens. Een andere insteek is om niet de processen maar de gegevens als vertrekpunt te gebruiken. Een dergelijke insteek kan beginnen met het definiëren van veel gebruikte termen. Dit lijkt nogal triviaal maar het is soms verrassend te ervaren hoe, binnen één en hetzelfde bedrijf, veel gebruikte begrippen (zoals bijvoorbeeld “klant”) heel verschillend opgevat blijken te worden. Ook kunnen hierbij afkortingen in kaart worden gebracht.
Termen verwijzen vaak naar objecten en eigenschappen. Objecten kunnen worden gemodelleerd in de vorm van tabellen waarbij de kolommen de eigenschappen voorstellen en de rijen de afzonderlijke items. De relaties tussen de tabellen kunnen worden gemodelleerd in de vorm van diagrammen en zgn. bedrijfsregels. Dergelijke formaliseringen maken analyse en kwaliteitscontrole mogelijk. M.b.t. gegevensmodellen wordt vaak een onderscheid gemaakt in conceptuele, logische en fysische modellen (in toenemende mate van concreetheid). In het laatste geval spreekt men ook wel van een gegevensbank of “database”.
Gegevensmodellen vormen o.a. ook het kader voor de migratie van data en voor het ontwerpen van zgn. “dashboards”, weergaven van geschoonde en gecondenseerde gegevens die door managers kunnen worden gebruikt om processen te beheersen c.q. het bedrijf te besturen.
Mensen, processen en gegevens. De uitwerking van de relaties tussen mensen, processen en gegevens is afhankelijk van de benodigde granulariteit. Dit betekent niet dat hun analyse c.q. modellering altijd op hetzelfde detailniveau moeten zijn. Het is heel goed mogelijk om aspecten ten dele te detailleren dan wel een aspect te detailleren en andere minder. Dit zal afhankelijk zijn van de relevantie.
Het uitwerken van de relaties en het vasthouden van de samenhang is niet alleen belangrijk bij het modelleren van de bedrijfsvoering t.b.v. het managen van ICT-projecten maar kan ook helpen andere bedrijfskwesties te verhelderen, Het kan ook de re-organisatie dan wel de (her- of om-)scholing van medewerkers ondersteunen.
Het is belangrijk te waken voor te lang doorgaan met analyseren. Er wordt vaak gewaarschuwd voor “analysis paralysis”: het eindeloos doorgaan met analyseren c.q. het uitstellen van implementatie. Door overzicht te houden, te itereren en de relevantie in het oog te houden kan worden voorkomen dat dit gebeurt.
Meestal zullen niet alle details bij de start van de ontwikkeling bekend zijn. Niet alles is te voorzien en voortschrijdend inzicht en nieuwe ontwikkelingen maken herijkingen onontkoombaar. Het is dan wel zaak te waken voor “target drift” en “scope creep”. Het kan helpen te beseffen dat iedere oplossing eigenlijk een tussenoplossing is. De vraag blijft steeds: wat is relevant.
Duidelijk moge zijn dat analyse- en ontwerp-activiteiten een eigen dynamiek hebben die onderbrenging in een afzonderlijk project rechtvaardigt. Ontwikkeling vergt een heel andere aanpak.