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
Kravspesifikasjon
Alle krav defineres fullstendig
- 2
Design
Systemarkitektur og detaljdesign
- 3
Implementasjon
Koden skrives
- 4
Testing
Systemet testes
- 5
Vedlikehold
Drift og videreutvikling
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
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.
De 4 grunnleggende smidige prinsippene
Utover Agile Manifesto finnes det 4 nøkkelprinsipper som kjennetegner smidig utvikling:
-
1
Problem-based
Store problemer brytes ned i mindre, prioriterte deler. Avhengig av utgangspunkt er det ulike veier til løsningen.
-
2
Collaborative
Flere roller er involvert fra begynnelsen: PO, SM, Teknisk spesifikasjon, Implementering, Testing, Distribusjon. Brukere kan starte prosessen.
-
3
Iterative
Korte iterasjoner med rask feedback. Du planlegger smått, beveger deg fremover og tilbake. "Think big, act small."
-
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.
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
Scrum vs. Kanban
| Egenskap | Scrum | Kanban |
|---|---|---|
| Iterasjoner | Faste sprinter (1–3 uker) | Ingen faste iterasjoner |
| Planlegging | Sprint Planning hvert sprint | Kontinuerlig, pull-basert |
| Roller | PO, SM, Dev Team | Ingen pålagte roller |
| Grenser | Tidsboks (sprint) | WIP-grenser per kolonne |
| Leveranse | Ved slutten av sprint | Kontinuerlig |
| Meetings | Obligatoriske seremonier | Ingen standardmøter |
| Endringer | Ikke i pågående sprint | Tillatt når som helst |
| Best for | Klar backlog med estimerbare oppgaver | Kontinuerlig 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.