Oppdiktede problemer i programutvikling

Hva er oppdiktede problemer?

Eks 1:
Man får i oppdrag å lage en liten plattform. Istedet for å lage en enkel monolitt introduserer man mikrotjeneste arkitektur, for å enkelt kunne skalere plattformen i fremtiden. Man introduserer tonnevis av kompleksitet fra starten. Om man ønsker å skalere i fremtiden, kan man alltids refaktorere når den tid kommer.

Eks 2:
Man trenger en nettside som har oppetid og fungerer 99% for norske innbyggere. Istedet får man en nettside med fancy animasjoner som har rask responstid i hele verden med distribuert database og servere, men som ikke fungerer i Safari på iPhone.

Accidental Complexity
Man trenger ikke å spå fremtidige krav før det er et krav

Hva forårsaker dem?

Oppdiktede problemer er ofte morsommere enn de faktiske problemene man skal løse.

Frekvensen av oppdiktede problemer kan skrives som følgende formel:

LEDD(Kommunkasjons kjede)VANSKELIGHETSGRAD(Faktiske Problemet)

Jo flere ledd det er i kommunikasjon fra bestiller til implementerer jo flere oppdiktede problemer.
Jo vanskeligere det original problemet er, jo morsommere er det, og jo mindre oppdiktede problemer blir det.

Ledd i kommunikasjons kjeden er egentlig bare en indikasjon på antall ganger misforståelser får sjanser til å oppstå.

newplot.png