Naar kennisoverzicht

Stop the blame game - software cultiveren met een Just Culture

Het dilemma van de boeren – korte termijn winst versus duurzame groei

Stel je twee boeren voor, elk met uitgestrekte velden vol gewassen. De eerste boer is geobsedeerd door het maximaliseren van zijn oogst. Hij gebruikt overvloedig kunstmest, oogst zo snel mogelijk en negeert de langzame uitputting van de bodem. Eerst zijn de opbrengsten hoog, maar al snel raakt de grond uitgeput, gewassen lijden aan allerlei kwalen en de grond is ongeschikt om nog iets te laten groeien.

De tweede boer kiest een andere weg. Hij richt zich op de lange termijn en zorgt goed voor de bodem. Hij wisselt gewassen af, verrijkt de bodem, en geeft het land de tijd om te herstellen. Zijn opbrengsten breken misschien geen records, maar decennia later bloeien zijn velden nog steeds.

Dit is niet alleen een verhaal over landbouw, maar ook over softwareontwikkeling. De eerste boer symboliseert een cultuur waarin schuld wordt gezocht: gericht op korte termijn successen, met beschuldigingen wanneer er iets misgaat en een uitputting van ontwikkelaars als gevolg. De tweede boer belichaamt een Just Culture: een omgeving waarin leren van fouten centraal staat en het team – en de code – duurzaam blijft groeien.

Korte termijn oplossingen versus duurzame code

Net als in de landbouw leidt een focus op alleen snelle oplossingen in software vaak tot fragiele, onhoudbare systemen. Heb je ooit een team gezien dat constant onder druk staat om deadlines te halen en daardoor noodoplossingen implementeert? Op korte termijn lijkt het te werken, maar al snel kampen ze met te veel technical debt en verliezen ze de ruimte om te innoveren. Een mooi voorbeeld is de ontwikkeling van de game Cyberpunk 2077. De ontwikkeling hiervan ondervond veel hinder door te hoge werkdruk bij developers en te hoge verwachtingen na eerdere succesvolle titels.

Een Just Culture, net als duurzame landbouw, investeert in veerkracht op de lange termijn. Teams stoppen met vragen als “Wie heeft productie gebroken?” en stellen in plaats daarvan de vraag “Wat kunnen we leren van dit incident?” . Zo creëren ze robuuste systemen en versterken ze het team met elke nieuwe les.

AI: kunstmest of hulp op de boerderij?

AI-coderingstools lijken op krachtige kunstmest: ze kunnen de groei enorm versnellen, maar als ze onzorgvuldig worden gebruikt, ondermijnen ze de creativiteit en verantwoordelijkheid van de ontwikkelaars. Wanneer ontwikkelaars te afhankelijk worden van AI gegenereerde code zonder deze te begrijpen, riskeren ze het oogsten van fragiele, onbeheersbare systemen. En als er dan iets misgaat, wie voelt zich dan verantwoordelijk? De ontwikkelaar of de AI?

Een Just Culture-aanpak ziet AI als een hulpmiddel, niet als een vervanging van kritisch denken. Ontwikkelaars blijven de ‘boeren’ die de code moeten begrijpen en verzorgen. AI mag helpen bij het werk, maar de verantwoordelijkheid ligt uiteindelijk bij de mens.

Zelfherstellende systemen

Toekomstige software zal steeds meer lijken op regeneratieve landbouw: velden die zichzelf kunnen herstellen zonder constante menselijke tussenkomst. Zelfherstellende systemen, aangedreven door AI, zullen in staat zijn om problemen te detecteren en autonoom op te lossen. Maar net zoals regeneratieve landbouw niet betekent dat boeren hun land volledig aan de natuur overlaten, zullen deze systemen nog steeds toezicht en doordachte ontwerpkeuzes van ontwikkelaars vereisen.

Een Just Culture zorgt ervoor dat ontwikkelaars zich veilig voelen om te experimenteren met deze geavanceerde systemen. Als een autonoom microservice niet in staat is zichzelf te herstellen, ligt de focus niet op het vinden van schuldigen, maar op hoe het systeem verbeterd kan worden.

De software developer als digitale boer

Naarmate bedrijfsapplicaties zich verder ontwikkelen, zullen ontwikkelaars steeds meer op digitale boeren gaan lijken: ze cultiveren diverse, veerkrachtige ecosystemen van microservices, AI-gestuurde workflows en zelfherstellende systemen. Ze zullen minder gericht zijn op het snel produceren van code en meer op het ontwikkelen en onderhouden van een duurzame softwareomgeving.

Net zoals moderne boeren een gedetailleerd overzicht bijhouden van bodemkwaliteit, wisselteelt en plaagbestrijding, zullen toekomstige ontwikkelaars niet alleen documenteren wat hun code doet, maar belangrijker nog, waarom bepaalde beslissingen zijn genomen. Deze gedeelde kennis, gebaseerd op vertrouwen en openheid, wordt een essentiële pijler van robuuste softwareontwikkeling.

Conclusie: cultiveren, niet uitputten

Geweldige software bouwen gaat niet over het zo snel mogelijk oogsten; het gaat over het cultiveren van systemen die gezond, adaptief en duurzaam blijven. Een Just Culture transformeert softwareteams in duurzame ontwikkelaars, waarin fouten zaadjes zijn voor verbetering en geen onkruid dat uitgeroeid moet worden.

Dus, de volgende keer dat je overweldigd wordt door bugs, neem een moment en vraag jezelf af: ben ik aan het boeren voor de oogst van vandaag, of verzorg ik een veld dat nog jaren productief kan blijven? Het antwoord kan je manier van coderen voorgoed veranderen.

Richtlijnen voor een Just Culture met behulp van AI

Dit artikel gaat over een Just Culture. Het concept zal bij veel software developers bekend zijn, en veel van de methodieken die uitgaan van een ‘Just Culture’, zoals de peer-review en het houden van een retrospective, zijn bij veel teams algemeen goed. Toch kan het goed zijn om van tijd tot tijd na te gaan of er toch niet te snel wordt teruggevallen naar de schuldvraag (the Blame Game) Onderstaande lijst geeft een overzicht van hoe AI een Just Culture kan ondersteunen.

  1. Slimme incidentanalyse: AI kan logboeken en metrics analyseren om objectieve inzichten te bieden zonder schuldigen aan te wijzen.
  2. Real-time feedback: tools zoals AI-gebaseerde codebeoordelaars geven ontwikkelaars direct constructieve feedback, waardoor fouten minder zwaar voelen.
  3. Geautomatiseerde post-mortem documentatie: AI kan incidentrapporten automatisch opstellen en procesverbeteringen voorstellen.
  4. Sentimentanalyse in teamcommunicatie: AI kan signaleren wanneer teamleden tekenen van stress of burn-out vertonen en managers waarschuwen.
  5. Ondersteuning bij blameless retrospectives: AI kan neutrale, data gedreven inzichten leveren om een retrospective objectiever te maken.
  6. Anonieme feedback verzamelen: AI kan anonieme feedback van het team aggregeren en de belangrijkste thema’s samenvatten.
  7. Adaptieve leersystemen: AI kan gepersonaliseerde leertrajecten voorstellen op basis van incidenten of code reviews.
  8. Cognitieve belasting verminderen: door werkdruk te monitoren, kan AI helpen voorkomen dat ontwikkelaars overbelast raken.
  9. Bevorderen van diversiteit in oplossingen: AI kan verschillende benaderingen voor een probleem voorstellen en creatieve discussies stimuleren.
  10. Transparantie in AI-beslissingen: uitlegbare AI (explainable AI) zorgt ervoor dat ontwikkelaars vertrouwen opbouwen in de suggesties die AI-tools bieden.