Zakelijke software stond ooit synoniem voor maatwerk. Software speciaal ontworpen en gebouwd om aan zoveel mogelijk eisen en wensen te voldoen, om op die manier de gehele onderneming te ondersteunen met de inzet van ict. In de afgelopen vijftien jaar is het beeld over eigen applicatieontwikkeling echter veranderd, voornamelijk als gevolg van de groeiende beschikbaarheid van kant-en-klare toepassingen oftewel pakketsoftware.
De aantrekkingskracht van deze softwarepakketten is moeilijk te negeren. Door de impact van de recessie op de budgetten dienen zoveel mogelijk kosten bespaard te worden en het aanschaffen van pakketsoftware lijkt dan de beste optie. Zeker voor onderbemande ict-afdelingen zijn deze kant-en-klare software-oplossingen schijnbaar de perfecte keuze door de snelle en eenvoudige implementatiemogelijkheden die ze bieden. Deze voordelen zien er misschien op papier goed uit, in de praktijk blijken deze oplossingen minder effectief dan verwacht.
De waarheid over softwarepakketten
De voordelen van softwarepakketten worden vaak beschreven als 'ingebouwde best practices', die vervolgens moet leiden tot risicoreductie bij de implementatie van de toepassing, verlaging van de totale kosten en snellere en eenvoudigere implementaties.
Al deze voordelen zouden ervoor moeten zorgen dat een ict-team de implementatie van het geheel gemakkelijk en zonder al te veel problemen kan uitvoeren. Geleverd als een gestandaardiseerde en geteste oplossing, beweren de makers van pakketsoftware dat met slechts enkele kleine aanpassingen de oplossing toegepast kan worden binnen de meeste bedrijfssystemen.
Het lijkt er echter op dat de voorliefde van cio's voor deze softwarepakketten voorbij is. Binnen de ict zijn deze verpakte 'best practices' niet per definitie 'one-size-fits-all'. Wat werkt voor de ene ict-omgeving kan voor de andere leiden tot een totale mislukking.
Zo vertelde laatst de coo van een energiebedrijf mij hoe moe hij was van de 'gijzeling' door zijn erp-leverancier. Naar eigen zeggen heeft zijn bedrijf door standaardpakketten te gebruiken de afgelopen veertien jaar voortdurend moeten worstelen om aan de bedrijfsbehoeften te voldoen. Bovendien ondervond hij ook moeilijkheden bij het upgraden en uitvoeren van RFC's, hetgeen vaak eindigde met problemen in hun volledige ict-omgeving.
Dit is waar pakketsoftware tekortschiet. Waar het voor de ene onderneming grotendeels zou kunnen werken, zal voor de andere meer nodig zijn dan alleen het fine tunen. Het resultaat van deze grote hoeveelheden aanpassingen en pakketimplementaties resulteert in een zeer broos en duurder wordend ict-landschap. Denk daarbij aan moeilijk te realiseren upgrades en het onvermogen om snel te reageren op de voortdurende en steeds sneller veranderende eisen en wensen.
Maatwerk software-ontwikkeling, nog niet dood
Als het gaat om 'time-to-market' is er nog steeds een algemene overtuiging dat pakketoplossingen, ondanks de impliciete problemen die eraan inherent zijn, bestaansrecht hebben ten opzichte van maatwerk. Het feit dat de gebruikers vooraf meestal niet kunnen definiëren wat ze precies nodig hebben, vergroot de risico's bij de keuze voor maatwerk. Zo kan het ontwikkelen van software op maat een lange en riskante onderneming worden. Dit soort van onzekerheid en een voortdurend veranderende scope, is vaak de doodsteek voor maatwerkontwikkeling en een katalysator voor tal van andere problemen, zoals een vaak langere bouwtijd als gevolg van last minute-wijzigingen of zelfs het opnieuw opstarten van het project, onverwachte kosten en een overmaat aan RFC's en het dreigende idee van mislukte projecten, gebaseerd op de projectduur en -kosten, waardoor het risico te groot is voor de meeste cio's.
Dit zijn slechts enkele voorbeelden van problemen die vaak in verband gebracht worden met het proces van maatwerk softwareontwikkeling. Als gevolg van het onvermogen om snel op veranderende behoeften te kunnen reageren, kreeg het gehele 'applicatieontwikkeling op maat'-proces een slechte reputatie. Geconfronteerd met deze uitdaging hebben een paar schrandere ontwikkelaars een aanpak bedacht rond deze steeds veranderende eisen en wensen: de Agile-methode.
Agile-development als myth buster
Als onzekerheid de kern van het probleem is bij ontwikkeling op maat, hoe kunnen we dan te werk gaan om hier een oplossing voor te vinden? Bij Agile start het ontwikkelproces op basis van een aantal high level requirements. Het team richt zich op de meest prominente en/of belangrijkste eisen en toont het resultaat binnen een iteratie van twee à drie weken in de vorm van een demo. Hierin wordt het eerste deel van de werkende applicatie getoond.
Op basis van feedback kunnen vervolgens meer functionele details toegevoegd worden en wordt het systeem iteratief en continu verder uitgebouwd. Door het stimuleren van feedback en vooraf te anticiperen op wijzigingen in het project, kunnen ict en de business samenwerken aan het opbouwen van de juiste oplossing.
De keuzes worden gemaakt op basis van prioriteiten en de toegevoegde waarde voor de organisatie. Het aanmoedigen van feedback leidt tot een snellere uitvoering. Teams werken immers sneller als ze zich kunnen concentreren op het ontwikkelen van de belangrijkste behoeften van de opdrachtgever.
Agile-beoefenaars betitelen hun uiteindelijke toepassingen soms als 'lean' en 'fit to purpose'. Doordat de scope en de complexiteit is gereduceerd tot de echt ter zake doende functionaliteiten, is de applicatie makkelijker in lijn te houden met toekomstige veranderingen.
Voeg hieraan een ontwikkelomgeving toe die dit soort iteratief ontwikkelen en de te verwerken wijzigingsverzoeken eenvoudig ondersteunt en je hebt een manier van applicatieontwikkeling die ervoor zorgt dat de applicaties altijd 'up to date' ook wel 'evergreen' zijn. Op die manier leveren deze applicaties een blijvend rendement op voor de gebruikers en opdrachtgevers. Het fenomeen 'verouderde software' is hiermee tevens geëlimineerd.
Ook de kosten en risico's zijn bij Agile geringer door de inzet van kleinere ontwikkelteams en een hogere opleveringsnelheid. Risico's worden geminimaliseerd, omdat ontwikkelteams zijn belast met het om de twee à drie weken leveren van werkende functionaliteit. De projectvoortgang is voor iedereen zichtbaar. Er zijn geen processen om zich achter te verbergen en iedereen kan zien of het team 'on track' is of niet. Zo wordt volledige transparantie gegeven.
Tenslotte moeten we bij het in ere herstellen van maatwerksoftware de inzet van ontwikkeltools niet onderschatten. Om het veranderingsproces snel en met een zo laag mogelijk risico te ondersteunen, dienen ontwikkelteams over de juiste instrumenten te beschikken. Goede ontwikkeltools bieden zowel een bouwfunctionaliteit om uiteindelijk werkende software te leveren, als ook backoffice-functionaliteiten, zoals het eenvoudig deployen, versiecontrole, het verzamelen en eenvoudig managen van feedback en het te allen tijde transparant verstrekken van de project status.
Dus, is maatwerk software-ontwikkeling dood?
Geenszins! De belofte van softwarepakketten lijkt te mooi om waar te zijn. En zoals blijkt voor vele bedrijven is dat ook zo. Het inzetten van de Agile-methode samen met de juiste tools maakt het ontwikkelen van maatwerk echter veel minder duur wanneer de totale applicatielevenscyclus wordt beschouwd. Bovendien zorgt de methode voor veel meer flexibiliteit. Misschien moeten we ons daarom afvragen: 'Is pakketsoftware stervende'?
Pakketsoftware zou nooit stervende kunnen zijn gezien de zeer grote diversiteit. Ik zie hier echter een gevaar zitten in het fenomeen offshoring. Offshoring leidt op de langere termijn tot het verloren gaan van veel kennis waardoor wij straks aangewezen op de kennis en kunde van landen als India. Als blijkt dat men daar zeer hoogwaardige kwaliteit levert is er niets aan de hand. Echter indien deze uiteindelijk zeer onder de maat blijkt te zijn en de geleverde maatwerk applicaties niet meer voldoen aan de gestelde eisen dan kan het zomaar zijn dat we ondanks dat we mogelijk niet willen, uiteindelijk geen keuze meer hebben en moeten overstappen op standaardsoftware.
Heel mooi artikel. Wellicht zou een kans voor maatwerksoftware, met name de vele ERP-pakketten, een combinatie van Agile en pakketsoftware kunnen zijn.
Nu wordt de invoering van pakketsoftware vaak volgens een waterfall-method aangepakt. Waarom invoering van pakketsoftware ook niet agile aanpakken? Korte iteraties (2-4 weken) met *werkende* functionaliteit aan het eind van de sprint, betrokkenheid van eindgebruikers vanaf dag 1, (automatische) testen gedurende sprints en goede teams bij invoering. Als het goede pakketsoftware is, dan moet dat zeker mogelijk zijn – ook bij complexe invoering van b.v. ERP.
Ben het helemaal eens met Gerbrand van Dieijen. Het bedrijf waar ik voor werk (www.topforce.com) implementeert standaardpakketten (SAP, FirstSpirit) op een Agile manier. Naar mijn mening weten leveranciers van standaardpakketten steeds beter de balans te vinden tussen best practices en maatwerk: ik denk bijvoorbeeld aan de composition environment van SAP. Deze ‘BPM-laag’ biedt mogelijkheden om het bedrijfsproces in SAP één-op-één te laten aansluiten op de werkelijkheid.
Interessant artikel en reacties. Wat hiervoor nodig is, is dat het businessmodel van met name de software producenten en implementatiepartners moet veranderen. In het artikel ” Branche moet klantwensen centraal stellen” (https://www.computable.nl/artikel/ict_topics/erp/3364301/1276992/branche-moet-klantwensen-centraal-stellen.html) ga ik hier verder op in: “De tijd is rijp voor businessmodel-driven software. Software die zich makkelijk en snel kan voegen naar veranderende inzichten en businessmodellen, waarbij een onderneming verlost is van big bang implementatie trajecten van een jaar, en na dat jaar zit met een systeem dat niet past bij de veranderde omgeving. Met alle spanningsvelden tussen de leverancier, implementatie partners en klant van dien.”
Bij het artikel “ICT is een onvolwassen bedrijfstak” is hier ook een interessante discussie over gaande (https://www.computable.nl/artikel/ict_topics/ictbranche/3385468/2379258/ict-is-een-onvolwassen-bedrijfstak.html#3388939).
De door Jacco genoemde ‘businessmodel-driven software’ is een interessante ontwikkeling. Waarom staat over het algemeen de technologie centraal in softwareontwikkeling? In mijn optiek is de business leading en de technologie ondergeschikt, in de praktijk gebeurt dat echter nauwelijks. Mijn bedrijf 42windmills (www.42windmills.com) biedt een online omgeving waar software kan worden ontwikkeld zonder te programmeren. Op ieder moment kan een werkende applicatie worden bekeken en verder worden aangepast. Dit voorkomt ellenlange ontwikkeltrajecten en situaties zoals in het artikel hierboven beschreven.