Innovatie

Falende ICT-projecten: moeten opdrachtgevers ook code begrijpen?

0

Column – ‘Justitie was gewaarschuwd voor mislukt ICT-project’ was een van de koppen in NRC’s weekendkrant, vorige week. Het artikel beschreef de klassieke ingrediënten van een samenwerking tussen een softwareleverancier die zonder scrupules declarerend voorwaarts ging en een opdrachtgever (de overheid) die niet in staat was enige grip te krijgen op een resultaat.

ICT-projecten niet onder controle

Het ging om het project ‘Radar’, een programma dat automatisch data van verschillende overheidsregisters zou kunnen combineren om zo eerder signalen van fraude op te sporen. De softwareleverancier had 3,2 miljoen gedeclareerd en ontvangen, dat was 1,5 miljoen meer dan wat afgesproken was, en er was nog niets werkends opgeleverd.

Het gebeurt de overheid, het gebeurt net zo goed in het bedrijfsleven. Bijna alle conclusies uit het parlementair onderzoek naar ICT-projecten bij de overheid (pdf) zijn direct toepasbaar op het bedrijfsleven. Conclusie een: de rijksoverheid (lees: de onderneming) heeft haar ICT-projecten niet onder controle. Conclusie twee: de politiek (het bedrijf) beseft het niet, maar ICT is overal. Andere conclusies: het projectmanagement is zwak. Contracten met perverse prikkels. Geen lerend vermogen. ICT-kennis schiet tekort.

Fotolia_2686561_Subscription_XL

Code begrijpen

Er is een simpele verklaring. Je hebt een koper die niet in staat is helder uit te leggen wat hij wil en je hebt een verkoper die bereid is dit te maken. Ze maken allebei gebruik van dezelfde gesproken en geschreven taal. Kenmerk van deze taal is dat het (vooralsnog) alleen mensen zijn die dit communicatiemiddel beheersen en begrijpen. Een mens spreekt dus met een mens over wat een machine – een computer, een systeem, een programma – moet gaan leveren. Maar de enige taal die een computer begrijpt is een programmeertaal. Ook wel code genoemd.

Als twee partijen praten over een software-systeem, zullen ze beiden moeten begrijpen wat code is en hoe code werkt.

Mijn stelling is nu: als twee partijen praten over een software-systeem, zullen ze beiden moeten begrijpen wat code is en hoe code werkt. Als dat begrip er niet is, blijft er nog maar één munteenheid over die als grondslag kan dienen voor een goede afspraak en dat is: vertrouwen. Vertrouwen op elkaar of vertrouwen op iemand die het wél begrijpt.

Fotolia_2883302_Subscription_XL

What is code?

Een mooi essay schreef hij, Paul Ford: ‘What is code?’ De code is de opdrachtgever van een computer. De Britse kunstenaar William Morris zei ooit dat kunst slechts kan ontstaan uit een strijd tussen materialen. Welnu, de computer en alles wat er aan verbonden is (scherm, toetsenbord, knipperlichtje, electrisch schokje, speaker) zijn de materialen, een elegante code maakt er kunst van.

Ford beschrijft het gesprek tussen de ervaren en geslaagde bestuurder en de informatie-architect die hem bijpraat. Het gaat over budgetten, de limieten van WordPress, scrum-methodieken, overbodige Oracle-licensies en de problemen om Drupal-7 te koppelen aan Magento – wat nog altijd PHP is. De verwarring is Babylonisch, de betrouwbaarheid van de afspraken zo onzeker als het spoorschema in herfstweer.

Vertrouwen

Software is eating the world, en niemand ontkomt er aan. We zitten pas in de beginfase van het vermogen om afspraken te maken die voor beide partijen werkbaar zijn. En zo lang we in die beginfase zitten is er maar één vorm die werkt: de vorm van het volledige en onvoorwaardelijke vertrouwen in elkaar. Samen uit, samen thuis. En leg dat maar eens vast in een waterdicht contract.

Illustraties met dank aan Fotolia. 

Deze column werd eveneens gepubliceerd in Het Financieele Dagblad.