Bij Emico willen we altijd de beste zijn. En daar horen ook de beste developers bij. Maar wat maakt een developer nou precies tot een goede developer? Over welke eigenschappen moet hij/zij beschikken?
In dit artikel geven we je 12 eigenschappen die je misschien niet allemaal verwacht had.
Pas jij in dit plaatje? Laat het weten, want we gaan graag samen de uitdaging aan om ook van jou een eindbaas te maken! 🙂
1. Je bent zelfstandig
Ja, vrijwel iedere functie vraagt wel een bepaalde mate van zelfstandigheid. Bij een (goede) programmeur is dit misschien net een beetje meer.
Als moderne programmeur is het belangrijk dat je goed kunt overleggen, met zowel collega’s als klanten. Je moet namelijk weten waar je aan toe bent en niet constant tijdens het werken met onbeantwoorde vragen zitten.
Maar nog belangrijker is dus dat je zelfstandig ook sterk bent! Je moet vaak zelf op zoek naar een oplossing bij nieuwe vraagstukken en ook die haast niet op te lossen bugs vragen een zelfstandige benadering.
Ondanks dat je steun haalt uit feedback van anderen en opdrachten keurig naloopt, ben jij uiteindelijk degene die de klus moet klaren. Met zelfstandigheid merk je zelf ook het beste wat jouw sterke en zwakkere kanten zijn als developer, en dat is handig voor de toekomst. Ondanks deze gewenste mate van zelfstandigheid weet je een goede balans te vinden en sla je niet onnodig veel tijd kapot, als je weet dat een collega jou hier veel sneller mee kan helpen. Maar je gaat ook niet altijd van deze collega uit en spaart zaken op en neemt die dan gezamenlijk door. Kortom: efficiënt tijdsmanagement is een belangrijke skill!
2. Je bent leergierig
De ontwikkelingen in development volgen elkaar in rap tempo op. Wat je gisteren geleerd hebt, kan bij wijze van spreken morgen alweer verouderde kennis zijn.
Het is daarom goed om een leergierige mindset te hebben. Kennis doe je bij voorkeur op door je volledig in te lezen in nieuwe frameworks of technieken, te sparren met collega’s en uiteraard aan de slag te gaan met deze nieuwe technieken.
3. Je hebt een obsessie met security en kunt denken als een hacker
Wanneer je grote stukken code oplevert, wil je natuurlijk dat je harde werk zo goed mogelijk beveiligd is en verschillende vangnetten heeft, mocht er onverwacht iets aangepast worden.
Daarom is het goed om als developer te weten hoe je je project beschermt. Dit doe je met name door te denken als een hacker of andere internetcrimineel. Wat zijn mogelijke gaten in de code die je oplevert?
Het is bijvoorbeeld aan te raden om uitgebreide kennis te hebben van de OWASP top 10. Code waar op het gebied van veiligheid niet goed over is nagedacht is gevoelig voor bijvoorbeeld cross site scripting, SQL injection en andere criminele pogingen. Bij correct gebruik van de standaarden en beschikbare frameworks, zou je code hier nauwelijks vatbaar voor moeten zijn.
Het kan natuurlijk voorkomen dat je als developer toch een zwakke plek hebt in je software. Dit wil je niet en het is daarom belangrijk om te kunnen denken als een aanvaller van buitenaf.
Verplaats je in een hacker, en kom erachter waar de achilleshiel in je project zit. Zo kun je makkelijker verbeterpunten ontdekken en gevaren herkennen die je als maker van je eigen werk misschien over het hoofd zou zien.
Een goede kennis op dit vlak is dus een absolute must. Zonder veilige code kun je dit ook niet doorzetten naar productie.
4. Je bent op de hoogte van ontwikkelingen in het vakgebied en speelt hier slim op in
Wanneer je weet wat de vaktaal inhoudt en hoe je optimaal gebruik maakt van bestaande frameworks en technieken, heb je als developer al een streepje voor op de rest.
Doordat je laat zien dat je duidelijk verstand hebt van het huidige aanbod en dat ook nog eens toepast, ben je een specialist in je eigen werkveld.
Je blijft je ontwikkelen en houdt hierbij de markt goed in de gaten. Uit recent onderzoek onder professionals op Stack Overflow zie je dat JavaScript inmiddels de meest populaire techniek is en zie je dat een framework als React.js en Vue.js of Node.js flink in opkomst zijn.
Verdiep je hierin en zorg dat jij een absolute master wordt in deze talen. Kijk wat er beschikbaar is in de markt en blijf je ontwikkelen.
5. Je hebt geen last van het ‘Not invented here’ syndroom
Het ‘Not invented here’ syndroom houdt in dat je er heilig van overtuigd bent dat producten die door jouw bedrijf of jou zelf zijn ontwikkeld ook altijd de beste zijn. En nog verder dan dit, alles wat niet van eigen hand komt, is per definitie ook ‘ruk’.
Je kijkt niet naar zaken die zich buiten de organisatie afspelen, en daarmee gooi je je eigen glazen in. Door te kijken naar hoe andere developers te werk gaan, kun je namelijk flink je horizon verbreden.
Als je kunt inspelen op kansen die je ziet bij een ander, wordt je namelijk een developer die openstaat voor meer projecten die soms net wat anders in elkaar zitten dan je misschien gewend bent.
Dit is ideaal voor het bijspijkeren van jouw kennis en ervaring.
6. Je kunt je inleven in de klant en weet wat wel/niet past bij de wensen
Wanneer je aan een project werkt, moet je naar de wensen van de klant / product owner luisteren. Maar je kent ook het doel van de software en de oplossingen, en weet daardoor ook welke voorgestelde oplossingen van de klant minder goed werken.
Omdat je door een combinatie van kennis en inlevingsvermogen goed inspeelt op de behoeftes van de klant laat je zien dat je luistert naar wat er gezegd wordt, maar dat je ook eigen inbreng hebt. Dit zijn wel skills welke bij Emico met name vereist zijn voor de project-lead en scrummaster.
Jij bent namelijk de developer en weet hoe je het project zo goed mogelijk in elkaar zet met de middelen die je hebt en kunt daarbij de klant tevreden houden.
7. Je hebt geen tunnelvisie maar een open blik
Het is heel fijn dat je als ontwikkelaar je creatie goed kent en er helemaal in opgaat, maar let op dat je geen tunnelvisie ontwikkelt.
Door je zo erg te focussen op je eigen werk, kan het zijn dat je vergeet wat de architectuur en de markt nog meer te bieden heeft.
Houd je project goed in de gaten, maar zie wel wat je project nog meer nodig heeft. Je kunt op die manier ook beter omgaan met veranderingen en kritiek, en je werkt met een open blik.
8. Je bent creatief
Creativiteit is een must voor een goede ontwikkelaar, omdat je bezig bent met een programma of app te ontwikkelen waarbij soms allerlei ingewikkelde zaken of problemen komen kijken.
En hoe los je die zaken nu het beste op? Dit vergt een creatieve mindset.
Natuurlijk moeten de oplossingen niet ontzettend veel tijd en geld kosten, omdat dit ten koste gaat van je output en imago als developer.
Creatief zijn is het beginpunt, omdat out-of-the-box denken ervoor zorgt dat je met een breder perspectief werkt.
9. Je code klopt
Natuurlijk kan het zijn dat bij het samenvoegen van bepaalde delen blijkt dat er sommige dingen nog ontbreken of aangepast moeten worden. Toch is het zeker belangrijk om als developer je code goed in orde te hebben.
De juistheid en veiligheid van de gemaakte software wordt op die manier gewaarborgd, en bespaart jou en ook je collega developers een hoop tijd in het verbeteren van de code.
Neem je code serieus en werk efficiënt, en je zult zien dat het loont bij code reviews. Door je nette en aandachtige werkhouding ontwikkel je jezelf verder als een state of the art developer. Verder zorg je dat eventuele feedback van andere collega’s op jou merge requests ter harte wordt genomen, wordt verwerkt en wordt onthouden voor je toekomstige werk.
10. Je bent liever lui dan moe
Als je te nauwkeurig bent, bestaat er het gevaar dat je code misschien te ingewikkeld is. Een overgecompliceerde developer begrijpt zelf het beste wat hij of zij heeft gemaakt, maar voor de buitenwereld kan het vraagtekens oproepen.
Het is geen uitzondering dat een andere developer ooit verder moet gaan met jouw code. Zorg ervoor dat je code dan niet te ingewikkeld is en dat je simpel en efficiënt hebt geprogrammeerd.
Maak je werk niet moeilijker dan het hoeft te zijn, om jezelf in de toekomst een hoop extra tijdverlies en kopzorgen te besparen en het voor de anderen ook makkelijk te houden.
Verder is automatiseren een onderdeel van jouw leven. Je vergeet op een gemiddelde dag liever je ontbijt, dan dat je vergeet ‘iets’ te automatiseren. Je bent werkelijk gewoon ontzettend lui. Als je een handeling een 2e keer of een 3e keer hebt moeten uitvoeren, ben je al aan het nadenken over het automatiseren ervan. Repeterende taken heb je een bloedhekel aan, dit moet toch automatisch kunnen?
11. Je bent pragmatisch ingesteld
Door te beginnen met een goede basis, heb je als developer al een deel van het werk gehad. Als je de hele tijd twijfelt en niet goed weet hoe je het beste de puntjes op de ‘i’ moet zetten, twijfel je aan je eigen kwaliteit als developer.
Dit komt je werk niet ten goede en kost veel tijd. Je kunt veel beter kijken naar tussentijdse, nuttige oplossingen. Bovendien richt je je dan nog beter op de bruikbaarheid en effectiviteit van je project.
Meer rust in je hoofd, meer spreiding en efficiëntere uitkomsten zijn de resultaten van pragmatisch werken. Verder maak je zaken niet onnodig complex, je gaat geen hele ORM / proxy laag tikken (als deze nog niet bestaat) voor iets wat mogelijkerwijs in de toekomst ooit nodig zou kunnen zijn. Pragmatisch betekent overigens niet: ik doe hier wel even een core-hack, dan ben ik in 2 minuten klaar i.p.v. 1 uur. Je werkt altijd volgens de standaarden zodat kwaliteit en met name ook security en onderhoudbaarheid niet lijden onder een pragmatische aanpak.
12. Je hebt een bovengemiddeld analytisch vermogen
Met een onderzoekende en nieuwsgierige houding kom je vaak tot de beste resultaten. Je hebt een analytische mindset waarbij een helikopterview essentieel is voor het slagen van projecten.
Analytisch denken betekent ook dat je conceptueel kunt denken. Deze combinatie zorgt ervoor dat je lastige vraagstukken kunt oplossen. Een analytische developer stelt kritische vragen, zoekt relevante informatie op, legt verbanden en onderzoekt al deze factoren in zijn of haar analyse. Dit maakt het analytisch denken tot een eigenschap waarmee je snel en efficiënt bij de essentie van een probleem terechtkomt.