Categorie archieven: short

Hoe software wel nauwkeurig te budgetteren is

En waarom planning en budget dan niet hetzelfde is.

In de software wereld blijft het traditie om te vragen naar nauwkeurige schattingen, terwijl we nog geen flauw idee hebben hoe we het gaan maken en dus hoeveel werk het zou kunnen zijn. 🤷

Hieruit ontstaat telkens weer het spelletje waarin om de hete brij heen wordt gedraaid tot er een getal is bedacht waar management gelukkig mee is, maar in werkelijkheid niemand achter staat. En dat is jammer, want dat getal wordt wel gebruikt om de organisatie te besturen en medewerkers op af te rekenen. Het is daarmee een garantie voor doorlopende teleurstelling. 😕

Maar stel je het alternatieve scenario voor: Er wordt een richting afgesproken, en er wordt dagelijks gewerkt aan wat direct zichtbare voortgang in de afgesproken richting brengt. Het management kan aan die richting vervolgens een harde doelstelling hangen in de vorm van een deadline op basis van business criteria, zoals een beurs of het beschikbare budget. 🎯

Als iedereen op basis hiervan beseft waar we heen willen en wat de beperkingen zijn, en vervolgens af wordt gerekend op de voortgang naar het gestelde doel, dan ontstaan er veel realistischere plannen en kan het management tijdig de verwachtingen bijsturen als de harde werkelijkheid niet met de wollige dromen overeen blijkt te stemmen. ⛅️

Mijn persoonlijke ervaring is dat deze manier van werken veel meer motiveert, en daardoor verrassend vaak extreem veel betere resultaten levert. Zo bouwden we met een klein team een slimme data backend in acht weken als vervanging van een gedrocht waar eerder negen maanden met een groot team aan was ontwikkeld, en bouwden we met zijn drieën in enkele maanden de volledige product roadmap van anderhalf jaar voor een ander bedrijf. 🏎️

Onmogelijk? Ik ben er van overtuigd dat niets onmogelijk is, wanneer de voorwaarden voor doorlopende communicatie en creativiteit maar worden gefaciliteerd.

Hoe verzamelde data achteraf nuttig te maken is

En hoe ik dit met de ontwikkelde code ook blijk te hebben gedaan.

Wat nou als je data op wilt slaan en nog niet weet wat je er mee gaat (of kunt) doen? Dat overkwam mij in een project voor Philips waarin we data van stappentellers, hartslagmeters, weegschalen, calorie inname, en dergelijken op gingen slaan om er een app mee te voeden die steeds meer (suggesties op basis van) afgeleide informatie zou gaan tonen aan de gebruiker.

Als oplossing hebben we een elegante oplossing gebouwd die de verzamelde data rauw in de database zet, en via configureerbare conversiestappen weer uitleest. Deze stappen bepaalden zelf welke informatie ze als input nodig hadden, die vervolgens uit de database werd gelezen en door de conversies werd geleid.

Het resultaat was een architectuur met Lego-achtige bouwblokken die de stroom data uit de database hiërarchisch in waarden en frequentie omzetten tot de gewenste visualisatie voor de bijbehorende app.

De ontwikkelde toepassing bestaat inmiddels niet meer, maar recent ontdekte ik dat onze component via omwegen in het data platform van Philips terecht is gekomen en tot op de dag van vandaag voor dit soort operaties wordt gebruikt.

Als je dit leuk vindt, dan …

Ooit bedacht hoe online winkels verzinnen wat je (hopelijk) nog meer wilt kopen? Tip: Het lijkt haast kunstmatige intelligentie …

Het bouwen van twee systemen voor het aanbevelen van films en televisieprogramma’s (ruim voor AI doorbrak) leerde me dat de oplossing voor dit probleem bestaat uit het vinden van patronen in het gedrag van een populatie. Als je de populatie segmenteert in groepen met het zelfde patroon en je de gebruiker in een van de groepen kunt plaatsen, dan zijn de keuzes van die groep waarschijnlijk ook relevant voor deze gebruiker.

Wij clusterden zo dagelijks het kijkgedrag van alle gebruikers en voorspelden op basis hiervan succesvol wat een kijker nog meer leuk zou vinden.

Het is voor mij fascinerend te zien dat de huidige AI chat bots hier een extreem geavanceerde versie van zijn: Door een bizar grote hoeveelheid teksten te analyseren, hebben ze geleerd te voorspellen wat op basis van de invoer van de gebruiker de meest waarschijnlijke stroom van woorden is die hier een reactie op vormen.

De opdringerige “als je dat leuk vindt, dan vind je dit vast ook leuk” lijstjes van Amazon waren zo een vroege voorbode van wat we nu in AI bewonderen.

Handhaving Wet DBA

Er is weer volop commotie rond de Wet DBA (“Deregulering Beoordeling Arbeidsrelaties”), waarmee door de overheid geprobeerd wordt om schijnzelfstandigheid onder ZPP-ers aan te pakken.

In het kort komt het er op neer dat de langverwachte handhaving per 1 januari 2025 er toch gaat komen, en schijnzelfstandigheid van ZZP-ers via naheffing van loonheffingen en boetes verhaald gaat worden op de bedrijven die ze ingehuurd hebben.

Het gevolg is dat software freelancers die jaren als programmeur in het team van de opdrachtgever meewerken zich inmiddels zorgen maken over de houdbaarheid van hun ZZP bestaan, maar vooral ook dat bedrijven huiverig lijken te worden voor het inhuren van software freelancers zoals mijzelf.

Nou ben ik geen expert in de Nederlandse wet, maar de paniek lijkt me een beetje overtrokken. Als je mijn expertise inhuurt om je team te versterken, krijg je veel meer dan iemand die opgaat in de massa. En anders kun je me inhuren met een expliciete opdracht om de kwaliteit van het team of de output te helpen verbeteren. En dat kan natuurlijk ook part-time of voor een vaste periode. Ik ben immers ondernemer, net als mijn opdrachtgevers.

Of zie ik toch iets belangrijks over het hoofd?

Een database in het echt

Graag denk ik terug aan de bouw van een volledig maatwerk Warehouse Management Systeem voor het distributiecentrum van een grote internationale verffabriek.

Tijdens de eerste ingrijpende wijziging van de indeling van het magazijn stonden we met de drie ontwikkelaars vanaf het bordes op de kopse kant van het magazijn met toegeknepen billen te kijken hoe het systeem zou reageren op deze enorme transactie in de configuratie van het magazijn: Vele pallets zouden tussen pick en bulk locaties moeten worden verplaatst, terwijl het picken van orders en ontvangen van pallets uit de productie ondertussen gewoon door zou moeten lopen.

Op dat moment besefte ik nog meer dan tijdens het ontwerpen en bouwen van deze software, dat niet alleen elke fysieke blik en emmer in de enorme hal een record in de database was, maar ook elke beweging van elke heftruck, reachtruck of pompwagen een live transactie is in deze zelfde database.

Nooit heb ik meer zo’n prachtige visualisatie gezien van de inhoud en werking van een SQL database.