Zoals de dalai lama al zei: ’Simplicity is the key to happiness.‘ De software-industrie relateert deze quote vaak aan de term Kiss (’Keep it simple, stupid‘), een principe dat al in de jaren zeventig werd geïntroduceerd. Maar waarom lukt het diezelfde software-industrie dan niet om producten eenvoudig en daarmee betrouwbaar te maken?
Een van de plaatsen waar we de sleutel tot het geluk zijn kwijtgeraakt, is bij feature-driven development. We breiden softwareproducten voortdurend uit met nieuwe features, waardoor ze alsmaar groter en complexer worden. De methode op zich is prima, mits goed uitgevoerd. We kennen echter allemaal voorbeelden van software die in de loop der tijd té complex is geworden.
Opensourcegemeenschappen zijn bijvoorbeeld gebouwd op het principe dat iedere programmeur zijn eigen features kan toevoegen aan een product. Probleem is dat tijdens de integratie zo veel mogelijk features worden opgenomen en de gevolgen voor de complexiteit niet of onvoldoende worden geanalyseerd. Gevolg: gebruikers vinden het product onbegrijpelijk vanwege de explosie van features en nieuwe bijdrages worden steeds schaarser omdat steeds minder ontwikkelaars de broncode nog begrijpen.