3min

Tags in dit artikel

, , , ,

Developers die de hele dag coderen, moeten continu beslissingen nemen. Dit is vermoeiend. De full-stack developer van vandaag moet verschillende taken uitvoeren en hierbij rekening houden met diverse technologieën. Denk hierbij aan een continuous integration (CI) en continuous delivery (CD) pipeline of aan verschillende programmeertalen die afhankelijk zijn van de client- en servertechnologieën die worden gebruikt. Bij iedere taak moet een developer veel verschillende beslissingen maken. Gebruiken we een library van derden om deze functie te implementeren of schrijven we de code zelf? Hoe moeten we deze code refactoren? Hoe automatiseren we dit proces? De lijst met vragen gaat maar door, waardoor developers vaak last hebben van ‘decision fatigue’ oftewel keuzestress. Als dit niet vroegtijdig wordt aangepakt, kan dit leiden tot het fenomeen ‘spaghetticode’, een code die moeilijk te volgen en te begrijpen is en later onmogelijk te ontwarren is.

Is keuzestress te voorkomen?

Keuzestress is echt niet te vermijden, maar we kunnen ons best doen om onze mentale energie zo goed mogelijk te benutten. Pair programming kan in dit geval erg nuttig zijn. Dit is een methode voor het ontwikkelen van software waarbij twee programmeurs tegelijkertijd aan hetzelfde probleem op dezelfde computer werken. Hierdoor kunnen developers nader tot elkaar komen en samen beslissingen nemen. Bovendien zorgt het voor minder keuzestress, omdat teams exact het denkproces van de ander kunnen volgen. Bij een code review is dit meestal niet het geval en heeft de reviewer meestal geen inzicht in het proces dat heeft bijgedragen aan het eindproduct. Daarnaast kunnen developers dankzij pair programming beter samenwerken, waardoor er sneller en beter beslissingen van hogere kwaliteit genomen kunnen worden. Kortom, voor welke keuze je ook komt te staan, het is één van de vele manieren waarmee developers onmiddellijk realtime feedback krijgen over de code die ze schrijven.

In sommige gevallen is het belangrijk voor het paar (pair) om het hele team bij een taak te betrekken. Denk hierbij aan het ontwerpen van een oplossing voor een specifieke technische uitdaging of andere onderwerpen waar iedereen binnen het team baat bij heeft. De diversiteit aan vaardigheden, achtergronden en ervaringen die een team met zich meebrengt, zorgt tenslotte voor robuuste oplossingen bij terugkerende problemen.

Spaghetticode vermijden

Werken op afstand zou tijdens pair programming geen negatieve invloed moeten hebben op beslissingen, mits developers actief communiceren en betrokken zijn bij het werk dat wordt gedaan. Ongeacht of je aan pair programming doet of niet, de realiteit is dat op afstand werken een uitdaging kan zijn als mensen niet genoeg betrokken zijn, wat vervolgens kan zorgen voor meer keuzestress.

Veel mensen zien de voordelen van werken op afstand. Je bent immers flexibeler, hebt geen woon-en werkverkeer, het comfort van thuiswerken etc.. Toch kan thuiswerken zonder een goede werkomgeving en uitrusting vaak moeilijk of ongemakkelijk zijn. Voor sommige mensen is het lastig om te stoppen met werken, daarnaast is het moeilijk om relaties binnen het team op te bouwen. Deze kansen gaan ofwel volledig verloren bij het werken op afstand of het kost veel meer moeite om ze te creëren. Om deze uitdagingen te overwinnen zijn waarden als communicatie, feedback, eenvoud, moed en respect belangrijk. Teamleden doen er daarom goed aan om bewust rekening te houden met deze waarden wanneer ze omgaan met teamgenoten.

Aangezien velen van ons de komende tijd op afstand blijven werken, zou ik ontwikkelaars willen adviseren om mentale energie te sparen voor beslissingen die er echt toe doen. Denk hierbij aan het ontwerpen of het testen van een nieuwe functie of het refactoren van een bestaande functie. Tenslotte kunnen sommige processen, zoals het schrijven van een script voor een repetitieve taak, eenvoudig worden geautomatiseerd. Hierdoor hoeven developers zich geen zorgen te maken en geen beslissing te nemen. Tenslotte codeert automatisering beslissingen zodat ze niet een tweede keer hoeven te worden genomen, zodat de processen consistent worden uitgevoerd en ze vindbaar zijn voor andere leden van het team.

Kortom, keuzestress is een probleem waarmee alle developers over de hele linie worden geconfronteerd. Door te zorgen voor goede communicatie kan dit probleem grotendeels worden opgelost. Dit stelt ontwikkelaars in staat om beter te coderen en spaghetticode te vermijden.

Dit is een ingezonden bijdrage van Wouter Sliedrecht, Regional Lead BeNeLux & Nordics bij VMware Tanzu. Via deze link vind je meer informatie over de mogelijkheden van het bedrijf.