Onderzoeken hebben uitgewezen dat het "zelf schrijven kost nog altijd meer tijd" een gigantische misconceptie is. De tijdkosten zijn ongeveer gelijk, enkel verschuift waar die tijd aan gespendeerd wordt.
Bij het gebruik van maatwerk code, wordt deze ook vaak goed begrepen, gerecycled en zit hoe de code werkt vaak in het geheugen van de developers vast. Ze weten precies wat er gebeurt en typen het vaak uit zonder alteveel na te denken. Daarnaast werken veel zaken met dezelfde principes (al helemaal binnen eenzelfde bedrijf) en wordt deze code erg veel gerecycled.
De leercurve van nieuwe developers ligt dan wat hoger en dat kost wat meer tijd, maar aan de andere kant blijven deze developers belangrijke kennis bij zich dragen en kunnen ze met bijna alles werken onafhankelijk van gebruikte frameworks en libraries.
De tegenzijde, en waarom de tijd met frameworks en libraries praktisch gelijk speelt, en soms zelfs meer tijd in beslag neemt;
1 ) Je code is afhankelijk van partijen van 3e. Veel libraries zijn afhankelijk van anderen en wanneer er één updatet, moet er vaak een hoop mee. Dit veroorzaakt veel tijdverlies in onderhoud, testen en minder snel kunnen schakelen.
2 ) Wanneer zaken veranderen, moet iedereen weer iets bijleren
3 ) Met frameworks en libraries gaat er enorm veel tijd verloren aan planning en communicatie binnen bedrijven. Wat gebruiken we hoe en wanneer, waar je met maatwerk vaak gewoon direct aan de slag gaat. Het overgrote deel van tijdkosten bij frameworks en libraries zit'm in het plannen en documentaties, demo's etc van said libraries en frameworks bekijken. Je wint gegarandeerd op tijd dat je aan het typen bent, maar verliest enorm veel tijd in "opstarttijd" en "een snelle fix maken".
4 ) Onderhoud. Een maatwerk product draait meestal gewoon als hij af is en daar hoef je dan zelden tot nooit meer iets aan te doen. Het is erg zeldzaam dat je veel onderhoud hebt met zelf geschreven functies. Daartegenover staat dat je met libraries en frameworks soms geforceerd moet updaten wegens zero-days, andere security issues of de eindeloze cirkel van dependencies waarbij je in een heel web van afhankelijkheden zit.
5 ) Niet zozeer "tijd", maar kosten. En tijd IS geld en daarom belangrijk; Omdat ze zoveel minder efficiënt zijn, kosten frameworks simpelweg gewoon aanzienlijk meer.
---
Mijn anekdotische ervaring; Ik ben een maatwerker en heb in mijn tijd wel wat libraries gemaakt die behoorlijk veel gebruikt zijn. Ook wel een aantal WordPress en Magento plugins enz.
Ik ben mild bevooroordeeld en dat erken ik, maar dat komt omdat letterlijk mijn hele klantendatabase (welke overigens enorm loyaal is) bestaat uit mensen die allerlei klachten hadden over hun systemen. Van torenhoge vaste lasten (servers, onderhoudspakketten) tot klachten van traagheid en zelfs complete server crashes en time-outs.
Ik vervang dan hun product altijd vrijwel 1-op-1, tenzij ze toch meteen iets nieuws willen, met maatwek. Tenslotte draait het product al en is al bekend wat ze willen en wat het moet worden (dit maakt het relatief makkelijk om iets te maatwerken zonder technisch/functioneel ontwerp natuurlijk). Meestal verdwijnen dan de klachten ook als sneeuw voor de zon.
Een concreet voorbeeld vanuit mij is een website met een database van bijna 2 terabyte, en vaste serverkosten van zo'n 2.5k per maand, waarvan de telefoon dagelijks roodgloeiend stond met klachten.
Ik heb dat hele project in een kleine maand omgezet naar maatwerk voor 20.000 euro.
De serverkosten zijn nu 80 euro per maand (en dat is overigens al overkill, ding heeft bijna geen load meer) en de database is nu 455MB, met een losse database voor archivering welke 1.5gb bedraagt.
De telefoon gaat gemiddeld nog 1 keer per maand over.
Deze rewrite was 6 jaar geleden. Tot dusver geen onderhoud meer aan gehad. Extra info; de website heeft zo'n 24.000 actieve gebruikers tussen 9u 's ochtends en 17u 's avonds.
ivm de verlaging van serverkosten heeft de maatwerk investering zich dus al zeker 7 keer terugverdiend.
Ik heb, als ik even terug kijk in mijn administratie, nog 12 werkuren gefactureerd aan deze klant over de hele 6 jaar.
Ja, ik ben bevooroordeeld, maar je maakt mij niet wijs dat je dit voor elkaar krijgt met frameworks en libraries. Korte-termijn en losse kleine websitetjes maak ik zelf ook graag zo kant-en-klaar mogelijk, maar complexe systemen, no thanks.
[Reactie gewijzigd door CapnCrinkle op 18 februari 2025 17:54]