KISS in webdevelopment

Nee, niet KISS de rockband
ook niet, de actie...

Het principe KISS staat voor Keep It Simple Stupid, en werd voor het eerst in de late jaren 70 gebruikt in programmeren. Op dat ogenblik stond het internet nog in zijn schoenen. Desalniettemin probeer ik dit principe zoveel mogelijk toe te passen in mijn dagdagelijkse job.

webdev boek met koffie

Nachtmerrie van elke developer

Een project is een ongeschreven boek. Vanaf het begin vormen de beslissingen die genomen worden de pagina’s. In webdevelopment kan een boek zeer snel gevuld geraken...

Denk aan hoeveel verschillende technologieën er zijn, binnen elke technologie dan nog eens de frameworks, werkwijzes, infrasctructuur, containerization, virtualization, orchestration, enzovoort.

Als developer start je ergens een job, en daar moet je legacy code en infrastructuur onderhouden en aanpassen. Stel je voor dat het project 100den dependencies heeft, geen documentatie, een CI/CD pipeline die meer complexiteit dan simpliciteit brengt, en een infrastructuur die volledig van de pot gerukt is... Het is de nachtmerrie van elke developer.

Maar als developer die het project start, moeten we daar ook op letten...

Mijn KISS principe is heel simpel:

“Als er een nieuwe developer start, moet hij/zij vanaf week 1 de hoofdlijnen begrijpen en kunnen meewerken.”

Dit betekent niet dat een project moet inboeten aan performantie of dat we terug moeten gaan naar opladen van bestanden via FTP... Maar ik vind dat de afweging altijd gemaakt moet worden:
- “Is de introductie van deze technologie in de stack ook daadwerkelijk het waard?"
- "Weegt de extra complexiteit op tegen het voordeel van de technologie?”

(Tip: een goede CI/CD pipeline maakt het leven van webdevelopers stukken gemakkelijker.)

vogels op een donkere plaats

Nachtmerrie van HR

Het is niet enkel een nachtmerrie voor developers. Het is ook een nachtmerrie voor HR.

Wij zijn een dynamisch bedrijf op zoek naar een NodeJS developer. Pluspunten zijn : docker, kubernetes, express of een ander framework, gulp, grunt, webpack, lodash, material ui, backbone, prototype.js, moment.js, vagrant, pm2, react, vue of angular, terraform, ..............

Een bedrijf zoekt altijd naar de witte raven. Hoe meer technologieën in een stack terecht komen, hoe minder potentiële werknemers je kan aantrekken. Weinig personen kunnen alles.

Stel dat je toch die ene webdeveloper tegen komt die op papier alles kan. Dan is het de vraag hoe lang die developer er zal over doen om de volledige stack te kennen en mee te werken. Kennis van technologieën betekent niet dat men deze al heeft laten samenwerken. Elke dag/week/maand dat iemand zich moet inwerken... is tijd die misschien naar nieuwe ontwikkelingen kon gaan als het geheel simpel gehouden was.

 

Met het KISS principe zorg je ervoor dat de technologie-stack klein en verstaanbaar gehouden wordt.
Het is mogelijk om met weinig technologieën een snel, mooi en schaalbaar product te maken.
Dit komt misschien over als een senior die niet mee kan met de snelheid waarmee de industrie verandert, maar niks is minder waar... Het gaat erom dat we als developer of engineer moeten maken dat onze code, infrastructuur en denkwijze snel kan overgedragen worden.

 

Deze (wat gedateerde) artikels geven een gelijkaardige kijk op het KISS principe...
Front-end: https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f?gi=ee5688fc3d1c 
Server: https://circleci.com/blog/its-the-future/