Tilbake
8.1
Systemutviklingsmetoder

8.1 Systemutviklingsmetoder

Fossefallsmodellen, smidig utvikling og Scrum.

60 min
6 oppgaver
FossefallsmodellenScrumKanbanSmidig
Du leser den tradisjonelle versjonen
Din fremgang i kapitlet
0 / 6 oppgaver

Når vi utviklar større programvaresystem, treng vi strukturerte metodar for å planleggje, organisere og gjennomføre arbeidet. Ulike systemutviklingsmetodar gir oss forskjellige rammeverk for korleis vi kan jobbe effektivt i team, handtere endringar og levere kvalitetsprodukt.

I dette kapittelet skal vi sjå på dei mest brukte metodane i moderne programvareutvikling – frå tradisjonelle fossefallsmodellar til smidige metodar som Scrum og Kanban.

Fossefallsmodellen (Waterfall)

Fossefallsmodellen er ei tradisjonell, sekvensiell tilnærming der utviklingsprosjektet blir delt inn i fasar som må fullførast i rekkjefølgje:

1. Kravspesifikasjon – Alle krav blir samla inn og dokumenterte
2. Design – Systemarkitektur og detaljert design blir planlagt
3. Implementering – Koden blir skriven basert på designet
4. Testing – Systemet blir testa mot krava
5. Vedlikehald – Systemet blir sett i drift og vedlikehalde

Fordelar: Strukturert, god dokumentasjon, klar progresjon, enkel planlegging
Ulemper: Lite fleksibel, vanskeleg å endre krav undervegs, sein tilbakemelding frå brukarar

Smidig/agil utvikling (Agile)

Agile metodar fokuserer på:
- Iterativ utvikling i korte syklusar (sprints/iterasjonar)
- Tett samarbeid med kunde/brukar
- Rask respons på endringar
- Fungerande programvare framfor omfattande dokumentasjon
- Kontinuerleg forbetring

Fordelar: Fleksibel, tidleg verdi til kunde, betre risikohandtering
Ulemper: Krev erfarne team, kan vere utfordrande å estimere sluttdato

Scrum

Scrum er eit rammeverk for agil utvikling med følgjande roller og element:

Roller:
- Product Owner – Representerer kunden, prioriterer funksjonalitet
- Scrum Master – Fasiliterer prosessen, fjernar hindringar
- Utviklingsteam – Sjølvorganiserande team som leverer produktet

Artefaktar:
- Product Backlog – Prioritert liste over all ønskt funksjonalitet
- Sprint Backlog – Oppgåver valde for noverande sprint
- Increment – Fungerande produkt etter kvar sprint

Seremoniar:
- Sprint Planning – Planlegging av kommande sprint (1-4 veker)
- Daily Standup – Dagleg 15-minutters møte
- Sprint Review – Demo av ferdig funksjonalitet
- Sprint Retrospective – Evaluering av prosess og forbetringspunkt

Kanban

Kanban er ein metode for å visualisere og optimalisere arbeidsflyt:

- Kanban-tavle – Kolonnar representerer arbeidsstadium (To Do, In Progress, Testing, Done)
- Work In Progress (WIP) limits – Avgrensar talet på oppgåver i kvar kolonne
- Pull-system – Team hentar nye oppgåver når kapasitet er ledig
- Kontinuerleg flyt – Ingen faste sprints, oppgåver flyt gjennom systemet

Når blir Kanban brukt: Support-team, vedlikehaldsarbeid, kontinuerleg leveranse

DevOps

DevOps er ein kultur og praksis som bryt ned siloen mellom utvikling (Dev) og drift (Ops):

Prinsipp:
- Automatisering av bygg, testing og deployment
- Kontinuerleg integrasjon (CI) og kontinuerleg leveranse (CD)
- Infrastruktur som kode
- Monitoring og logging i produksjon
- Rask feedback-loop

Verktøy: Git, Jenkins, Docker, Kubernetes, Ansible, Prometheus

✏️Eksempel: Samanlikning av metodar
Scenario: Eit team skal utvikle ein nettbutikk

Med Fossefallsmodellen:
1. Månad 1-2: Intervjue kunde, skrive komplett kravspesifikasjon
2. Månad 3: Designe databaseskjema og systemarkitektur
3. Månad 4-6: Utvikle komplett løysing
4. Månad 7: Testing av heile systemet
5. Månad 8: Lansering

Problem: Kunden ser ikkje produktet før månad 7-8. Hvis krava var misforstått, blir det oppdaga seint.

Med Scrum:
Sprint 1 (2 veker): Enkel produktkatalog med bilete og prisar
Sprint 2: Handlekorg og registrering av brukarar
Sprint 3: Betalingsintegrasjon (forenkla)
Sprint 4: Ordrehistorikk og kvitteringar
Sprint 5: Søkjefunksjonalitet
Sprint 6: Vurderingar og anmeldelser

Fordel: Kunden ser fungerande versjon etter 2 veker og kan gi tilbakemelding. Prioriteringar kan justerast undervegs.

Med Kanban:
Teamet jobbar kontinuerleg med oppgåver:
- [To Do] → [In Progress] → [Code Review] → [Testing] → [Done]
- WIP limit på "In Progress": Max 3 oppgåver samtidig
- Nye bugs og features blir lagde til [To Do] og prioriterte løpande
- Ingen faste sprints, men kontinuerleg leveranse til produksjon

Eigna for: Team som må handtere både nye features og akutte bugs.

Oppgåve 1 (Flerval)
Kva er hovudforskjellen mellom fossefallsmodellen og agile metodar?

A) Fossefallsmodellen bruker sprints, agile bruker fasar
B) Fossefallsmodellen er sekvensiell, agile er iterativ
C) Fossefallsmodellen krev meir erfaring
D) Fossefallsmodellen er alltid raskare

Oppgåve 2 (Flerval)
Kva for rolle i Scrum har ansvar for å prioritere Product Backlog?

A) Scrum Master
B) Utviklingsteam
C) Product Owner
D) CEO

Oppgåve 3
Forklar kort kva "Daily Standup" er i Scrum, og kvifor møtet blir halde ståande.

Oppgåve 4
Eit utviklingsteam jobbar med vedlikehald av eit eksisterande system. Dei får både planlagde features og akutte bugs. Kva for metode (Scrum eller Kanban) ville du tilrådd, og kvifor?

Oppgåve 5
Skildr kort kva WIP-limits er i Kanban, og kvifor dei er nyttige.

Oppgåve 6
Kva er hovudforskjellen mellom Sprint Review og Sprint Retrospective i Scrum?

Oppgåve 7
Nemn to fordelar og to ulemper med fossefallsmodellen samanlikna med agile metodar.

Oppgåve 8
Forklar kort kva DevOps er, og korleis det skil seg frå tradisjonell utvikling.

// --- Samleoppgåver ---

Samleoppgåve 1
De skal utvikle ein app for ein ungdomsskule der elevar kan registrere fråvær, sjå timeplan og motta beskjedar. Skulen har gitt dykk ei liste med 25 ønske om funksjonalitet, men budsjettet dekkjer kun 6 månaders arbeid for eit team på 3 personar.

a) Kva for systemutviklingsmetode ville du valt? Grunngi svaret.
b) Skisser ein plan for dei første fire vekene av prosjektet.
c) Korleis ville du prioritert kva for funksjonalitet som blir utvikla først?

Samleoppgåve 2
Eit team bruker Scrum med 2-vekers sprints. I Sprint 3 oppdagar dei at ei teknisk avgjerd frå Sprint 1 gjer det svært vanskeleg å implementere ein viktig feature.

a) Kva er fordelane med at dette blir oppdaga i Sprint 3, framfor etter 6 månaders utvikling?
b) Forklar korleis teamet kan handtere dette problemet i Scrum-rammeverket.
c) Kva for Scrum-seremoni er mest relevant for å diskutere denne typen problem?

Oppsummering

I dette kapittelet har du lært:

- Systemutviklingsmetodar: rammeverk for å utvikle programvare.
- Fossefall: sekvensiell metode.
- Smidig (Agile): iterativ og fleksibel.
- Val av metode: ut frå behova til prosjektet.

Nøkkelomgrep


OmgrepForklaring
FossefallSekvensiell utviklingsmetode
SmidigIterativ, fleksibel utviklingsmetode

Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.