Om sesjonen
For over 50 år siden beskrev Frederick P. Brooks det han kalte "The Second System Effect", hvor uerfarne arkitekter overdriver, går amok og bygger systemer med overdreven bruk av generaliseringer og abstraksjoner, overlesset med unødvendig funksjonalitet. Nesten 25 år seinere kom Brian Foote og Joseph Yoder opp med begrepet "The Big Ball of Mud" - som beskriver hvordan programvare gjerne ender opp når den ikke blir tilstrekkelig vedlikeholdt, et uhåndterlig villnis.
Med så mange års erfaring med å bygge systemer, og med så mye litteratur og kunnskap vi sitter på, burde vi ikke klare å unngå slike villnis? Likevel finnes de overalt, og alle som jobber med å bygge programvare kommer borti dem, igjen og igjen. Manglende dokumentasjon og tester, høy kompleksitet, utgåtte biblioteker og utdaterte best practices. Og de som jobber med dem har neppe vært med på å bygge dem. Som trommene fra dypet i Tolkiens Moria stiger det unisone ropet om at vi må kvitte oss med denne utdaterte, grisete, uforståelige og idiotiske gjørmeballen. Den er en hengemyr med negativ verdi, vi må kaste den og starte på nytt!
Dette er alltid (så godt som) feil!
Grunnen til at programvare blir uhåndterlig handler ikke om at de som har skrevet den er udugelige eller late, det handler om at organisasjonene den blir til i ikke får det til på andre måter. Hvis du ikke klarer å få kontroll på den eksisterende kodebasen din klarer du heller ikke å gjøre det bedre om du starter på nytt.
Det er ikke koden din, men organisasjonen din, som må fikses.
Og det er alltid (så godt som) lettere, billigere og riktigere å fikse det du har!