De zeven eigenschappen van effectieve software ontwikkelaars

Harm de laat

Geschreven door Harm de Laat op 15-12-2016
4 minuten leestijd

Hoe word je een effectieve software ontwikkelaar? Jarenlang heb ik gedacht dat software development vooral draait om het ontwerpen en implementeren van snelle algoritmes, het bedenken van efficiënte datastructuren en het schrijven van elegante syntax. De beste software developers beschikken immers over een diepgaande kennis van object georiënteerd design en schrijven moeiteloos software in tenminste 10 verschillende programmeertalen.

Natuurlijk is gedegen kennis van het programmeervak essentieel. Echter, bij Kabisa zijn we ervan overtuigd dat de beste software developers beschikken over meer dan dat alleen. Welke eigenschappen heb je dan nog meer nodig om een effectieve software developer te zijn?

1. Luisteren

De beste software ontwikkelaars kunnen ontzettend goed luisteren en weten de woorden van een klant of van de business mensen te vertalen naar een technisch ontwerp. Ze stellen open vragen en laten de klant vertellen. “Waarom vind je deze feature belangrijk?”. “Wat is de belangrijkste user-story en waarom?”. “Wat levert de business de meeste waarde op?”. Ze vragen door en proberen de vraag achter de vraag te achterhalen. Ze voorkomen het doen van aannames en luisteren zonder direct een oordeel te vellen. Waarom wil de klant dat precies? Welke waarde heeft een feature voor de klant? Waarom heeft een feature prioriteit? Effectieve software ontwikkelaars proberen op deze manier er achter te komen wat de klant precies wil. Immers, een prachtige technische oplossing voor een probleem waar de klant niet om heeft gevraagd is nutteloos.

2. Samenwerken en co-creatie

Effectieve software ontwikkelaars zijn team-players. Ze werken samen, met elkaar én met de klant. Ze hebben regelmatig overleg over de voortgang van hun project, benoemen knelpunten en bedenken samen oplossingen voor problemen. Effectieve software ontwikkelaars betrekken hun klant of Product Owner in het proces en valideren hun werk zo snel mogelijk. Ze maken gebruik van pair programming omdat twee meer weten dan één. Dat levert betere code op en reduceert de kans op fouten en bugs achteraf. Pairen is bovendien leuk en je leert er ontzettend veel van. Ze communiceren graag en werken bij voorkeur in teamverband. Neem maar afscheid van het stereotype computernerd die het liefst alle sociale contacten vermijd. Effectieve software developers geloven in co-creatie en weten die manier slimme en passende oplossingen te bedenken!

3. Overzien van het geheel

Mooie, heldere en efficiënte code schrijven is belangrijk (we schreven hier al eens een blogpost over). Effectieve developers concentreren zich echter niet alléén op het schrijven van de beste regels code. Waar nodig concentreren ze zich op een detail, maar ze blijven zich altijd bewust van het groter geheel. Ze weten dat het werk van vandaag onderdeel uitmaakt van een systeem. Dat systeem heeft waarde voor de klant. Effectieve software developers kijken daarom vooruit, stellen doelen voor vandaag, de huidige sprint en het totale project. Niet voor niets zeggen we bij Kabisa: “Where some see code, we see a canvas”.

4. Boyscout mentaliteit

Scouts hebben een belangrijke regel: “Laat het kampeerterrein altijd schoner achter dan toen je het aantrof”. Effectieve software developers laten geen rommel liggen. Als ze code tegenkomen die beter had gekund dan pakken ze het direct aan. Ze passen gaandeweg kleine verbeteringen toe in de code zodat het geheel telkens beter wordt. Ze voegen ontbrekende software-testen toe en hier en refactoren daar waar nodig. Slechte code leidt tot problemen en bugs in de toekomst. Effectieve software ontwikkelaars weten dat bugs oplossen véél tijd kost en zetten daarom alles op alles om bugs zoveel mogelijk te voorkomen.

5. Kennisdelen

Effectieve developers weten dat kennis delen met anderen belangrijk is. Ze worden wijzer van anderen door conferenties te bezoeken, boeken te lezen, podcasts te luisteren of screencasts te bekijken. Wanneer ze zelf kennis en ervaring hebben opgedaan over een bepaald onderwerp zullen ze deze kennis met anderen delen. Om dat goed te kunnen doen moeten ze een verdiepende slag maken in het onderwerp en de materie volledig eigen maken, waardoor ze het materiaal niet alleen goed begrijpen maar ook goed kunnen uitleggen aan anderen. Effectieve developers zijn eigenaar van het onderwerp en worden door anderen gezien als dé autoriteit op hun vakgebied.

6. Falen

Keer op keer heeft de geschiedenis aangetoond dat de beste innovaties ontstaan uit eerder mislukte experimenten. Effectieve developers leren van gemaakte fouten en mislukkingen en weten daaruit inspiratie te halen en genereren hieruit nieuwe ideeën. Ze werken daarom met prototypes en vragen klanten om directe feedback om hiermee het development traject sturing te geven. In veel bedrijven en organisaties heerst helaas een cultuur waarin falen onaanvaardbaar is. Effectieve developers weten dat falen kan en mag!

7. Weten dat je niets weet

“Ik weet dat ik niets weet” is een bekend gezegde dat bekend staat als de Socrates Paradox en is ook van toepassing op het vak van software development. Een werkelijk effectieve ontwikkelaar is zich bewust van eigen beperkingen en realiseert zich dat hij/zij slechts een klein beetje kennis heeft in zijn of haar vakgebied en dat er een nog een wereld van informatie, kennis en kunde is waarvan hij/zij nauwelijks op de hoogte is. Een effectieve ontwikkelaar weet dat vele wegen naar Rome leiden en staat daarom open voor de mening en expertise van anderen. Effectieve ontwikkelaars beginnen bij de basis en behouden een beginners-mentaliteit aangevuld met hun (jarenlange) ervaring.

Bovenstaande eigenschappen hebben weinig te maken met het schrijven van goede kwaliteit code. Is dan helemaal niet van belang? Jazeker wel, dat is je basis, maar het gaat erom wat je daar mee doet. Bij Kabisa zien we kennis en kunde van het programmeervak als voorwaarde om te kunnen groeien tot een effectieve software developer die meerwaarde biedt aan onze organisatie en die van klanten. Wil jij eens praten met één van deze ontwikkelaars of kennismaken met ons bedrijf? Neem dan contact op.

Harm de laat

Harm de Laat

Ondernemer met een software hart.