Prof. Jan Bosch
De afgelopen maanden heb ik met verschillende bedrijven gesproken die een interessante gemene deler hadden: ze waren allemaal een nieuw platform aan het bouwen om een legacy platform te vervangen en het ging niet zo goed. Het legacy platform is vaak tientallen jaren oud en bevat functionaliteit die het resultaat is van honderden manjaren werk. En het vormt meestal de basis voor een aanzienlijk deel, zo niet het hele productportfolio.
Wanneer het nieuwe platform wordt opgestart, accepteert de organisatie dat het enige tijd (jaren) zal duren voordat het zover is dat het het legacy platform kan vervangen. Omdat het uitstellen van de productportfolio onaanvaardbaar is, zal er een continue stroom van ontwikkelingsinspanningen naar het oude platform gaan om de functies te realiseren die nu nodig zijn. Dit gebeurt natuurlijk parallel aan de inspanningen voor het nieuwe platform. Het gevolg is dat het doel voor het nieuwe platform een bewegend doel wordt omdat het oude platform voortdurend nieuwe functionaliteit toevoegt die het nieuwe platform ook moet toevoegen om gelijkwaardige functionaliteit te bereiken.
Er zijn drie mogelijke uitkomsten in dit scenario. De eerste is ook de slechtste: het nieuwe platform slaagt er niet in om voor altijd dezelfde functionaliteit te bieden. Als gevolg daarvan is geen enkele productlijn bereid om erop over te stappen. Op een bepaald moment vindt er een verandering in het management plaats, wordt de nieuwe platforminspanning opnieuw bekeken en leidt de staat van dienst tot nu toe tot een voor de hand liggende conclusie: het nieuwe platform wordt geannuleerd. Het resultaat is dat het bedrijf vastzit aan het oude platform en jaren tijd en honderden manjaren aan R&D-inspanningen heeft verloren zonder enig zakelijk voordeel.
Ten tweede wordt de platforminspanning gebruikt door één productlijn en wordt het de-facto platform voor slechts een deel van het portfolio. Voor productmanagement valt de keuze tussen het bouwen van functionaliteit voor een product dat er nu is of een potentieel product in de toekomst heel vaak uit in het voordeel van het bestaande product. Als dit continu gebeurt, leidt dit ertoe dat het platform steeds meer geoptimaliseerd wordt voor de specifieke productlijn en steeds verder achterop raakt voor de andere productlijnen. Dit kan worden gezien als een manier voor één productlijn om algemene R&D-middelen te kapen voor zijn eigen doeleinden, wat het erg aantrekkelijk maakt als strategie in bedrijven met een sterke focus op teams die leveren in hun eigen verantwoordelijkheidsgebied zonder verantwoordelijkheid te houden voor het succes van het bedrijf als geheel.
De derde situatie is wanneer senior R&D en business leiders deze patronen begrijpen en de organisatie dwingen om het legacy platform te verlaten en het nieuwe platform te adopteren. Dit leidt vaak tot grote spanningen als productlijnen worden gevraagd om nieuwe producten uit te brengen met minder mogelijkheden. De discussie leidt meestal tot veel verzoeken om “kleine” onderhoudswerkzaamheden uit te voeren op het oude platform als reactie op verzoeken van klanten en andere, zeer haalbare, redenen. Over het algemeen zullen velen in de R&D organisatie ervoor vechten om zo lang mogelijk op het oude platform te blijven. In het ergste geval wordt het legacy platform nooit buiten gebruik gesteld en blijven de platformen nog jaren of zelfs decennia naast elkaar bestaan.
'There’s no correlation between system age and the level of technical debt'
De fundamentele reden achter deze scenario’s is een mechanische mindset van het leiderschap. Het idee om generaties van platforms te hebben is misschien logisch in de mechanica en elektronica (hoewel deze platforms ook baat zouden hebben bij voortdurende evolutie), maar software is anders. Ons onderzoek toont aan dat er geen correlatie is tussen de leeftijd van een systeem en het niveau van de technische schuld, wat betekent dat nieuwe en oude systemen vergelijkbare eisen stellen aan het beheer van de technische schuld.
In plaats van te denken in termen van platformgeneraties, zou de focus moeten verschuiven naar een continu verbeterend platform met een constante stroom van refactoring-inspanningen die het platform actueel houden vanuit een technologisch en architecturaal perspectief. In plaats van een bestaand platform te laten wegzakken in een moeras van commodity en irrelevantie, moeten organisaties continu een bepaald percentage (10-25 procent) in het platform investeren om ervoor te zorgen dat het nooit vervangen hoeft te worden door een volgende generatie.
Concluderend is het bouwen van nieuwe platformen om bestaande te vervangen een zeer riskant O&O-initiatief vol risico’s en uitdagingen. Investeer in plaats daarvan voortdurend een deel van uw R&D-middelen in het refactoren van uw bestaande platform. Het beste platform is een platform dat nooit vervangen hoeft te worden omdat het altijd actueel en up-to-date is. Omdat je toegewijd bent om het zo te houden!