Entropie

Hardware en software. Alledaagse termen. Je zou haast vergeten hoe vreemd het begrip software eigenlijk is. Software heeft in tegenstelling tot een fysiek product geen dimensies, geen gewicht. Vaak ontbreekt er een orde van grote. Vooral dit laatste is een belangrijk gemis.

Iedereen herkent een grote brug, maar ook een te kleine of te lichte brug. Dat heeft te maken met de juiste orde van grote. Een handvat van een steelpan is significant groter dan het oor van een drinkbeker terwijl de functie enigszins gelijk is. Een handvat van een steelpan aan een drinkbeker, herken je dus al snel als een ontwerpfout. Het dashboard van mijn oude studentenauto was zwart en van kunststof, net als die van mijn huidige auto. 1 klopje op beide dashboards en je ‘voelt’ meteen het verschil in kwaliteit.

Software heeft geen orde van grote, je kunt er niet op kloppen en is dimensieloos.

Een van de weinige grootheden die van toepassing zou kunnen zijn op software is het natuurkundige begrip Entropie. Entropie wordt vaak geassocieerd met chaos of wanorde. Als je in een glas melk chocoladepoeder strooit dan krijg je een bruine vloeistof die we chocomelk noemen. De wanorde in het glas is toegenomen en zo ook zijn Entropie. Hoe je ook schudt of kookt, de poeder en de melk zullen zich niet spontaan scheiden. De natuur streeft immers naar een vergroting van de Entropie.

Entropie

Bij software ontwikkeling gebeurt er iets vergelijkbaars. In het begin is de code overzichtelijk, het aantal functies beperkt. Klanten vragen altijd om meer functies. Dus meer code, er wordt wat toegevoegd (plaatjes en een gelikt achtergrondje), een grote klant vraagt (lees eist) een dubieuze functionaliteit, waarvan je nu al weet dat geen mens het gaat gebruiken. De Entropie van het systeem vertoont een duidelijke stijgende lijn… De wanorde neemt toe.

Het terugbrengen van chaos naar orde kost een onevenredige hoeveelheid energie. In ons chocomelk voorbeeld, zouden we het water in de melk moeten laten verdampen, het overgebleven substraat zou vele malen gefilterd moeten worden om uiteindelijk het chocoladepoeder teruggewonnen te krijgen.

Bij software is het niet veel anders. Een kleine, (ondoordachtige) wijziging in de code kan zeer grote gevolgen hebben (een andere overeenkomst met de chaos theorie).

De snelheid waarmee een professionele applicatie zich ontwikkelt qua stabiele functionaliteit, is omgekeerd evenredig met de leeftijd en het aantal functies. Hoe ouder de applicatie en hoe meer functies, des te complexer wordt het om nieuwe functionaliteit toe te voegen zonder te vervallen in chaos.

Dit is de reden waarom wij niet altijd ja zeggen, tegen ogenschijnlijk handige functionaliteit. Zeg gerust nee tegen grote klanten met wilde ideeën.

Less is more. Niet alleen in design maar zeker ook in software ontwikkeling.

Dit bericht werd geplaatst in Algemeen en getagged met , . Bookmark de permalink.