Capgemini heeft voor Equihold een .Net-versie gemaakt van hun sport erp-programma 1-2Focus. Equihold is vanaf het begin niet tevreden over de software en spreekt uiteindelijk over slechte spaghetticode. Dat wordt ten stelligste ontkent door Capgemini. In mijn vorige artikel, ‘Capgemini 1-2Focus: installatietest’, heb ik beschreven dat het installeren van de 1-2Focus software weliswaar mogelijk is, maar het meestal moeizaam gaat en het niet iedereen zal lukken om de software te installeren. Maar als die horde is genomen, hoe stabiel en gebruiksvriendelijk is de software dan verder?
In het contract met Capgemini en bijbehorende documenten zijn voor 1-2Focus onder andere de volgende eisen en uitgangspunten vastgelegd.
– Het programma moet gebruiksvriendelijk zijn (be easy to deploy, be easy to upgrade).
– De software functionaliteit moet modulair in de markt gezet kunnen worden. Een versie waarbij niet alle modules geleverd zijn, moet dus gewoon kunnen werken.
– De software moet van hoge kwaliteit (high quality) zijn.
Bij het testen is bekeken of de software globaal voldoet aan de algemene eisen die aan software gesteld mogen worden.
De applicatie
De applicatie ziet eruit als een typische Microsoft Windows XP applicatie. Dat is te verwachten omdat het om een .Net-applicatie gaat, die met Microsoft tools gemaakt is. Er is een behoorlijke handleiding van 91 pagina’s. Bovendien kun je via de frequently asked questions (faq) een bijbehorend instructiefilmpje starten, zoals bij veel erp-programma’s.
Het hoofdmenu volgt grotendeels de bedoelde modulaire opbouw. De trainer krijgt de modules ‘Management’ voor rapporten en contacten, ‘Sport’ voor onder meer competitie, team(samenstelling), trainingen, agenda, wedstrijden, activiteit spelers en spelersevaluatie, ‘Wedstrijden’ voor onder andere video bibliotheek, actieschema ten behoeve van wedstrijdevaluatie, wedstrijden, presentatie van geselecteerde fragmenten en ‘Admin’ voor bijvoorbeeld het maken/aanpassen van formulieren, de back-up en rapportages.
Irriterende bugs
Je ziet meteen veel slordigheidjes als je door de menu’s heen loopt. Bij het programma was Nederlands als taal ingesteld, maar op veel delen van het programma moet je met de Engelse taal werken zonder dat dit voor de hand ligt. Zo is de submodule ‘Agenda’ grotendeels in de Engelse taal. De submodule ‘Training’ is ook grotendeels in het Engels. Het aanmaken van personeelsgegevens gaat deels in het Engels. Ook zijn er wat typefouten.
Als je eenmaal met de applicatie gaat werken, dan zie veel meer foutjes. Datums kun je niet altijd rechtstreeks intypen, maar moet je geheel of gedeeltelijk aanpassen via het bekende MS de mini agenda. Als je de geboortedatum moet invullen van iemand die decennia oud is; dan ben je even bezig met scrollen.
De submodule ‘Agenda’ laat je niet meteen een team selecteren waarvan je een activiteitenoverzicht wilt hebben. Je moet eerst de optie ‘Training Selectie’ afvinken en weer aanvinken, voordat je één of meerdere teams kunt selecteren.
Bij de submodule ‘Spelersactiviteit’ kun je aangeven dat een speler absent is vanwege ziekte. Maar je moet daarvoor een reden opgeven voordat dit opgeslagen kan worden. Als je niet weet waarom iemand ziek is, verzin dan maar wat.
De ‘Bibliotheek’ met standaard trainingssessies is leeg of niet benaderbaar. Dat was eerder niet zo.
Irritant is ook dat sommige foutmeldingen worden herhaald en sommige foutmeldingen ten onrechte worden getoond. Veel van die fouten staan in clusters. Bijvoorbeeld, het type actie (event) van een speler kan worden gedefinieerd via het ‘Actieschema’ (in de applicatie Event schema). Wijzig je een actietype in het actieschema, dan krijg je vier keer achter elkaar dezelfde foutmelding ‘Opslaan van het event is mislukt’, ook als achteraf blijkt dat de actieomschrijving wel is vastgelegd. De foutmelding moet je vier keer wegklikken. Één keer waarschuwen is voldoende zou je zeggen en uiteraard alleen als het echt nodig is. Bij het wijzigen van de voor- of achtergrondkleur in het actieschema krijg je dezelfde foutmelding en ook vier maal. Dat geldt ook voor het koppelen van een tegenactie (zoals storen) aan een actie. Ook het koppelen van een bepaalde standaardactie aan een hot key geeft ten onrechte weer vier keer de bekende foutmeldingen.
Het opslaan van een mutatie kan de ene keer via een te verschijnen opslaan button en de andere keer alleen via de menubalk. Dat is allemaal niet bepaald bevorderlijk voor de acceptatie van de software, maar het zijn nog geen echte afknappers. Die zijn er helaas wel.
Blocking bugs
De ‘Rapportageontwerper’ (Report Builder in de applicatie) van de managementmodule start niet op; meteen een blocking bug.
Bij jeugdvoetbal zijn er afwijkingen ten opzicht van de normale regels voor volwassenen, bijvoorbeeld qua aantal spelers (maximum en minimum), aantal te wisselen spelers en de speeltijd. Voor een oefenwedstrijd moet je vrijheid krijgen. En dus moet je de tijd zelf kunnen instellen. Maar dat lukt niet.
Als je een oefenpotje wilt agenderen, dan hoef je niet voldoende spelers ter beschikking te hebben, zoals bij een competitiewedstrijd, maar dat lukt niet.
Spelanalyse van wedstrijden en oefeningen is in de topsport van groot belang. Dat betekent dat acties aan videofragmenten gekoppeld worden, bij voetbal van aftrap, doelpunt of een rode kaart van spelers. Die acties worden in het actieschema vastgelegd. Je hebt standaard acties en lege acties die men zelf kan definiëren, de ‘Eigen acties’. Ik heb bijvoorbeeld de ‘Swalbe’ toegevoegd. Dit lukt niet bij elke installatie. Toen ik de volgende eigen actie toevoegde, ging de veldwaarde terug naar de oorspronkelijke staat. Toevallig kwam ik er achter dat als ik eerst de voorgrondkleur aanpaste, ik daarna alsnog een extra ‘Eigen actie’ kon definiëren voor ‘Op de voet trappen’. Ik wilde daarna nog eens op die manier ‘Tijdrekken’ toevoegen, maar dat lukte niet meer. Dus werking van deze bug is niet te voorspellen.
De actie die je aan een spelmoment wilt koppelen kun je aanklikken op een Notatiebord (in de applicatie Notation board) onder het venster voor het afspelen van de video. Dat is handig voor spelanalyse. En je kunt dit uiteraard ook doen met hotkeys die je zelf kunt definiëren. Maar hot keys aanpassen voor een ‘Eigen actie’, kan weer niet, net als nog een aantal andere opties ook niet bij zo’n actie aangepast kunnen worden.
De acties die je koppelt aan een speelmoment kunnen ook aan de plek van het speelveld worden gekoppeld. Ook dat is handig voor spelanalyse. Daarvoor wordt er een schema van het speelveld getoond. In de voetbalversie wordt echter een hockeyveld getoond en die heeft een duidelijk andere indeling dan een voetbalveld.
Voor de liefhebbers, de filmpjes van de genoemde bugs zijn te zien op de website van Capclaim, de juridische entiteit die strijd voert tegen Capgemini.
Voor de gebruikers waren niet alleen de bugs een groot probleem, de leading costumers hebben moeten ervaren dat sommige bugs na een update weer verschenen. Of dit komt door slecht versiebeheer van de source of door de complexiteit van spaghetticode, dat weet ik niet. Het zou niet mogen voorkomen.
Eindconclusie vanuit de gebruiker gezien
Versie 9 is de beste versie die door Capgemini is gemaakt. Toch blijkt het programma in de praktijk niet geschikt te zijn door vele hinderlijke fouten en doordat belangrijke functionaliteit niet beschikbaar is door technische fouten. Die fouten zijn vooral in de submodule ‘Actieschema’ te vinden. Zoveel ernstige fouten bij elkaar kun je als leverancier bij het testen onmogelijk over het hoofd hebben gezien. Capgemini heeft dus niet volgens afspraak de technische tests en functionele tests uitgevoerd. Het had moeten gebeuren en daar is ook voor betaald. De software is slechter dan alle Bèta software die ik in de loop der jaren heb getest. Versie 9 komt over als een Alfa-release, om aan een klant te laten zien wat de software kan gaan worden. Het is gewoon absurd dat Capgemini bij release 9 nog steeds geen stabiele en volledig functionele software heeft weten te bouwen.
Jaap van Belkum, zzp’er
ICT Faalindustrie?
Diverse experts hebben inzake het 1-2Fcousproject zich reeds eerder negatief uitgelaten over de kwaliteit van de code, de toepassing van Rational Unified Processing (RUP) in het ontwikkeltraject en het door Capgemini gevoerde project- en kwaliteitsmanagement en de bijbehorende transparantie van de communicatie. Achteraf is de mislukking goed te verklaren; een contract dat op twee tegenstrijdige gedachten stoelde, slecht projectmanagement, slecht kwaliteitsmanagement, slechte en verhullende communicatie, slechte invulling van de zorg naar de klant. Het eindresultaat is kreupele software waarmee niet gewerkt kan worden. En Capgemini eist nog meer geld voordat zij de bugs oplossen.; in die zin mag 1-2Focus crippleware genoemd worden.
Is dit een voorbeeld van falen, nee het gaat verder dan dat. Zo complex was de opdracht niet voor een bedrijf als Capgemini. Capgemini had meer dan voldoende expertise, capaciteit en ervaring in huis. Natuurlijk, Capgemini had nog heel weinig ervaring met offshoring, maar vanuit projectmanagement hadden die risico’s adequaat gedekt kunnen worden.
Helaas hebben ze de problemen naar het onervaren en kleine Equihold doorgeschoven. Tenslotte, wat wist Equihold van Rup en offshoring en hoeveel mankracht hadden zij om Capgemini te controleren? Dat was te weinig en daar is gebruik van gemaakt. De contractuele afspraken met betrekking tot Rup, softwarearchitectuur, kwaliteit, werkverdeling en dergelijke zijn niet of grotendeels niet nagekomen. Capgemini heeft de klant een lange tijd laten betalen voor producten en diensten die ze maar voor een deel hebben geleverd. Het is een keten van fouten.
Het hoogste management van Capgemini zegt dat de geleverde kwaliteit voldoet aan de norm van gemiddelde software, terwijl er aantoonbaar nog steeds blocking bugs inzitten. Misschien moeten zij zich eens afvragen, What business am I in? Het huidige verdienmodel van Capgemini werkt nog wel, maar hoe lang nog na al die negatieve publiciteit als je kampioen mislukte projecten bent? Om je bedrijf te kunnen continueren, heb je goodwill nodig. Een goede naam kun je niet kopen, maar moet je verdienen en blijven verdienen, zoals generaties van Capgemini Sogeti-medewerkers dat eerder hebben gedaan.
@Jaap
Als eerste is de constatering van middernachtelijke uren suggestief, misschien zit ik nu wel in een andere tijdszone. Het ‘offshoring’ probleem vraagt een aanpassing aan de realiteit als we kijken naar de 24/7 economie.
Best hilarisch trouwens dat je met steeds meer onthullingen komt die tegenstrijdig zijn aan je analyses, stop je zoveel moeite in het bewijzen dat Capgemini een beunhaas is en zeg je vervolgens weer dat ze dat niet zijn. Misschien sla ik de plank mis maar raak ik de spijker?
computablecommune vs individu
dictator vs democratie
ravioli vs spaghetti
valt het artikel dan wel de reacties nog enigzins te verteren ?
maar t.a.v. op de man spelen, simplificeren, polariseren, olie op vuur, uit context halen, selectief citeren.. ik kan jullie uit eigen ervaring wel vertellen. is nog niet zo eenvoudig dat allemaal steeds weer in 1 reactie mee te nemen 😛
@ Ewout, ik ga niet in op elk onlogisch, onnavolgbaar en vals argument van jouw zijde; dan kan ik wel bezig blijven. Maar ook jij moet snappen dat er een verschil is tussen een beunhaas zijn en ondermaatse producten leveren terwijl je het beter kan. Misschien is dat voor jou niet belangrijk, maar wel voor de rechter, de klant en de leverancier. Het één betekent een aangegaan ondernemersrisico, het ander een recht op vergoeding van gelede schade.
Voor de diesel-motor-sjoemel sofware staat de wereld bijna in vuur en vlam, wie vindt een oplossing voor de misleiding van de andere soort? Die kost meer geld aan belastingen en aan de burger want dat wordt in het product verder berekend.
@Jaap
Faillissementsverslag 1-2Focus Holding, 1-2Focus Automation en Equihold B.V:
“Second opinion ten aanzien van de Vordering op Capgemini Nederland B.V. bevestigt dat het treffen van rechtsmaatregelen opportuun is.”
Aangaande mijn vraag over een ingebrekestelling denk ik dat ik uit bovenstaande dus mag concluderen dat je niet geheel waarheidsgetrouw verslag doet. Onlogisch, onnavolgbaar en valse argumentaties omschrijven dan ook prima je opinies en reacties welke opportuun zijn.
Voordat je mij de schuld gaat geven van de ‘resultaatverplichting’ die je aangegaan bent, het gebalk over de code is als ‘eastereggs’ zoeken waardoor er inderdaad sprake is van een heleboel hazen. Nu weet je natuurlijk nooit hoe een koe een haas vangt maar ik denk dat de sector niet geholpen is met dit soort emotionele chantage.
@ Ewoud, ik ken het verslag van Höcker advocaten. En als een jurist schrijft “Vordering op Capgemini Nederland B.V.: er is een second opinion ten aanzien van de Vordering verkregen die bevestigt dat het treffen van rechtsmaatregelen opportuun is”, dan bedoelt deze dat er goede rechtsgronden zijn om vorderingen in te dienen bij Capgemini, wat gedaan is. En dat was de opinie op 14 januari 2015. Inmiddels is de bewijslast alleen maar groter geworden.
Ewoud, uit de wijze waarop je citeert en uit de derde alinea van je reactie, krijg ik het idee dat je niet het verschil kent tussen opportuun (doelmatig, gepast, gunstig, geschikt, gelegen, et cetera) en opportunisme. Dat laatste kan (maar hoeft niet) negatief opgevat worden (handelen zonder principes, voordeel zoeken waarbij ethiek geen rol speelt).
Met betrekking tot de code. Diverse specialisten hebben de broncode onderzocht en zij komen tot de conclusie dat deze in het algemeen niet bepaald goed is. Naarmate men de code meer diepgaand is gaan onderzoeken, is het bewijs steeds sterker geworden dat de code veel fouten bevat, de Three Tier architectuur gefaked is en de code bovendien moeilijk te onderhouden is. Het verweer van Capgemini tot nu toe, vind ik op dit punt ook niet sterk. Die bewijzen voor spaghetticode zijn een goede verklaring voor:
a: het hoge aantal bug fixes / hot fixes dat Capgemini heeft moeten leveren,
b: het feit dat ook de laatste releases van 1-2Focus zo buggy waren, dat de klanten van Equihold deze software niet wilden accepteren en
c: de vele (en deels kritische) bugs die ik zelf heb kunnen constateren en voor een deel op de Capclaim site te zien zijn.
Samenvattend, je bent nogal opportunistisch eclectisch bezig met logica en dialectiek, zonder enige vorm van degelijke retorica 🙂
@Jaap
Mooi opgezocht, maar ik wees op opportuniteitsbeginsel welke bedoeld is om niet van elke m(b)ug een olifant te maken.
@ Ewout, als je partijen in een civielrechtelijk geschil een “seponeringsrecht” wil geven, dan komt het de gedupeerden toe.
Of in dit geschil een m(b)ug een olifant is, dat mag primair door de opdrachtgever Equihold en diens klanten (de betrokken sportorganisaties) bepaald worden. In deze zaak van uiteindelijk alleen verliezers, moet ik hen achteraf gelijk geven. De 1-2Focus pudding met pastasliertjes en lange vingers smaakte mij ook niet. Het is echter aan de rechter om te bepalen wie “Foutje, bedankt!” mag zeggen.
@Jaap
Civiel rechtelijk ligt het inderdaad wat lastiger omdat er twee partijen zijn die elkaar ervan beschuldigen dat ze de aangegane verplichtingen niet zijn nagekomen. En betreffende die verplichtingen wordt het ronduit verwarrend, beetje als de code zelf zullen we maar zeggen.
Of Capgemini nu wel of niet geleverd heeft wat afgesproken is laten we aan de rechter over maar waar ik tegen ageer is het ‘ontzorgen’ sprookje, als ondernemen zo makkelijk was dan hadden we 16 miljoen ‘softwarehuisjes’ en niet genoeg indiaantjes. In dezelfde lijn ligt mijn bezwaar aangaande het idee van een ‘softwarefabriek’ die wonderen op bestelling levert.
Zeker heeft Capgemini fouten gemaakt maar ze zijn niet de enigen, de medaille heeft nog een keerzijde. En het is die keerzijde die me verontrust aangezien de contracten steeds dikker worden, requirements tegenstrijdiger en specificaties steeds dunner. Achteraf het resultaat daarvan in de code concluderen is dan niet zo moeilijk.
Ewout, je toont wel steeds een erg negatieve houding tegenover klanten. Als klanten een auto kopen met een dieselmotor met slechte software, dan is het ook hun eigen schuld? Hadden ze maar meer verstand van motormanagement moeten hebben, toch?