Kort fortalt
Hofstadters lov siger, at komplekse opgaver altid tager længere tid, end man forventer — selv når man husker at tage højde for, at de tager længere tid, end man forventer.
Hvad betyder princippet?
Douglas Hofstadter formulerede loven i Gödel, Escher, Bach (1979), især i forbindelse med forventninger til fremskridt inden for kunstig intelligens og andre komplekse projekter. Den er selvrefererende med vilje: optimismen overlever korrektionen.
Loven peger på planlægningsfejl i komplekse systemer: skjulte afhængigheder, ukendte ukendte og menneskelig overoptimisme.
At lægge buffer ind er ikke nok, hvis bufferen selv er baseret på for optimistiske antagelser.
Et konkret eksempel
Et softwareteam estimerer en integration til to uger. De lægger en uge ekstra oveni “på grund af Hofstadter”. Undervejs dukker dokumentationshuller, auth-problemer og en uventet datamigrering op. De tre uger bliver til seks. Bufferen var reel — men stadig utilstrækkelig, fordi usikkerheden ikke var forstået.
En renovering planlægges med 20 % slack. Når væggen åbnes, viser gamle installationer sig at kræve ekstra arbejde, der ikke var synligt i den oprindelige plan. Slack baseret på synligt arbejde dækker ikke skjult kompleksitet.
Hvornår er princippet nyttigt?
- Ved estimering af projekter med mange afhængigheder.
- Når tidligere deadlines konsekvent skrider.
- Når man kommunikerer usikkerhed til interessenter.
- Når man skelner mellem komplicerede og komplekse opgaver.
Begrænsninger og kritik
Hofstadters lov er en aforisme, ikke en præcis prædiktion. Nogle opgaver bliver færdige til tiden, især når omfanget er snævert, erfaringen høj, og feedbacken hurtig. Loven bør ikke bruges til at undgå estimater helt.
Den bedste respons er ofte iteration, tidlige prototyper og eksplicit usikkerhed — ikke blot større buffere.
Kilder
- Douglas Hofstadter, Gödel, Escher, Bach: An Eternal Golden Braid (1979).
- Bemærkning: Loven er bevidst vittig og selvrefererende; dens værdi ligger i at synliggøre systematisk underestimering, ikke i at angive en formel.