Terug naar blog
Neem contact op met Jeffrey Jeffrey

Waarom maatwerk en hergebruik hand in hand gaan.

Binnen webdevelopment wordt maatwerk vaak gezien als het tegenovergestelde van hergebruik. Alsof je moet kiezen: óf alles uniek bouwen, óf werken met vaste bouwstenen. Maar in de praktijk versterken maatwerk en herbruikbaarheid elkaar juist.

Als beginnend fullstack developer merkte ik al snel dat “alles opnieuw bouwen voor elk nieuw project” niet hetzelfde is als maatwerk leveren. Sterker nog: het kan innovatie juist vertragen.

Wat verstaan we onder maatwerk? 

Maatwerk betekent letterlijk een product afstemmen op de wensen en behoeften van een klant. Bij maatwerk verwachten klanten niet alleen een oplossing die werkt, maar een oplossing die past bij hun processen, workflow en visie. Niet iets wat is gemaakt voor een brede selectie aan mensen. Aldus: https://coderower.com/blogs/what-is-custom-software-development/

Als developer zijn we dan al snel geneigd om “from scratch” te beginnen, maar dit hoeft niet altijd de juiste oplossing te zijn. Maatwerk betekent namelijk niet dat elke regel code die je maakt uniek is, maar juist dat de oplossing uniek is voor de betreffende klant.

Hergebruik ≠ copy-paste.

Je zou onder hergebruik copy-paste kunnen verstaan. Een oplossing die je doorslaat naar 28 andere projecten zonder echt na te denken, maar dat is niet helemaal wat ik hiermee bedoel. Als je naar een website kijkt en gaat nadenken over de informatie die getoond wordt aan een gebruiker, dan zie je hierin overeenkomsten. Zo heeft bijna elke website een afbeelding met een stuk tekst ernaast. Aan de voorkant is dit dan wel uniek, maar aan de achterkant is de code vaak wel gelijk aan elkaar. Als je dit neerzet op een manier waardoor het:

  • Modulair
  • Configureerbaar
  • Uitbreidbaar
  • Getest en stabiel

is, kun je dit aan de achterkant goed gebruiken om veel tijd te winnen en dus meer tijd over te houden om echt waarde te leveren voor een klant.

Waarom hergebruik maatwerk bevordert.

Door een sterke basis te hebben:

  • bespaar je tijd op terugkerende functionaliteit
  • verminder je fouten
  • creëer je consistentie
  • houd je meer ruimte over om echt waarden te leveren

Maatwerk zit niet in het telkens opnieuw schrijven van dezelfde logica. Het zit in hoe flexibel en doordacht je systeem is opgebouwd.

Juist door herbruikbare componenten slim in te zetten, wordt maatwerk schaalbaar en DRY (Don’t repeat yourself). Door je code DRY te maken zorg je ervoor dat je code makkelijk onderhoudbaar blijft door de meest efficiënte en korte weg te maken naar een oplossing. Dit zorgt er ook voor dat het leveren van support of het doorontwikkelen leuk blijft. Een principe dat bijna iedereen wel kent onder de woorden “Work smarter, not harder.”

Mijn oplossing

Wat mij opviel was dat ik voor website A een component aan het maken was, bijsprong bij website B om een strakke deadline te halen en vervolgens hetzelfde component weer aan het maken was. Dit vond ik zonde, website B had een strakke deadline en vervolgens zijn we tijd kwijt door dingen te doen die we al gedaan hadden ergens anders. Dit heeft mij gemotiveerd om iets te maken wat ons werk versimpelt door code op een hoger niveau DRY te maken. Hier ligt het voordeel van werken met WordPress, het is open source en je kan het dus uitbreiden en aanpassen zoals jij dat wilt.

LemonJuice 🍋

Begonnen als een idee om ons werk als developer makkelijker te maken, pitchte ik dit bij de andere developers en later bij de rest van het team. Het resulteerde in een hobbyproject dat stap voor stap groeit naar de behoefte van ons uit Lemone. Ik heb een plugin gemaakt waarmee wij als developers componenten zoals een hero naar de behoeften van een klant kunnen kneden, zonder daar kwaliteit voor in te leveren of designers in hun werk te beperken. LemonJuice levert een soort skelet, waarmee veelvoorkomende website-elementen al startklaar staan en wij als Lemone nog meer waarde kunnen leveren aan onze klanten zonder in budget te hoeven stijgen en iedereen dezelfde goede kwaliteit kunnen geven. Win-win dus.

Een indruk van LemonJuice

Onder de motorkap

Binnen de plugin maak ik slim gebruik van de open source-oplossingen die wij al gebruiken. Zo worden de blokken beschikbaar gemaakt voor Gutenberg dankzij het werk van Log1x in ACF Composer. En maak ik gebruik van het WordPress-filtersysteem om te zorgen dat de blokken aanpasbaar worden voor wat wij nodig hebben per project.

Verder zitten er slimheden in zodat de blokken vanzelf toegevoegd worden door de plugin. De plugin breidt zichzelf uit op basis van je actieve plugins. En vult hij dynamisch zelf een instellingenpagina met informatie voor de developer. Volledig klaar zal het natuurlijk nooit zijn, omdat we deze altijd weer verder kunnen uitbreiden of verbeteren. Maar hij is nu wel klaar genoeg om echt dingen mee te kunnen gaan bouwen en dat geeft mij wel een voldaan gevoel.

TL;DR

Wat begon als een simpele observatie: waarom bouwen we steeds opnieuw wat we eigenlijk al hebben? Heeft uiteindelijk geleid tot een oplossing voor het leveren van sterke kwaliteit en het snel leveren van maatwerk. Goede software draait immers niet altijd om wat je bouwt, maar om hoe je het duurzaam houdt.

 

Wil je sneller live met een website die écht past bij jouw organisatie, zonder in te leveren op kwaliteit? Met LemonJuice maken we maatwerk schaalbaar.

Laten we de mogelijkheden bespreken
Terug naar overzicht