Spoiler: die is absoluut geen einzelgänger!
Als je de doorsnee Nederlander vraagt om een software-developer te omschrijven, dan hoor je ongetwijfeld dingen als ‘nerds die wel wat sociale vaardigheden kunnen gebruiken’. Mensen denken al gauw aan mannen die niets anders doen dan coden en gamen.Een achterhaald stereotype natuurlijk. Maar hoe zit het dan wel? En welke eigenschappen en kwaliteiten heb je nodig om écht succesvol te zijn en blijven als developer?
1. Communiceer, communiceer, communiceer...
In de 20 jaar die ik actief ben in de IT-wereld - waarvan meer dan de helft bij Aviva Solutions - heb ik voor veel klanten gewerkt en aan nog wel meer projecten deelgenomen. Wat in al die tijd altijd het allerbelangrijkste is geweest en gebleven, is communicatie. De moderne programmeur is daar ontzettend goed in. Software-ontwikkeling valt of staat er immers bij.
Natuurlijk gaat er zelfs in de meest geoliede organisaties en ontwikkelteams wel eens iets mis. En in de projectteams waar ik deel van uitmaak, zie ik dat zulke issues - als ze er zijn - bijna altijd ontstaan doordat mensen niet goed of zelfs vergeten te communiceren. Iemand gaat op vakantie midden in een sprint en vergeet iets over te dragen. Of teamleden en ontwikkelteams geven niet goed aan waar ze precies mee bezig zijn. Het gevolg: dingen worden dubbel gedaan.
Een goede developer kan zichzelf uitstekend motiveren en werkt zelfstandig, maar is dus absoluut geen einzelgänger. Hij neemt het initiatief om continu in gesprek te blijven met directe collega’s en alle andere betrokkenen. Hou overzicht, plan en vooral: skip de denkballonnetjes. Communiceer, communiceer, communiceer!
2. Lever op tijd op
Het blijft moeilijk, die deadlines. Ontwikkelaars hebben vaak moeite met inschatten hoeveel werk iets is. Als je niet weet hoe lang iets duurt, dan is het erg lastig om op tijd op te leveren. Natuurlijk helpt de scrum-aanpak je om voorspelbaarder te worden en makkelijker deadlines te halen. Maar dat betekent niet dat je op je lauweren kunt rusten.
Als ontwikkelaar ben je verantwoordelijk voor jouw deel van de werkzaamheden, je moet dus een realistische planning en doorlooptijd kunnen afgeven. Als ontwikkelaar is het dus erg belangrijk om je met die planning te bemoeien en continu terug te koppelen wanneer iets meer werk kost dan verwacht. Tja deadlines, het blijft lastig...
3. Verdiep je in de klant(vraag)
Een goede software-ontwikkelaar zorgt dat hij de klant en eindgebruikers goed begrijpt. Hij neemt de tijd om zich te verdiepen in persona’s, user stories en vraagt actief door om zeker te weten dat hij iets bouwt waar de klant echt op zit te wachten. Zo’n verdiepingsslag zorgt ervoor dat je meer betrokken bent bij het project, en dat komt de kwaliteit van wat je bouwt alleen maar ten goede (daarover later meer).
Ben dus niet tevreden als je slechts een set specificaties krijgt voorgeschoteld, maar vraag door. Praat regelmatig met de klant. Zorg dat je weet waar je mee bezig bent, zodat je snapt wat je aan het bouwen bent. Daarin mag je als ontwikkelaar pro-actief zijn: is die informatie niet voorhanden? Ga er dan zelf naar op zoek.
4. Lever kwaliteit
Nog al zo’n inkoppertje - maar ja, dat zijn bijna al deze eigenschappen. Toch is dit te belangrijk om niet te noemen. Kwaliteit leveren betekent enerzijds bouwen wat de klant wil én anderzijds iets maken wat goed werkt. Om echt kwaliteit te kunnen leveren, moet je niet alleen begrijpen wat je klant en de eindgebruiker wil. Je moet er ook voor zorgen dat de verwachtingen van de klant goed gemanaged worden.
Bijvoorbeeld op het gebied van known issues en deelopleveringen (welke functionaliteit zit er al wel in en welke niet). Kwaliteit betekent ook dat je onderhoudbare programmatuur oplevert. Schrijf code met het oog op de toekomst. Er komen altijd aanpassingen en uitbreidingen op de applicatie die je bouwt. Heldere code met een goede en duidelijke structuur zorgt ervoor dat iemand anders er later makkelijk mee verder kan.
5. Hou je kennis up-to-date
Er is geen vakgebied dat zo snel verandert en ontwikkelt als het onze. Een goede developer zorgt dat hij bij blijft. Dat betekent cursussen volgen, vakliteratuur lezen, blogs en vlogs volgen, naar user group meetings & evenementen gaan en praten met je collega’s over wat er in het veld gebeurt. Zeker als het gaat om je eigen specialisme.
Maar het betekent niet dat je continu vooraan moet staan als er iets nieuws gebeurt. Dat mag natuurlijk wel, maar soms worden technologieën in een zeer prematuur stadium gedeeld met een selecte groep ontwikkelaars. Om uiteindelijk nooit tot wasdom te komen. Daarnaast kiezen maar zeer weinig klanten voor onvolwassen technologieën of producten. Voorkom dus dat je een hoop tijd verprutst.
Jonge mensen proberen vaak alles bij te houden. Dat lukt niet. Kies je eigen specialisme en focus je daar op. Probeer daarnaast de grote lijnen van wat er speelt in andere relevante vakgebieden (zoals e-commerce, online marketing en design) in de gaten te houden. Bij Aviva houden we regelmatig pizzasessies om die kennis met elkaar te delen.
6. Wees inventief en creatief
De ideale developer is niet alleen een kei in logisch redeneren en problemen oplossen. Hij is ook nog eens inventief en creatief. Dan heb ik het natuurlijk niet over design, maar over het bedenken van creatieve oplossingen. Over experimenteren, iets nieuws proberen te maken, iets waarvan je klant niet eens wist dat hij het nodig had. Of zelfs: waarvan niemand had gedacht dat het kon.
Zoals Ruben Meintema in zijn artikel op Marketingfacts aangeeft: “programmeren is in beginsel eigenlijk iets heel creatiefs. Je begint met een leeg document en alles wat je kan bedenken is mogelijk.” Juist het creatieve, inventieve aspect - dat je echt iets kunt scheppen - is wat programmeren zo leuk maakt. Een creatieve coder is niet alleen goed in het verbeteren van techniek en bestaande functionaliteiten, maar bedenkt ook graag nieuwe features. Je oplossing moet daarnaast niet alleen snel en goed leesbaar zijn, maar ook slim werken en praktisch zijn voor de gebruiker.
7. Zorg dat je wel tegen een beetje (keuze)stress kunt
Hoewel volgens Amerikaanse wetenschappers het vak van ontwikkelaar t.o.v. andere beroepen een lage stressfactor kent, is er toch zeker zo nu en dan sprake van. Denk aan de dynamiek die agile en scrum werken met zich meebrengt, de continue druk om de doorontwikkeling van producten en technologieën bij te houden, wisselende klanten en werkomgevingen, lange dagen als er echt iets opgeleverd moet worden. Het zijn allemaal voorbeelden van herkenbare stressfactoren.
Developers moeten bovendien de hele dag door keuzes maken. Welke productstack gebruik ik, hoe noem ik deze methode, is dit het juiste algoritme, moet ik mijn code opsplitsen en refactoren? Dat kan leiden tot decision fatigue: het maken van keuzes wordt steeds moeilijker naarmate je meer keuzes gemaakt hebt. En daar moet je wel tegen kunnen.
8. Je bent lekker flexibel (en vindt veel leuk)
Een 9-tot-5-mentaliteit? Dat past - als je het mij vraagt - niet bij het vak. Er wordt van je verwacht dat je zelf verantwoordelijkheid neemt voor je tijd. Dat betekent dat je de vrijheid hebt om rust te pakken als je daar behoefte aan hebt, maar ook extra inspanningen kunt leveren wanneer dat nodig is.
Flexibel betekent ook dat je allerlei verschillende dingen op je bord krijgt. Zeker bij een (platte) organisatie als Aviva Solutions. Soms ben je bezig met een e-commerceproject en dan weer met een intranet of portal. Zo nu en dan vragen we je om te adviseren voor weer een ander project of wil werken aan een eigen product. Je moet dus absoluut in staat zijn om diverse petten op te kunnen zetten. En het is erg handig als je veel dingen leuk vindt.
Aan jou de taak om je software goed te laten testen, door collega's en door de klant. Een succesvolle ontwikkelaar is niet bang voor een bugje!
9. Je bent kritisch op jezelf en je collega’s
Een hekel aan testen? Dat is lastig! Want zoals ik eerder al zei, is kwaliteit leveren essentieel. Een goede developer is kritisch op zijn eigen werk en op dat van zijn collega’s. En dat betekent dus ook: unittesten, voortdurend en op eigen initiatief elkaars code reviewen en grondige feedback geven. En ja, testen is echt een andere discipline dan programmeren. Daar kun je je in ontwikkelen.
Testen blijft een ondergeschoven kindje. Niet alleen bij ontwikkelteams, ook bij de opdrachtgever. Vaak denken klanten dat bureaus direct bugvrije software leveren, maar zoiets bestaat natuurlijk niet. Zorg er dus voor dat de klant weet dat de gebouwde software nog getest moet worden. Overtuig hem ervan dat dit echt moet gebeuren. Niet alleen door het ontwikkelteam, maar ook door de klant zelf en de eindgebruiker.
10. Je bent nieuwsgierig, ambitieus en een leuke collega
Natuurlijk zijn er nog zoveel meer kwaliteiten en vaardigheden waar je als software-developer in kunt uitblinken. Denk aan nieuwsgierigheid: je continu afvragen waarom dingen zijn zoals ze zijn en gaan zoals ze gaan. Die kritische, nieuwsgierige houding levert nieuwe, creatieve oplossingen op. Verder ben je bij voorkeur ook een sucker for details en een enorme perfectionist. Ik hoef je waarschijnlijk niet te vertellen hoe groot de gevolgen van kleine foutjes kunnen zijn. Als je ook nog eens ambitieus bent - continu wil blijven leren, groeien en beter werk wilt leveren - én een leuke, gezellige collega bent… dan heb je wat mij betreft het complete pakket te pakken.
Hallo. Ik ben je nieuwe collega!
En natuurlijk zijn we altijd op zoek naar zulke software ontwikkelaars. Zowel ervaren developers - die al deze zaken al onder de knie hebben - als junioren zijn van harte welkom om een kopje koffie te komen drinken. Op ons hoofdkantoor in Koudekerk aan den Rijn of op onze locatie in Eindhoven. Check onze teampagina of neem direct contact met mij, Randal van Splunteren, op via werkenbij@avivasolutions.nl.