Voorkom voortijdige optimalisaties

An article, posted 10 days ago filed in javascript, programming, premature optimisation, optimisation, premature, optimalisatie, versnellen, tijd & kostbaar.

Voortijdige optimalisatie, of premature optimisation, is een bekende neiging van veel software ontwikkelaars. Het is een idee verbonden aan Donald Knuth:

> We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%

Veel ontwikkelaars halen eer uit het maken van "slimme" oplossingen die het draaien van de code net een beetje sneller zouden kunnen maken. De nadruk ligt op zouden omdat het veelal niet gebaseerd is op het daadwerkelijk meten aan de applicaties. Slechts door het applicatiegedrag goed te monitoren kunnen de échte performance problemen geïdentificeerd worden.

Erger is dat er kosten verbonden zijn aan zulke voortijdige optimalisaties:

  1. Het kost vaak extra tijd om een feature op te leveren (wat mij betreft niet het ergste)
  2. Het levert vaak code op die minder i…

Onder eigen verantwoordelijkheid

An article, posted more than 13 years ago filed in ruby, efficientie, tools, automatisering, slim, tijd, eigenwijs, scripting, sitepoint & enterprise.

Het einde van het jaar nadert. Op zich zit het met het aantal opdrachtgevers voor mij dit jaar na 1 jaar zelfstandigheid wel goed. Maar m'n inkomsten leunden dit jaar wel sterk op één opdrachtgever. Hoewel ook in het contract duidelijk wordt gemaakt dat het geen werkgever-werknemer relatie is is er één argument die het onomstotelijk bewijst dat ik de opdracht onder eigen verantwoordelijkheid en zonder gezagsverhouding uitoefen. Eventuele vragen van de belastinginspecteur zou ik dan ook als volgt beantwoorden:

> “Kunt u het zich voorstellen dat iemand bij een grote financiële instelling, een project automatiseert met een relatief onbekende scriptingtaal genaamd ‘ruby’ [1]? Nee toch? Dat moeten toch minimaal Enterprise oplossingen zijn binnen toch minimaal een Microsoft SitePoint of iets dergelijks, niet? Toch doe ik het, en heb ik ze weten te overtuigen van de kracht: simpelweg omdat de meest efficiënte oplossing bleek te zijn voor hun probleem. Geen gedoe over licentie aanvragen …

Niet af.

An article, posted more than 13 years ago filed in verspilling, demo, concept, waarde, afmaken, fiets, extremisme, zonde, demonstratie, idee, uitvoering, tijd, bouwen, uitvoeren, interessant & afhaken.

Iets waar ik zelf het meeste moeite mee heb is het afmaken. Het concept bedenken, meebouwen aan de uitvoering: geen probleem. Maar als het enigszins werkt en dat laatste kleine ‘beetje’ moet nog gedaan moet worden om het af te krijgen, dan wil er bij mij een knop om die mij laat afhaken. Bijna af en ik ga denken aan andere dingen die ik dan interessanter vind.

En toch. Wat is iets waard wanneer het ‘bijna’ af is? Hoeveel beter is dat als een idee zonder uitvoering? Een fiets met een ketting die niet lekker loopt is een fiets waar je niet op wilt fietsen. Maar het is wel een fiets. Een waardeloze fiets.

Natuurlijk leer je veel tijdens het proces van het maken. Maar als demonstratie van het idee is een halve uitvoering misschien wel het ergste dat een idee kan overkomen. Een mogelijk goed idee met een slechte demonstratie wordt misschien wel een slecht idee[1].

Ik moet er echt tegen vechten, en moet mijzelf ook terecht wijzen. Wat is een verhaal waard als je zinnen niet goed…