Hoe helpen coderichtlijnen mij als programmeur


Programmeurs zijn vaak eigenwijs en snel verveeld. We weten wat het beste is en willen snel op zoek naar nieuwe uitdagingen. Het onderhoudbaar maken van code komt daardoor dan ook minder snel in ons op. Maar toch gaan we vroeg of laat met onderhoud te maken hebben. En dat kan heel snel gebeuren als je na een maand  je eigen code terug leest. Tot die tijd zeggen we teksten als: “maar alles werkt toch prima”, of “dit is zo ingewikkeld dat het niet meer eenvoudiger kan”. Als je de tien richtlijnen voor beter onderhoudbare software van de Software Improvement Group (SIG) bekijkt worden per richtlijn dit soort bezwaren weerlegd. De argumenten daarbij hebben mij overtuigd waardoor ik de richtlijnen ben gaan volgen.

De tien richtlijnen van de SIG werken dus in mijn voordeel als programmeur. De tien richtlijnen zijn: ‘Schrijf korte stukjes code’; ‘Schrijf eenvoudige code’; ‘Hergebruik code’; ‘Gebruik weinig parameters’; ‘Geef code zijn eigen plek’; ‘Maak verbanden losjes’; ‘Houd balans’; ‘Houd totale code klein’; ‘Automatiseer testen’; ‘Schrijf nette code’.

De tien richtlijnen van de SIG om beter onderhoudbare software te schrijven zijn eigenlijk samen te vatten in een korte zin: “Houd het simpel”. Dit principe is al jaren bekend bij ontwikkelaars onder het motto KISS, Keep It Stupid Simple. Daarvoor was het principe al eeuwen bekend bij ingenieurs zoals de genie Leonardo da Vinci. Als je een machine eenvoudig houdt, kan er ook minder aan stuk gaan. Mocht de machine dan toch stuk gaan, dan is een eenvoudige machine makkelijker te repareren.

Als je kijkt naar de tien richtlijnen dan is dat KISS principe makkelijk te herkennen. In de richtlijnen komen vaak synoniemen van simpel voor, zoals kort, weinig, klein en eenvoudig. Maar ook bij de minder opvallende vergelijkingen draait het om eenvoud. Bijvoorbeeld de regel ‘Geef code zijn eigen plek’, versnelt het zoeken naar de juiste plek voor code veranderingen. En zo geldt voor alle richtlijnen, maak het zo eenvoudig mogelijk, dan is het makkelijker te begrijpen en dus ook te onderhouden door iemand die niet zelf de code heeft geschreven.

blank

Laszko van Kessel

Meer informatie? Neem contact met mij op!



blank

Een simpele machine met een enorm effect


Naast het KISS principe zijn de richtlijnen ook nog eens doordrenkt met een ander motto: “Meten is Weten”. De richtlijnen van de SIG hebben bijna allemaal een getal die als streefwaarde geldt. Die getallen zijn voor een deel van de richtlijnen gebaseerd op wetenschappelijk onderzoek naar bijvoorbeeld de capaciteit van het menselijk brein.

Daarnaast heeft de SIG ook jarenlang miljoenen regels softwarecode geanalyseerd. Uit die analyse blijken veel streefwaarden vast te stellen. Neem bijvoorbeeld de streefwaarde van de dekkingsgraad van 80% bij de regel ‘Automatiseer testen’. Die 80% is aan de hand van de analyses overwogen genomen.

Wat vind ik nu zo fijn aan dit soort streefwaardes? Ten eerste geeft een getal natuurlijk houvast. Je kan op een gegeven moment tevreden zijn met een verbetering. Ten tweede gebruik ik bewust het woord streefwaarde. Het zijn waarden om naar te streven, maar als je het niet haalt is dat niet per definitie fout of 0 punten. Nee, het betekent dat hoe dichter je bij zo’n streefwaarde zit hoe meer punten je verdient. Natuurlijk zijn er altijd uitzonderingen, als het grootste gedeelte van het gehele systeem maar voldoet aan de streefwaarde.

Deze twee principes, KISS en Meten is Weten, zijn natuurlijk al lang onderdeel van ons vak als software programmeurs. Er is dan ook eigenlijk niks nieuws met deze tien richtlijnen van de SIG, maar ze zijn nu wel goed samengevat en goed toe te passen in de praktijk.


Laszko van Kessel

Laszko is ooit begonnen als archeoloog en in een ver verleden omgeschoold tot software developer. Tijdens deze studie was hij vooral enthousiast over HTML programmeren omdat je daar direct resultaat van je werk ziet. Inmiddels is Laszko alweer 6 jaar werkzaam bij OVSoftware waar hij op een grote diversiteit aan projecten wordt ingezet om software te ontwikkelen en verbeteren. Zijn specialiteiten zijn: .NET, C#, SQL Server, Angular en HTML en Software Kwaliteit.