Har vi gjort programvareutvikling altfor komplisert?
Web Development 62 visninger

Har vi gjort programvareutvikling altfor komplisert?

En nostalgisk reise fra FTP-cowboyer til Kubernetes-kaos

Husker du 1999? Mens resten av verden forberedte seg på Y2K-apokalypsen, satt vi webutviklere og levde vårt beste liv. Deployment? Det tok fem sekunder. Åpne FileZilla, dra PHP-filen over til serveren, ferdig. I dag? Vel, la meg først sjekke om GitHub Actions pipeline har grønt lys, om Docker-imaget bygger riktig, om Kubernetes-clusteret har nok ressurser, om Terraform state-filen er synkronisert, om... vent, hva var det jeg skulle deploye igjen?

Da deployment var en dragondrop-affære

La oss ta en tidsmaskin tilbake til slutten av 90-tallet. En typisk webapplikasjon besto av noen få ingredienser: PHP, MySQL, og Apache - den hellige LAMP-stacken. Prosjektstrukturen var så enkel at selv sjefen kunne forstå den:

nettside/
├── index.php
├── om-oss.php
├── kontakt.php
├── bilder/
│   └── [masse GIF-er fra Photoshop-slicing]
└── kanskje-en-css-fil-hvis-du-var-fancy.css

Deployment-prosessen anno 1999:

  1. Rediger PHP-filen lokalt
  2. Trykk Ctrl+U i HomeSite (for de som husker den)
  3. Filen er live på produksjon
  4. Test direkte i prod ved å refreshe browseren

Total tid: 5-30 sekunder, avhengig av om du hadde 56k modem eller ISDN.

En veteran-utvikler forteller: "Jeg hadde editoren konfigurert med en hurtigtast for FTP-opplasting. Det var glorieverdige tider. Jeg hadde teknisk sett null nedetid på deployments i 2002, og alt jeg trengte å gjøre var å flytte en fil til serveren."

Moderne deployment: en kafka-esk prosess

Spol frem til 2024. La oss si du skal deploye samme enkle kontaktskjema:

Steg 1-47 i moderne deployment:

  1. Commit koden til feature branch
  2. Åpne pull request
  3. Vent på at 15 forskjellige CI/CD-jobber skal kjøre
  4. GitHub Actions bygger Docker-imaget
  5. Security scanning (SAST, DAST, IAST - alle -AST'ene)
  6. Unit tests, integration tests, E2E tests
  7. SonarQube sjekker kodekvalitet
  8. Dependabot advarer om 47 sårbarheter i dependencies
  9. Merge til main (etter code review fra 3 kollegaer)
  10. Deploy til staging-miljø
  11. Kjør smoke tests
  12. Deploy til pre-prod
  13. Kjør regresjonstester
  14. Oppdater Kubernetes manifester (8-15 YAML-filer)
  15. Apply Helm charts
  16. Vent på at pods starter
  17. Health checks må bli grønne
  18. Deploy til produksjon med blue-green strategy
  19. Monitor Grafana dashboards
  20. Sjekk Datadog for anomalier ...

Total tid: 2 timer til 3 dager, hvis alt går bra.

Hello World har blitt Hello Complexity

1999:

<html>
<body>Hei verden!</body>
</html>

Antall filer: 1
Dependencies: 0
Build-tid: N/A (hvilken build?)

2024:

npx create-react-app min-app

Antall filer: ~35,000
Dependencies: 281+ npm-pakker
node_modules størrelse: 250MB
Build-tid: 2-5 minutter

For å vise "Hei verden!" på skjermen.

Tallenes tale: hvor mye tid bruker vi egentlig på koding?

Her kommer den virkelig deprimerende statistikken fra 2024:

  • 16% - Så lite av arbeidstiden bruker moderne utviklere faktisk på å skrive kode
  • 62% av utviklere rapporterer at teknisk gjeld er deres største frustrasjon
  • 25-30 forskjellige verktøy bruker gjennomsnittsutvikleren aktivt
  • 2-3 timer per uke går med til å bytte mellom verktøy
  • 83% av utviklere må nå også være DevOps-ingeniører

En utvikler fra Reddit oppsummerer det perfekt: "All denne skalerings- og arkitektur-tullet eksisterer bare så mellommanns-selskaper har noe å selge."

PHP-cowboyenes gyldne æra

"Jeg var en PHP-cowboy," forteller en utvikler nostalgisk. "Gjennom årene skrev jeg over 300,000 linjer PHP, og alle applikasjonene mine krevde ikke mer enn PHP 4.x standardbiblioteket. Jeg har disse monstrøse 7,500+ linjers PHP-filene som har en blanding av PHP, HTML, SQL og JavaScript."

Høres forferdelig ut? Kanskje. Men her kommer twisten: "En gammel side for en av kundene mine kjører fortsatt etter 11 år, og han har generert over $700,000 i inntekter med et custom PHP CRM-system. Alt kjører på en shared hosting-leverandør som koster $7 i måneden, og jeg har ikke engang logget inn på kontrollpanelet på 8 år."

$7 i måneden. 8 år uten vedlikehold. $700,000 i inntekter.

Sammenlign det med dagens enterprise Kubernetes-cluster som krever et dedikert platform-team bare for å holde det gående.

Sikkerhet? Hva er det?

Ok, la oss være ærlige. 1999 var også tiden da:

  • Passord ble lagret i plain text
  • SQL injection var så vanlig at det nesten var en feature
  • "Sikkerhet gjennom obskuritet" var en legitim strategi
  • SSL-sertifikater kostet tusenvis av kroner

En utvikler husker: "Vi hadde bokstavelig talt admin.php liggende åpent på nettet med hardkodet passord i kildekoden."

Så ja, moderne sikkerhetspraksis er definitivt en forbedring. Men trengte vi virkelig 15 forskjellige security scanning-verktøy i CI/CD-pipelinen?

JavaScript-økosystemets eksplosjon

La oss snakke om npm, skal vi?

2024 statistikk:

  • 800,000+ pakker i npm registry
  • 1,800+ JavaScript frameworks og biblioteker aktivt vedlikeholdt
  • 300-500 dependencies i et gjennomsnittlig moderne webprosjekt
  • 50-200MB node_modules for et "Hello World"-prosjekt

En favoritt-meme fra 2024 viser moderne programvareutvikling som en stabel med adaptere oppå hverandre - "Den absolutte TRAGEDIEN med moderne programvareutvikling... å bruke en serie adaptere stablet oppå hverandre bare for å plugge noe inn!"

Microservices: når 1 blir til 100

1999: En PHP-fil håndterer alt
2024: 100 microservices for et team på 20 utviklere

Sant eksempel fra virkeligheten: Et selskap implementerte microservices-arkitektur og endte opp med å administrere 2,200+ tjenester. Uber, for eksempel, har over 2,200 microservices. For hver nye feature må du nå:

  • Oppdatere 5-10 forskjellige tjenester
  • Koordinere deployments
  • Håndtere inter-service kommunikasjon
  • Debugge distribuerte systemer (lykke til!)

Men vent, det er ikke alt svart-hvitt

La oss være fair. Moderne verktøy løser reelle problemer:

Skalerbarhet: Dagens frameworks kan håndtere millioner av brukere. I 1999 krasjet serveren hvis lokalavisen linket til siden din.

Samarbeid: Git, code reviews, og CI/CD gjør det mulig for store team å jobbe sammen. I 1999 sendte vi ZIP-filer på e-post.

Brukeropplevelse: Single-page applications, real-time updates, og responsive design var science fiction i 1999.

Global distribusjon: CDN-er, edge computing, og serverless lar oss serve brukere over hele verden med minimal latency.

Tilbake til fremtiden: enklere tider på horisonten?

Det finnes håp! Flere bevegelser forsøker å forenkle moderne webutvikling:

JAMstack-renessansen: Selv Matt Biilmann (Netlify CEO) har bedt om at JAMstack skal "miste kompleksitet og bli enkel igjen."

No-build bevegelsen: Verktøy som Vite fokuserer på utviklingshastighet over build-optimalisering.

Serverless: Eliminer infrastruktur-hodepine (men introduser vendor lock-in hodepine).

AI-assistenter: La GitHub Copilot skrive boilerplate-koden og konfigurasjonsfilene.

Konklusjonen ingen tør si høyt

Sannheten er at vi har bygget et absurd komplekst økosystem for å løse problemer som de fleste av oss ikke har. En typisk bedriftsapplikasjon i dag krever:

  • 15-25 forskjellige CI/CD-verktøy
  • 8-15 Kubernetes YAML-filer for en enkel deployment
  • 200-500+ Terraform-konfigurasjonfiler
  • 300-500 npm dependencies

Alt dette for applikasjoner som fundamentalt sett gjør det samme som de 7,500-linjers PHP-filene gjorde i 1999: CRUD-operasjoner mot en database.

Veien videre

Kanskje løsningen ikke er å gå tilbake til FTP og PHP 4 (selv om det var gøy). Kanskje løsningen er å innse at ikke hver applikasjon trenger:

  • Microservices arkitektur
  • Kubernetes orchestration
  • Multi-stage Docker builds
  • 47 forskjellige monitoring-verktøy
  • En dedikert SRE-team

Noen ganger er en boring Ruby on Rails monolitt på Heroku akkurat det du trenger. Noen ganger er en NextJS-app på Vercel perfekt. Og noen ganger - bare noen ganger - er kanskje til og med en god gammel PHP-fil på shared hosting den rette løsningen.

Som en klok utvikler sa: "Jeg var en lykkeligere utvikler den gangen, fordi jeg ikke brydde meg om annet enn å skrive kode. I dag bruker jeg 84% av tiden min på alt annet."

Så neste gang du sitter fast i YAML-helvete og prøver å debugge hvorfor Kubernetes-poden din ikke starter, husk: en gang i tiden tok deployment 5 sekunder, og det fungerte faktisk helt fint.

Epilog: Denne artikkelen ble skrevet mens jeg ventet på at CI/CD-pipelinen min skulle bli ferdig. Den har kjørt i 47 minutter nå. I 1999 hadde jeg allerede deployert 15 ganger og tatt en lang lunsj.

Skråblikk
Samfunn
Tech Insights

Relaterte artikler

Moderne JavaScript i 2025: ES2025 og fremover
Web Development

Moderne JavaScript i 2025: ES2025 og fremover

Utforsk de nyeste JavaScript-funksjonene og hvordan de påvirker moderne webutvik...

Sikkerhet i moderne webapplikasjoner
Web Development

Sikkerhet i moderne webapplikasjoner

Best practices for å sikre webapplikasjoner mot vanlige trusler og sårbarheter.

Artikkel statistikk

Publisert 13. Sep 2025
Visninger 62
Lesetid ~7 min
Kategori Web Development

Innholdsfortegnelse

Hold deg oppdatert

Få de nyeste tech-artiklene og innsiktene direkte i innboksen din.

Ingen spam. Avmeld når som helst.

Populære artikler

Del artikkelen