Tradisjonelle metoder

Fossefalls-metoden

Fossefalls-metoden (Waterfall) var standarden frem til ca. 2000-tallet. Den er lineær og sekvensielle – hver fase fullføres før neste starter.

  1. 1

    Kravspesifikasjon

    Alle krav defineres fullstendig

  2. 2

    Design

    Systemarkitektur og detaljdesign

  3. 3

    Implementasjon

    Koden skrives

  4. 4

    Testing

    Systemet testes

  5. 5

    Vedlikehold

    Drift og videreutvikling

Problem med Waterfall Endringer underveis er svært kostbare. Krav er nesten aldri stabile nok til å defineres fullstendig på forhånd. Hvert steg krever omfattende dokumentasjon til neste team.

Unified Process (UP)

UP var et forsøk på å forbedre fossefalls ved å innføre iterasjoner, men beholdt den tunge dokumentasjonskulturen. UML-diagrammer stod sentralt.

Agile Manifesto

Eksamensfokus Oppgave 1 på eksamen (2023) handlet om de viktigste prinsippene i smidig utvikling og forskjellen mellom Scrum og Kanban. Kjenn disse godt.

Smidig utvikling oppstod på 90-tallet og ble merkverdig i 2001 da The Agile Manifesto ble utgitt. Manifestet sier:

Individer og interaksjoner
... fremfor prosesser og verktøy. Menneskene er viktigere enn verktøyene de bruker.
Fungerende programvare
... fremfor omfattende dokumentasjon. Leveransen er det som teller.
Kundesamarbeid
... fremfor kontraktsforhandlinger. Bygg tillit gjennom tett samarbeid med kunden.
Reagere på endring
... fremfor å følge en plan. Evnen til å tilpasse seg er mer verdifullt enn å følge en rigid plan.
Husk Det som står til venstre verdsettes, men det til høyre har også verdi. Det er ikke "prosesser er ubrukelige" – men at individer er viktigere.

De 4 grunnleggende smidige prinsippene

Utover Agile Manifesto finnes det 4 nøkkelprinsipper som kjennetegner smidig utvikling:

  1. 1

    Problem-based

    Store problemer brytes ned i mindre, prioriterte deler. Avhengig av utgangspunkt er det ulike veier til løsningen.

  2. 2

    Collaborative

    Flere roller er involvert fra begynnelsen: PO, SM, Teknisk spesifikasjon, Implementering, Testing, Distribusjon. Brukere kan starte prosessen.

  3. 3

    Iterative

    Korte iterasjoner med rask feedback. Du planlegger smått, beveger deg fremover og tilbake. "Think big, act small."

  4. 4

    Adaptive progress

    Fremgangen er adaptiv og ikke-lineær. Du får raskere tilbakemelding, og deretter tilpasser du deg. Fail fast, learn rapidly.

Scrum (oversikt)

Scrum er en smidig metode som strukturerer arbeidet i faste tidsavgrensede iterasjoner (sprinter) med definerte roller og seremonier.

Roller

  • Product Owner (PO) – Eier produktbacklog, prioriterer oppgaver, representerer kunden
  • Scrum Master (SM) – Fasilitator, fjerner hindringer, sørger for at Scrum følges
  • Development Team – Tverrfaglig team (~7 pers) som leverer inkrement

Seremonier

  • Sprint Planning – PO + team planlegger hva som gjøres i sprinten
  • Daily Standup – 15 min daglig: Hva gjorde jeg? Hva gjør jeg? Noen hindringer?
  • Sprint Review – Demo av inkrement for interessenter. Evaluerer leveransen.
  • Sprint Retrospective – Teamet evaluerer prosessen. Bare for teamet.
Les mer om Scrum →

Kanban (oversikt)

Kanban er en flytbasert metode uten faste iterasjoner. Fokus er på å la oppgaver «flyte» uten avbrudd gjennom prosessen.

  • Kanban-board med kolonner (To Do → In Progress → Done)
  • WIP-grenser – maks antall oppgaver per kolonne
  • Når du er ferdig med en oppgave, hjelper du andre fremfor å starte nye
  • Mål: fjerne flaskehalser i prosessen
  • Releaser skjer kontinuerlig – ikke ved slutt av sprint
Les mer om Kanban →

Scrum vs. Kanban

EgenskapScrumKanban
IterasjonerFaste sprinter (1–3 uker)Ingen faste iterasjoner
PlanleggingSprint Planning hvert sprintKontinuerlig, pull-basert
RollerPO, SM, Dev TeamIngen pålagte roller
GrenserTidsboks (sprint)WIP-grenser per kolonne
LeveranseVed slutten av sprintKontinuerlig
MeetingsObligatoriske seremonierIngen standardmøter
EndringerIkke i pågående sprintTillatt når som helst
Best forKlar backlog med estimerbare oppgaverKontinuerlig drift og support

Lean (Slank metodikk)

Lean er en utviklingsfilosofi med økt fokus på eliminering av sløsing. Kanban er en lean-metode.

  • Eliminate waste – Ikke lag funksjoner ingen vil ha, ikke dokumentasjon ingen leser
  • Build quality in – Kvalitet i koden fra start, ikke "rette opp" etterpå
  • Create knowledge – Feedback-loop med kunden
  • Defer commitment – Vent så lenge som mulig med store valg
  • Deliver fast – Tenk enkelt, unngå over-engineering
  • Respect people – La utviklere ta ansvar
  • Optimize the whole – Forstå helheten og avhengigheter

XP – Extreme Programming

XP var en av de første smidige metodene, med svært rigide regler. Har 29 hovedregler, blant annet:

  • Man skal alltid programmere parvis
  • Lag alltid enhetstester for det du skal lage først (TDD)
  • Kun ett par integrerer kode om gangen
  • Hyppige, små releaser

De fem sentrale verdiene i XP: Communication, Simplicity, Feedback, Courage og Respect.

Test metodikk-kunnskapen din

Øv på spørsmål om Agile, Scrum, Kanban og smidige prinsipper.

Start metodikk-quiz →