Mindz developers

Grote schoonmaak!

Marc Selman - Wednesday 02 June 2010 - 23:21 - 176 x read
Stel je voor.....

Je werkt in een grote keuken in een restaurant. Het is ontzettend druk en er komen tientallen bestellingen tegelijk binnen. Je probeert zo snel mogelijk en zo handig mogelijk de belangrijkste bestellingen af te maken. Ondertussen wordt er een nieuwe oven bezorgd die geïnstalleerd moet worden.
Je kan iedereen goed tevreden houden want je eten smaakt goed!
Sommige mensen moeten langer wachten op hun maaltijd, maar gelukkig zien die mensen zelf ook dat het heel druk is en tonen geduld.
Om de zoveel tijd voeg je weer een totaal nieuwe smaak sensatie aan je menu toe.
Dit trekt nog meer mensen waardoor het nog drukker wordt.
Je vind het geweldig om te koken en merkt dat je andere mensen inspireert met de nieuwe smaken, het mooie servies en het heerlijke drinken.

Maar....
Al die tijd is je keuken alleen maar smeriger en rommeliger geworden, maar je hebt nooit tijd deze op te ruimen. Zo af en toe probeer je eens ergens een doekje overheen te halen, maar je weet eigenlijk dat het hozen met de kraan open is. Op een gegeven moment merk je dat je kook kunsten eronder beginnen te lijden. Een simpel gerecht duurt ineens langer omdat je eerst een pan moet afspoelen. Voordat je kan beginnen aan het omelet moet je eerst langs een stapel vuilniszakken en ook nog op zoek naar een heel ei.

Uiteindelijk zit er maar een ding op...
Schoonmaken, opruimen en de keuken logischer indelen zodat zo'n zelfde situatie niet zo snel meer op treedt.

Wij, als ontwikkelaars van Mindz hebben dit punt bereikt. We hebben nu, na twee jaar, echt de tijd genomen om een aantal zaken eens volledig onder handen te nemen. En kan jullie vertellen.... het voelt heerlijk!
Al die dingen die je normaal in "de keuken" om je heen ziet, waarvan je denkt "oh ja, dat moet ook nog eens" gebeurt ook eindelijk eens.
Ik ben er van overtuigd dat dit uiteindelijk het plezier en de snelheid van het werken in "de keuken" flink zal bevorderen.
Daarnaast zullen "de klanten" hun "gerechten" sneller ontvangen omdat we minder tussendoor hoeven "schoon te maken" of "op te ruimen".

Aangezien in nu toch in metaforen aan het praten ben, laat ik dat ook gelijk caching nog aanstippen.

Stel je voor dat er in ons restaurant iemand heet genaamd Willem Cache.
Willem kent de hele menu kaart uit zijn hoofd. Wanneer er iemand het restaurant binnen komt en die wil de kaart lezen, dan kun we een personeelslid naar de keuken sturen om daar een menu kaart te halen en deze te brengen. Dit is een 'dure' operatie. Wat we ook kunnen doen is Willem, die het menu uit zijn hoofd kent, deze laten vertellen. Hij hoeft nooit de keuken in en is dus sneller beschikbaar. De keuken wordt zo dus ontlast.
Dit klinkt natuurlijk heel mooi maar er zit een nadeel aan vast. Als we de menukaart aanpassen en opnieuw laten drukken, dan liggen er in de keuken nieuwe kaarten, maar Willem kent alleen de oude kaart nog. Oftewel, Willem moet van elke wijziging op de hoogte gesteld worden.
Stel je nou voor dat je niet alleen via de keuken, maar ook via de ober en via de bar een menu kaart kon krijgen!
Dan zou Willem alle drie de plekken in de gaten moeten houden. Of andersom, alle drie de plekken zouden Willem op de hoogte moeten houden van een wijziging.

Wederom is dit een van de dingen waar wij als ontwikkelaars van Mindz tegenaan gelopen zijn. Door het constante "koken" van nieuwe gerechten hebben we nooit de tijd genomen om dit soort zaken op orde te maken. Dus bij ons kon je inderdaad op meerdere plekken een "menu-kaart" ophalen. En wanneer er een wijziging was, wist Willem dit niet altijd even snel en kreeg je soms een oude menu kaart voorgeschoteld.
Echter, omdat we nu een groot deel kunnen opruimen kunnen we er voor zorgen dat de "menu kaart" maar op plek te halen is. En alleen Willem kent die plek. Dus iedereen die de kaart wil zien vraagt erom bij Willem. Op die manier is het voor alle klanten sneller toegankelijk en ze hebben altijd de nieuwste kaart!

In het bovenstaande voorbeeld is Willem natuurlijk de Cache. Het stuk geheugen waarin objecten die vaker benaderd worden opgeslagen kunnen blijven. Net zolang tot ze 'verlopen' omdat ze niet of nauwelijks meer opgevraagd worden, of tot ze veranderen, waarbij de cache geüpdate zal worden naar de nieuwste versie van het object.

Zoals je wellicht merkt, is programmeren aan Mindz alles behalve 's ochtends aankomen, een paar gerechten maken, een beetje schoonmaken en weer naar huis gaan. Maar juist een enorm veranderlijk, hectisch maar vooral erg andere manier van werken die heel veel voldoening kan geven.

Hiermee hoop ik een beetje duidelijk gemaakt te hebben hoe het als ontwikkelaar van een, zoals ik het noem, pioniers-platform, eraan toe kan gaan.
Ik ben in ieder geval enorm blij dat deze week onze keuken een heel stuk schoner en praktischer is geworden!
Latest Change by: Marc Selman on Thursday 03 June 2010 - 07:24

Comments

Chantal Klaver
Chantal Klaver -  (2010-06-03 07:29)
Goede vergelijkingen, waardoor ik het ook begrijp. Succes met de grote lenteschoonmaak.
Ronald van den Hoff
Ronald van den Hoff -  (2010-06-03 07:50)
Marc, wat een mooi stuk!! Jebent blijkbaar niet alleen een programmeurtopper, maar chef-kok, reorganisator en inspirator tegelijk!
Marc Noks
Marc Noks -  (2010-06-03 07:54)
 Mooi verwoord, Sel :)
Rick van der Arend
Rick van der Arend -  (2010-06-03 08:01)
Leuk om te lezen dat er voortgang in blijft zitten! Veel succes met de verdere schoonmaak.

Groet,
Rick
Marielle Sijgers
Marielle Sijgers -  (2010-06-03 08:11)
Jullie zijn absoluut goed bezig zo Marc. Het inbouwen van dit soort momenten zijn gewoon essentieel in de ontwikkelingen waar we mee bezig zijn. En naast verstand van code hebben jullie ook nog gevoel voor styling en inrichting want jullie kantoor (of was dit nou het restaurant ?) ziet er na deze week ook weer een heel stuk frisser en fruitiger uit. Nog iets moois aan de wand en misschien, om het voor de enige vrouw in jullie midden (en dat moet je m.i. koesteren) nog leuker te maken, een kleurtje blauw op de muur.... en dan zijn we weer helemaal klaar voor de nieuwe Cyberdigma.menukaart !
Marc Selman
Marc Selman -  (2010-06-03 08:34)
Bedankt voor jullie leuke reacties!
Misschien moet ik toch maar eens vaker een blogje schrijven vanuit mijn kant van Mindz: het ontwikkelen.
Jeroen van der Schenk
Jeroen van der Schenk -  (2010-06-03 08:39)
@Marc Selman Zeker doen!
Guido Bénard
Guido Bénard -  (2010-06-03 08:45)
Erg goed uitgelegd, Marc! Als we zo doorgaan krijgen we nog een Michelin ster :-)
Susanne Bodemeijer
Susanne Bodemeijer -  (2010-06-03 09:04)
Wat een mooi stuk. Waarom heb je hem in de cirkel geplaatst? Ik kan me voorstellen dat het MINDZ-netwerk dit ook leuk vind om te lezen.

Ruby van den Hoff
Ruby van den Hoff -  (2010-06-03 09:11)
Dit was een heel leuk en interessant artikel om te lezen Marc!! 
Thomas Duvigneau
Thomas Duvigneau -  (2010-06-03 13:26)
Mooi geschreven, hele goede metafoor en Willem Cache is echt een geniale naam haha!
Metaforen maken het zoveel makkelijker om dingen te begrijpen voor mensen die er geen kaas van gegeten hebben, ik zou niet zonder ze kunnen :)

@Guido Good one

Comment on this article

Subscribe via email

Follow the comments of this article by email: