Welke skills zorgen ervoor dat software ontwikkelaars niet alleen goed maar ook efficiënt zijn

Willem Pino van Rootline gaf een masterclass bij Codam die een andere insteek had dan de gebruikelijke tech-tutorials. In plaats van een sessie over hardcore programmeren, ging zijn sessie over een onderwerp dat vaak onderbelicht is: welke vaardigheden heb je nog meer nodig behalve kunnen programmeren op een hoog niveau.

Meer dan alleen Code: wat maakt je effectief
Bij Codam leer je complexe programmeerproblemen oplossen. Maar in de echte wereld draait het om veel meer dan dat. Het gaat om processen, samenwerking, planning en het begrijpen van waarom je überhaupt aan het bouwen bent wat je bouwt.

“Deze sessie gaat niet alleen over technische skills, maar over alles eromheen,” begon Willem zijn presentatie. En dat was meteen het kernpunt. Je kunt de beste programmeur ter wereld zijn, maar als je niet snapt hoe software-ontwikkeling echt werkt in een bedrijf, loop je al snel vast.

Zes Fases dat ieder project doorloopt
Willem deelde software-ontwikkeling op in zes fasen die elk project doorloopt en dat bovendien ook kan dienen als een routekaart voor je carrièrepad:

Ideation – Wat gaan we eigenlijk bouwen?
Functionele eisen – Wat moet het precies kunnen?
Technisch design – Hoe gaan we het bouwen, welke middelen en programmeertalen zetten we in? Een belangrijke stap die onervaren programmeurs soms overslaan.
Implementatie – Het daadwerkelijke programmeren
Testen – Werkt het ook echt?
Live – Gebruikers kunnen er mee aan de slag.

Het handige aan deze indeling is dat het ook laat zien hoe je je carrière kunt ontwikkelen. Als junior begin je bij implementatie en testen. Naarmate je groeit, ga je ook meedenken over het technisch design en uiteindelijk bij de ideation en functionele eisen fasen.

Deze sessie gaat niet over technische skills, maar over alles eromheen.

Codam versus de echte wereld
Willem maakte een interessante vergelijking met Transcendence, het bekende Codam eindproject. Bij Transcendence krijg je de ideeën en technische eisen aangeleverd, maar moet je zelf het technische design maken. En dat is een probleem dat veel studenten onderschatten.

In de praktijk werk je meestal met bestaande code. Je hebt daarnaast échte gebruikers die feedback geven. Je moet rekening houden met legacy systemen en bedrijfsregels. En soms kun je niet zomaar die nieuwe hippe technologie gebruiken omdat het niet past in de bestaande infrastructuur.

Maar het belangrijkste verschil is dat je eerst het grote plaatje met zien voordat je begint met bouwen. Een technisch design helpt daarbij. Anders loop je tijdens de ontwikkeling tegen muren aan en moet je in het ergste geval alles opnieuw doen.

Beperk de risico’s: het geheime wapen van een software ontwikkelaar
Willem introduceerde een gedurfd perspectief: zie software-ontwikkeling als risicomanagement.
Er zijn twee terugkerende risico’s in elk project:
– Het werkt niet zoals het zou moeten
– Je haalt de deadline niet

Hoe verklein je de risico’s? Korte feedback loops. Dat klinkt simpel, maar het ligt aan de basis van alle goede software ontwikkelingsmethoden en waarom dit opgenomen is in veel industriestandaarden.

Agile is meer dan scrum en sprints
Een veel gehoord misverstand wilde Willem addresseren: “Agile is niet hetzelfde als sprint of scrum.” Scrum is gewoon één manier om agile te doen. Agile zelf is een filosofie over flexibel werken en snel reageren op veranderingen.

Zijn tip voor Codam-studenten die tijdens sollicitatiegesprekken naar hun ervaringen met agile worden bevraagd: pak je Transcendence-project op een agile manier aanpakken. Houd bijvoorbeeld wekelijkse meetings met je teamleden. Dan kun je straks eerlijk zeggen dat je agile-ervaring hebt – iets waar werkgevers naar zoeken.

Waarom projecten mislukken en hoe voorkom je dit
Willem somde de klassieke valkuilen op:
– Onverwachte complexiteit waar niemand eerder rekening mee hield
– Onrealistische deadlines die tijdens brainstormsessies worden bedacht
– Teams die afhankelijk zijn van elkaar
– Steeds veranderende eisen
– “Merge hell” – de code werkt apart, maar niet samen
– Problemen die pas bij het testen ontdekt worden

Voor elk probleem had Willem praktische oplossingen:
– Maak duidelijke technische ontwerpen om verrassingen te voorkomen
– Verdeel het werk in kleine stukjes om flexibel te blijven
– Houd standups om het tempo erin te houden
– Plan sprints om problemen vroeg te ontdekken
– Doe pair programming om testproblemen te voorkomen
– Gebruik code reviews om het samenvoegen van code soepel te laten verlopen

De kracht van prototypes en korte feedback loops
Een van Willem’s belangrijkste tips: maak gebruik van wireframes en prototypes om al in een vroeg stadium feedback van gebruikers te krijgen. Het doel is simpel: houd de feedback loops zo kort mogelijk. Elke keer dat je feedback krijgt, kun je bijsturen voordat het te duur wordt om te fixen.

Tools en afstemming
Bij Rootline gebruiken ze GitLab om agile te werken. Maar het interessantste was hoe ze prioriteiten stellen: ze blijven dicht bij de wensen van het salesteam. Voor hen draait het om zoveel mogelijk deals sluiten met oplossingen die daarop aansluiten. Bij andere bedrijven kan dit anders zijn en heeft de product manager vaak een belangrijke rol. Het uitgangspunt zal niet afwijken: de technische uitwerkingen moeten aansluiten bij de bedrijfsdoelen.

Het grotere verhaal
Willems boodschap was duidelijk: een software project is veel meer dan alleen implementatie. De beste ontwikkelaars begrijpen de gehele keten: van idee tot product. Ze snappen hoe je risico’s vermindert met goede processen. En ze vergeten niet wat ze aan het bouwen zijn.

Voor Codam-studenten die straks de arbeidsmarkt opgaan, waren dit belangrijke inzichten. De behandelde vaardigheden leer je niet door programmeeropdrachten uit te voeren, maar heb je wel elke dag nodig in je werk.

Ontdek meer masterclasses op onze YouTube kanaal.