Smidig metodikk Flashcards
Smidig planlegging
• Smidige metoder i programvareutvikling er en iterativ tilnærming der programvaren blir utviklet og levert til kundene som ”tillegg” (”increments”)
• Ofte er ikke tilleggene (increments) planlagt på forhånd men avgjøres under utviklingen
– Hva som tas med i en iterasjon avhenger av utvikling
i prosjektet og kundens prioriteringer
• Kundens prioriteringer og krav endrer seg. Derfor kan det være fornuftig å ha en fleksibel plan som kan ta høyde for disse endringene
Historiebasert (”Story-based”)
planlegging
• System spesifikasjonen i smidig utvikling er basert på
brukerhistorier (user stories) som reflekterer
egenskapene i systemet
– ”Som bruker, ønsker jeg å se luftkvaliteten der jeg bor
fordi jeg lider av astma”
• Teamet diskuterer historier og rangerer dem i forhold til
tiden de tror det tar
• Historier som skal være med i en ”iterajon” velges, der
antall historier reflekterer tiden det tar å levere en iterajon
(typisk 1-4 uker)
Scrum Master (fasilitator)
• Sørger for at Scrum prosesser blir fulgt • Leder ”daily stand up” • Hindrer støy slik at utviklerne kan fokusere på oppgavene • Teamets ”coach og beste venn” • Koordinerer SPRINT planlegging, og estimering av Sprint backlog
Scrum Team
- Utviklere, testere, arkitekt,…
- Selvstyrt
- Utvikler systemet
Product Owner
• Representerer kunden • Setter opp mål for hver SPRINT • Ansvar for product backlog, o for å prioritere aktiviteter i backlog
Product Backlog (produktkø)
“Items” i produktkøen kan uttrykkes som
• User stories
• Use Cases
• Andre måter å spesifisere krav på som passer
Lean –viktige prinsipper
– JIT (Just in Time) – Tilfredsstille kunden – Flyt – Visualisering – Unngå “Waste” – Støtte opp om endringer
Noen viktige grunner til “waste” i
programvareutvikling
• Kompleksitet
• For stort skille mellom de som tar avgjørelser og
de som gjør jobben
• Teknisk gjeld
Just-In-Time (JIT)
• Ikke lag noe før det er etterspurt.
• Ikke ta endelige avgjørelser for tidlig.
• Unngå waste:
– Kan vise seg at enkelte oppgaver ikke er nødvendige å
implementere i det hele tatt.
– Ved å utsette oppgaver blir de ofte bedre implementert enn
om de blir tatt tidlig.
– Reduser flaskehalser.
Teknisk gjeld
– “shortcuts” som tas i utvikling og
vedlikehold for å oppnå kortsiktige
fordeler
– Men som i det lange løp vil føre til økte
kostnader på vedlikhold og videre
utvikling.
- ”Alt som gjør det vanskelig å endre/modifisere kode”
• Skriv “clean code”, konsis, enkel med få avhengigheter
• Ny funksjonalitet leder til større kodebase og økt
kompelsitet; refaktorering reduserer gjelden.