Hoe selecteer je een goede (freelance) programmeur?
Tips voor en door freelancers. Deze keer een speciale editie, omdat freelance software ontwikkelaar Timothy Kleijn zijn tips voor opdrachtgevers schrijft: 6 Tips om een goede freelance programmeur te kiezen voor je opdracht.
Het uitkiezen van een goede programmeur is voor veel mensen erg moeilijk. Het vakjargon alleen al kan ondoordringbaar lijken. “Een PHP programmeur met kennis van Laravel of Symfony die ervaring heeft met AWS, REST API’s, en Git.” Je vindt bovendien zelden precies waar je naar op zoek bent. En wat dan? Iemand met twee jaar ervaring nemen in plaats van de beoogde vijf jaar?
Of toch die webbouwer die geen kennis van AWS heeft? Of moet je misschien overwegen je app in een hele andere taal te laten maken? En zelfs al slaag je erin iemand te vinden die wel aan je eisen voldoet, hoe weet je zeker dat diegene echt goed is in wat die doet? We kennen allemaal de horrorverhalen van half afgewerkte projecten die na twee jaar en tienduizenden euro’s aan investeringen in de prullenbak verdwijnen.
Waar begin je?
Wat is een normaal uurtarief voor freelancers binnen IT & Development? Je leest het in de uurtarieven factsheet.
1. Oordeel niet te snel
Dit is vooral relevant bij aanvang van een nieuw project. Het is natuurlijk altijd goed om je te verdiepen in de mogelijkheden. Wat zijn de beste programmeertalen om jouw doel te bereiken? Wat zijn de meest gebruikte technologieën? Dit kan een waardevol beeld geven van wat er allemaal mogelijk is. Laat dit echter niet je uiteindelijke keuze bepalen. Er zijn meerdere wegen naar Rome.
“Er is niet 1 programmeertaal het beste om je doel te bereiken. Er zijn meerdere wegen naar Rome.”
Na het lezen van een aantal blogs kan een bepaalde technologie snel de perfecte oplossing lijken. Naast dat je met een overhaaste beslissing een suboptimaal product kan krijgen, kan je onbedoeld heel veel deuren voor jezelf sluiten. Veel technologieën zijn onderling namelijk gemakkelijk uitwisselbaar. Waar de ene programmeur het liefst met Django werkt, gebruikt de ander Ruby on Rails. Uiteindelijk kan je met beiden hetzelfde bereiken.
Luister dan ook altijd naar de voorgestelde oplossingen van meerdere partijen. Je kan maanden blijven zoeken naar dat team ontwikkelaars die bekend zijn met technologie x, terwijl er misschien een groep programmeurs bekend met technologie y klaar staat om direct te beginnen.
2. Taal is niet alles
Als alles eenmaal loopt zal je misschien op een gegeven moment nieuwe ontwikkelaars aan moeten nemen. Helaas is de vraag nog altijd groter dan het aanbod, dus misschien is een nieuwe programmeur met kennis van jouw gekozen programmeertaal niet zo gemakkelijk te vinden. Er zijn heel veel verschillende programmeertalen, en terwijl “Java” misschien heel anders klinkt dan “C#” zijn de meeste programmeertalen vrij nauw aan elkaar verwant.
Bepaalde basisprincipes komen in veel talen terug. Een goede programmeur kan zich over het algemeen vrij snel een andere taal eigen maken. En hoewel een exacte match natuurlijk altijd de meest gewenste keuze zal zijn, is een goede programmeur die bekend is met een verwante taal ook vaak een goede keuze. Dus of je nou zoekt naar een Python of WordPress programmeur, of misschien zelfs een Wix specialist, een goede programmeur zal zich makkelijk kunnen aanpassen.
3. Breder is beter
Mensen hebben snel de neiging te geloven dat iemand met tien jaar ervaring met één bepaalde technologie per definitie beter is dan iemand die in die tien jaar meermaals geswitched is tussen verschillende technologieën. “Je kan uiteindelijk toch maar goed zijn in één ding? En bovendien, je gaat toch werken met een team! Ieder teamlid heeft zijn of haar eigen expertise, en er is geen noodzaak voor overlap.”
“Het is belangrijk dat iemand een specifieke expertise heeft, maar hoe meer een ontwikkelaar weet van de aangrenzende technologieën, hoe beter.”
Helaas is dat vaak de overheersende gedachte bij opdrachtgevers. In werkelijkheid kan je alleen goed samenwerken in teamverband als je ook weet waar de ander mee bezig is. Natuurlijk is het belangrijk dat iemand een bepaalde expertise heeft, maar hoe meer een ontwikkelaar weet van de aangrenzende technologieën, hoe beter.
Ervaring met verschillende talen kan in veel gevallen zelfs een grote plus zijn. Verschillende programmeertalen bieden vaak verschillende oplossingen voor hetzelfde probleem. Een programmeur die bekend is met meerdere talen kent waarschijnlijk dus ook meerdere manieren om een probleem aan te pakken. En die kennis is nooit weg. Zelfs als jouw project maar in één taal geschreven is. Bovendien kan deze programmeur zich waarschijnlijk sneller aanpassen aan nieuwe ontwikkelingen. Iemand die breder georiënteerd is, is vaak een betere keuze dan iemand met een laser focus op één technologie.
Misschien vind je dit ook interessant:
4. Geen woorden, maar code
Goed. Je hebt je kandidaat, je hebt een oriënterend gesprek gehad, en de kandidaat komt betrouwbaar over… Maar hoe weet je nu of je echt een goede programmeur aan de haak hebt geslagen? Zelf ben je geen IT’er, dus het is moeilijk om het kaf van het koren te scheiden.
“Er zijn genoeg diensten die je kunnen helpen te weten of je echt een goede programmeur aan de haak hebt geslagen.”
Gelukkig zijn er meer dan genoeg diensten die je hierbij kunnen helpen. Hackerrank en Codility zijn twee van de grotere spelers. Je kan een programmeur op deze sites remote een aantal programmeer-tests laten maken. Vrijwel alle talen, en alle technologieën worden op deze platforms ondersteund. Na afloop krijgt de kandidaat van de site een aantal scores toegekend voor onder andere de efficiëntie van de geschreven code, de foutgevoeligheid, en het aantal rand scenario’s waar de programmeur rekening mee heeft gehouden. Een veel beter beeld ga je niet krijgen!
5. StackOverflow en GitHub
StackOverflow en GitHub zijn twee sites die bij veel programmeurs een centrale rol spelen. StackOverflow is de ultieme vragenbank voor technische vragen. Programmeurs stellen hier vragen, in de hoop dat er ergens op de wereld een andere programmeur is die het antwoord weet.
In totaal zijn hier door de jaren heen meer dan 18 miljoen vragen gesteld. Als je als programmeur vragen van anderen beantwoordt, krijg je punten toegekend. Een goede reputatie – een paar honderd punten – op StackOverflow betekent dat de programmeur actief is op de site, en waarschijnlijk hier en daar een collega aan een oplossing geholpen heeft. Dat zijn de mensen die je zoekt.
Daarnaast is er GitHub. Op GitHub dragen veel programmeurs vrijwillig hun steentje bij aan grote open source projecten. Dat zijn software projecten die vaak gratis door iedereen gebruikt kunnen worden. Het gaat hier lang niet alleen om kleine hobby projecten.
Grote software oplossingen zoals Django (wat de basis is van onder andere Instagram en Pinterest), Ruby on Rails (waar AirBnB en Spotify op draaien), en Linux (de kern van onder meer het Android besturingssysteem) worden doorontwikkeld op GitHub. Programmeurs die bijdragen aan open source software zijn vaak goed technisch onderlegd. Bovendien toont het aan dat ze ook buiten werktijden graag bezig zijn met programmeren.
Vraag je kandidaten of ze actief zijn op deze sites, en met wat voor dingen ze zich dan bezig houden.
6. Twee paar ogen
Alles leuk en aardig, maar uiteindelijk ga je dan toch met een partij in zee, en hoe weet je nou echt dat er geleverd wordt, en dat de code goed genoeg is om over een paar jaar nog steeds te doen wat het moet doen? Per toeval kwam ik bij een klant een hele mooie oplossing tegen waar veel bedrijven wat van zouden kunnen leren.
Het is eigenlijk vrij simpel.
Bij software ontwikkeling wordt geschreven code vaak nagekeken door een andere programmeur. Een code review. Bij deze specifieke klant werd ik ingehuurd om een platform door te ontwikkelen, terwijl een ander, onafhankelijk bureau, mijn werk nakeek. Twee paar ogen zien meer dan één. En als die ogen ook nog is van verschillende onafhankelijke bedrijven afkomstig zijn zullen ze elkaar niet snel de hand boven het hoofd houden.
Je gooit niet zomaar je eigen reputatie te grabbel. Iemand die goed is in wat hij/zij doet vindt het over het algemeen geen enkel probleem om zijn of haar werk te tonen aan een collega. Als je zeker wilt weten dat het afgeleverde werk technisch goed in elkaar zit, is dit een hele mooie oplossing.
Dit artikel is geschreven door Timothy Kleijn. Nieuwsgierig naar de freelancers in Jellow? Vraag een demo aan en wij geven je online in 5 minuten een rondleiding. Liever persoonlijk contact? Neem dan contact op met Tom via [email protected] of bel naar 085 877 00 70.