Program JavaZone

Foredrag Torsdag 3. september

Erstatningssystemfella

Room 4

Norsk 45 min Arkitektur Omskriving Refactoring Best practices

Fredrik de Vibe

Fredrik har mer enn 20 års erfaring med å lage programvare, med bred erfaring fra forskjellige organisasjoner og teknologier, og han trives best i skjæringspunktet mellom kode og folk. Glad i å snakke og kan lett la seg rive med i diskusjoner om arkitektur, prosess eller omtrent hva som helst ellers, men kommer ikke nærmere Nirvana enn når brikkene begynner å falle på plass og en kompleks problemstilling omsettes i en elegant løsning.

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!

Enhver som noensinne har jobbet med erstatningssystemer, og de som kanskje skulle ønske å unngå å ende opp med det.

  1. Heis.fm LIVE Room 1
  2. Cassandra Compaction - Allocation Free, and 5x Faster Room 2
  3. Gleam and BEAM: Looking beyond the JVM Room 3
  4. The Right 300 Tokens Beat 100k Noisy Ones: Four Context Antipatterns That Kill Your AI Agent Room 5
  5. Går det ingen tog?!?!! Room 6
  6. CRA security deadlines loom: What senior Java engineers must deliver by December 2027 Room 7
  7. JDK8 to 25 Without the pain: Engineering a Modern Java Platform Room 8
  8. Når Noen™ tar ansvar Room 6
  9. Hva skjedde da AI kom til Glow Room 6