Het hof in Amsterdam heeft een tussenuitspraak gedaan in het hoger beroep van Berkleef tegen Capgemini. De rechtszaak betreft de kwestie dat Capgemini voor de firma Equihold (van Berkleef) een .Net-versie heeft gemaakt van zijn oude sport-erp-suite 1-2Focus. De klanten van Equihold, bonden en sportclubs, zijn tevreden over dit vernieuwde concept. De kwaliteit van de door Capgemini geleverde software vinden de klanten echter zo slecht dat ze de software na negen releases en meer dan honderd bug- en hotfixreleases nog weigeren te gebruiken. Equihold zit dan met ontwikkelkosten en raakt verstoken van inkomsten.
Wat is de kwaliteit van de door Capgemini geleverde software? In mei 2006 is een code-review door Capgemini uitgevoerd. Daarin wordt geklaagd dat de code moeilijk te lezen en te begrijpen is, wat volgens de opsteller ook weer slecht zou zijn voor de toekomstige onderhoudbaarheid. Dit Capgemini-rapport had direct aan de stuurgroep gegeven moeten worden. Een professionele leverancier zou in een dergelijk geval aanbevelen om het project te bevriezen om samen met de opdrachtgever te gaan overleggen welke vervolgstappen nodig zijn. Maar deze review is tot 2014 geheimgehouden voor Equihold.
In januari 2007 heeft Capgemini weer een code-review uitgevoerd. In het rapport staat dat de code in het algemeen goed is en dat de architectuur voldoet, maar het geeft geen enkele verklaringen voor de foutmeldingen. Deze review heeft Capgemini wel gedeeld met Equihold. Capgemini heeft nog een onderzoek in 2013 gedaan, maar dit onderzoek richt zich vooral op de dan oplopende achterstand van de betalingen en niet op de oorzaak van het vastlopen van het project en de gebrekkige software. Het rapport mertk nog wel op dat de Three Tier-architectuur amper ontwikkeld is. Dit rapport wordt pas op 9 juli 2014 met Berkleef gedeeld na zeven verzoeken van Berkleef.
In september 2010 heeft Equihold een eigen beperkte code-review uitgevoerd en met Capgemini gedeeld. Hierin wordt geadviseerd de software geheel opnieuw te schrijven vanwege de gebrekkige kwaliteit. Nadat Equihold zijn activiteiten in 2010 heeft gestaakt, heeft SQMI in opdracht van Berkleef naar de broncode gekeken. De conclusies zijn vernietigend. SQMI geeft de software een score F, op een schaal van AAA tot FFF, en ziet de software als een total loss. De software zou herschreven moeten worden om het afgesproken kwaliteitsniveau te kunnen halen, ook voor toekomstige ontwikkelingen. Capgemini had contractueel ‘high quality software’ moeten opleveren.
Een van de allerlaatste versies van 1-2Focus heb ik zelf getest en ik kwam tot dezelfde conclusie als Equihold en hun testende klanten: totaal onbruikbare software met veel blocking bugs.
Aanklacht
Vanaf november 2010 schakelen beide partijen advocaten in. Capgemini weigert een minnelijke regeling en het komt tot een rechtsgang. Berkleef stelt dat Capgemini niet werkende software heeft opgeleverd op basis van spaghetti-code en dat de software ook niet volgens de afgesproken modulaire Three Tier-architectuur is gebouwd. Ook zou Capgemini de afgesproken RUP-ontwikkelmethode niet volgens de bijbehorende algemeen geldende ict-standaarden voor good practice hebben toegepast. Daarnaast wordt Capgemini het kwalijk genomen dat ze belangrijke (go/no-go-)informatie heeft achtergehouden (de Capgemini review van mei 2006) en valse verwachtingen hebben gewekt door de voortgang in hun rapportages te rooskleurig te hebben voorgesteld.
Capgemini stelt dat ze heeft voldaan aan de opdracht, dat de broncode goed was, maar dat Berkleef in gebreke is geweest met zijn betalingen en acceptatietesten. Capgemini geeft Equihold de schuld van de mislukking van het projectmanagement. Capgemini zou ondanks de inzet van vele managers en het tekenen voor resultaatverplichtingen, slechts een inspanningverplichting hebben.
Op 29 juni 2016 bepaalde de rechtbank dat Equihold verzuimd heeft Capgemini tijdig wegens wanprestatie formeel in gebreke te stellen. De rechtbank dacht daarbij niet goed na hoever de onderzoeksplicht van de klant redelijkerwijs moet gaan. Bovendien veronderstelde de rechtbank ook dat fouten in de softwarecode door Capgemini nog tijdig te herstellen waren (zonder hierover deskundigen te raadplegen).
Hoger beroep
Berkleef is in hoger beroep gegaan. Berkleef heeft aangegeven dat het pas in 2010 wist hoe groot de onderliggende problemen waren. Ook stelt het bedrijf op basis van het SQMI-rapport dat tijdige reparatie van de software door Capgemini onmogelijk is geweest. Het hof heeft op 20 oktober 2020 de vreemde gedachtesprongetjes van de rechtbank in een tussenvonnis verworpen en Berkleef in het gelijkgesteld met betrekking tot de klachtplicht. Berkleef heeft Capgemini al vanaf 2006 op de hoogte gebracht van problemen met de software. Dat deze problemen een diepere oorzaak hadden, dat kon Equihold destijds niet weten.
Het hof heeft het rapport van SIG beter gelezen dan de rechtbank en vooral gekeken wat er niet in staat, zoals rechters dat ook behoren te doen. Niet dat het hof het ontwikkelproces allemaal evengoed snapt, maar daar zijn de onafhankelijke experts voor. Het herformuleren van de werkelijkheid door een juridische feitelijkheid ten behoeve van rechtsvragen is lastig. Het hof wil zich gaan buigen over verdere rechtsvragen. Het hof heeft daarom bepaald dat er één of meer onafhankelijke deskundigen moeten worden aangesteld om de kwaliteit van de door Capgemini aan Equihold geleverde 1-2Focus-software en bijbehorende broncode te onderzoeken. Deze experts worden door het hof benoemd, al dan niet op gezamenlijke voorspraak van Berkleef en Capgemini. Berkleef en Capgemini moeten ook de onderzoeksvragen voor de experts bepalen.
Onvolkomenheden repareren
Software Improvement Group (SIG) heeft destijds op verzoek van Capgemini (beperkt) naar de broncode gekeken, nadat Capgemini voor de rechtbank is gedaagd. Door het ‘opschonen’ van IfSQ Defect-indicatoren, door deze niet relevant te noemen, zijn er veel door Equihold geconstateerde kritiekpunten in de broncode van Capgemini in het SIG-rapport verdwenen. Het SIG rapport van 30-6-2014 geeft aan dat de kwaliteit van de 1-2Focus-broncode niet slechter is dan gangbaar.
SIG komt eigenlijk met een halve mening, omdat die niet is gebaseerd door de bij SIG bekende feiten. SIG laat ook open of SQMI toch niet ergens gelijk kan hebben. Bovenal heeft SIG nooit en te nimmer beweerd dat de software goed functioneert. Voor zover ik weet, heeft ook Capgemini nooit expliciet aangegeven dat de software werkt zoals is afgesproken. Wel heeft Capgemini eind 2009 aangeboden ‘onvolkomenheden’ in de software voor een relatief klein bedrag repareren. Dat bedrag is betaald en Capgemini levert enkele maanden later een automatische set-up en de automatische updates. Deze hebben volgens Berkleef een dag gewerkt.
Twee soorten testen
De geleverde functionaliteit van de software en de broncodekwaliteit moet worden beoordeeld. Het ligt voor de hand dat dit door twee verschillende onafhankelijke experts gedaan zal moeten worden. Dan kan het werk ook deels parallel uitgevoerd worden. Geautomatiseerde tests van de code hebben hun beperkingen. Eating is the proof of pudding, dus de software moet ook zelf getest worden.
Het eerste onderdeel van de softwaretest is die van de software-installatie zelf. Kan de door Capgemini geleverde 1-2Focus-software normaal op systemen geïnstalleerd worden die voldoen aan de destijds geldende specificaties? Dat installeren is op zich een crime gebleken. Na de installatie dient ook de bij een release behorende functionaliteit getest te worden. Dit moet gebeuren aan de hand van de originele beschrijvingen van de gewenste functionaliteit.
Denk aan functionaliteit om de gegevens van teams, opstellingen, spelers, speeltijd, stafleden, licenties, soorten contracten, beschikbaarheid, enzovoorts in te voeren en te reproduceren via rapportages en overzichten. Is het daarna mogelijk om allerlei mutaties uit te voeren? Is het mogelijk data van videoanalyse te verwerken en te koppelen aan bepaalde spelers, te tonen in grafieken? Er moeten diverse releases getest worden om te begrijpen waarom Equihold zijn klanten kwijt is geraakt en uiteindelijk failliet is gegaan.
Software ondermaats
Functionele testen tonen niet alle gebreken. Met aangepaste spaghetticode kunnen bugs min of meer opgelost worden. Maar tegelijkertijd kan de onderhoudbaarheid (verder) verslechteren en de kans op nieuwe en terugkerende fouten sterk vergroot worden. Equihold heeft geklaagd dat in latere releases van 1-2Focus veel fouten zijn teruggekomen. Zijn de algemeen geldende ict-standaarden voor good practice toegepast?
SQMI heeft aangegeven dat de software ondermaats is en bovendien een total loss. Als deze conclusies herbevestigd worden, dan is dit juridisch van dubbel belang. Berkleef kan dan ten eerste bewijzen dat Capgemini een wanprestatie heeft geleverd en ten tweede bewijzen dat Capgemini de software nooit snel genoeg hadden kunnen herstellen. De aangestelde onafhankelijke experts zullen verder moeten bepalen of de fouten in de softwarecode door Capgemini tijdig te herstellen waren (in het licht van de ontwikkelingen in de sport-erp-markt).
Uitspraak
Nu het juridische proces in deze fase is aangekomen, zal Capgemini niet alleen inhoudelijk moeten reageren, maar ook intern moeten afvragen welke oordeel het van de experts van het hof mag verwachten. Wellicht kan Capgemini toch beter tot een vergelijk komen, zoals het hof dit graag ziet. Voor de it-industrie en it-juristen is een uitspraak door het hof natuurlijk veel interessanter.
Jaap van Belkum, zzp’er (ICT-Traject)
Aanvulling van alinea “Software ondermaats”
Gezien het resultaat van de laatste reparaties van de software door Capgemini in begin 2010, lijkt me tijdig herstel niet realistisch. Daarnaast mag verondersteld worden dat Capgemini al in een heel vroeg stadium op de hoogte was dat het door haar opgeleverde werk van slechte kwaliteit was. Deze kennis is door Capgemini vervolgens niet met haar klant gedeeld. Vanwege die vroegtijdige kennis bij Capgemini, is het te betwijfelen of Capgemini zich nog wel in redelijkheid mag beroepen op exoneratie (een beperking van aansprakelijkheid) zoals zij met Equihold is overeengekomen.