GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG INF1050 V16
HVA ER EN SYSTEMUTVIKLINGSPROSESS? De aktivitetene som utføres for å utvikle et IT-system Eksempler på aktiviteter: - Planlegging - Kravinnsamling og -analyse - Design - Programmering/koding - Testing
HVA ER EN PROSESSMODELL? - En forenklet representasjon av en prosess - Sier noe om hvordan vi bør gjennomføre systemutviklingen - En slags oppskrift for hvordan vi bør gå frem for å utvikle systemet - Skiller mellom modeller av prosesser - det vi sier vi skal gjøre, og den faktiske systemutviklingsprosessen - det vi faktisk gjør
1 HVORFOR ER DET VIKTIG Å DEFINERE PROSESSMODELLER PÅ ULIKE NIVÅER?
LØSNINGSFORSLAG OPPGAVE 1 - Generelle modeller inneholder lite detaljer - Må tilpasse prosessen etter de ulike prosjektene - Kan f.eks tilpasse aktiviteter, roller, ansvarsforhold og frekvens på rapporter
2 A) BESKRIV FOSSEFALLSMODELLEN
LØSNINGSFORSLAG OPPGAVE 2A - En plandreven prosessmodell - Separate faser, gjør i hovedsak en aktivitet ferdig før man går videre til neste - Går i utgangspunktet ikke tilbake til en aktivitet når man er ferdig med den - Er derfor mindre tilpasset endringer i kravene underveis
FOSSEFALLSMODELLEN Kravspesifisering Forenklet modell Design av systemet Implementasjon Testing Vedlikehold
2 B) FORKLAR FORSKJELLEN PÅ SMIDIG OG PLANDREVET UTVIKLING
LØSNINGSFORSLAG OPPGAVE 2B Plandrevet: - Prosessaktivitetene planlagt på forhånd. Progresjon måles i henhold til planen - En tung prosess inkluderer mange aktiviteter og ofte roller. Krever formelle, detaljerte og konsistente prosjektdokumenter - Ofte for-tunge Smidig: - Planleggingen gjøres litt etter litt (inkrementelt) - Enklere a endre prosessen for a tilpasse endrede krav fra kunden - Fokuserer mer pa fundamentale prinsipper (f.eks. kontinuerlig testing ). Har færre formelle dokumenter og er ofte mer iterative DAG SJØBERG
2 C) FORESLÅ ET UTVIKLINGSPROSJEKT DER DET KAN VÆRE GUNSTIG Å BENYTTE FOSSEFALLSMODELLEN
LØSNINGSFORSLAG OPPGAVE 2C Det finnes en rekke kjente systemer som har en endelig og fastsatt kravspesifikasjon. Med stabile krav, kan man ofte med sikkerhet anvende en plandreven prosess. Eksempel: Kalkulator
LØSNINGSFORSLAG OPPGAVE 2C Det eksisterer også en rekke systemer som er kritiske. Dette betyr at en eventuell systemfeil kan forårsake tap av menneskeliv eller andre store verdier. Slike systemer bør i utgangspunktet ikke leveres inkrementelt og det settes krav til at kravspesifikasjonen er komplett før utviklingen starter. Eksempel: Flytrafikksystemer, atomreaktor og lignende
LØSNINGSFORSLAG OPPGAVE 2C Om noen eller flere av de følgende faktorene er tilstede, kan det være gunstig å benytte fossefallsmodellen: Systemet som skal utvikles er stort Det er store geografiske avstander mellom utviklerne Systemet som skal utvikles er velkjent Systemet er et kritisk sanntidssystem
SMIDIG UTVIKLING - Det finnes ulike smidige utviklingsmetoder, eksempler fra dette kurset er Scrum, XP og Kanban - Fokus på å håndtere endringer underveis i prosessen - Inkrementell utvikling - Inkrement: Tillegg i funksjonalitet - Iterasjon: Syklus i prosessen
3 NEVN NOEN PRAKSISER SOM BLIR BENYTTET I EXTREME PROGRAMMING (XP)
EXTREME PROGRAMMING (XP) Smidig utviklingsmetode Programmeringsfokusert Levering til kunden annenhver uke All kode som skal legges til må kjøres gjennom tester - består den ikke testene legges den ikke til
LØSNINGSFORSLAG OPPGAVE 3 Inkrementell planlegging Test-først-utvikling Refaktorering Kunde på stedet Kollektivt eierskap Parprogrammering
4 A) HVA ER SCRUM?
LØSNINGSFORSLAG OPPGAVE 4A - En smidig utviklingsmetodikk - Inkrementell utvikling - Jobber med oppgavene i tidsintervaller (sprinter)
EMILIE HALLGREN OG KRISTIN BRÆNDEN SCRUM - FORENKLET MODELL NB! Flere sprinter SPRINTER PLANLEGGING AVSLUTNING GJENNOMFØRING
4 B) HVA ER EN SPRINT, OG HVILKE ULIKE FASER BESTÅR DEN AV?
LØSNINGSFORSLAG OPPGAVE 4B FASER: ASSESS - Vurderer nye og/eller eksisterende oppgaver (krav, brukerhistorier) i product backlog. Hva er målet med sprinten? SELECT - Velge oppgaver til sprint. Her velger man de mest prioriterte oppgavene i product backlog ut fra hvor mye teamet har av kapasitet per sprint IMPLEMENT - Her skal Scrum Master beskytte teamet fra forstyrrelser og teamet skal implementere oppgavene som har blitt valgt for sprinten EVALUATION -Evaluere hvordan sprinten gikk. Ble vi ferdig med alle målene vi satte oss? Var det dette kunden ville ha?
4 C) HVA ER EN SCRUM MASTER?
SCRUM TEAM Et tverrfaglig team som skal utvikle inkrementet i hver sprint. Alle utover de to øvrige rollene er likestilte, og enhver har ansvar for å bidra med sin kompetanse under en sprint. ROLLER I SCRUM SCRUM MASTER Ansvarlig for å holde daily- standups og å beskytte utviklingsteamet mot forstyrrelser fra blant annet kunde. I implementeringsfasen er det derfor Scrum Master som hovedsakelig skal ta seg av all kundekontakt. PRODUKTEIER Eier av visjon og representant for interessentene. Ansvarlig for product backlog og for hvilke oppgaver som skal prioriteres. Produkteier skal aldri være Scrum Master.
4 D) HVA ER EN BACKLOG?
LØSNINGSFORSLAG OPPGAVE 4D En prioritert liste med arbeidsoppgaver som skal utføres i prosjektet. Produkteieren har ansvar for å vedlikeholde denne listen. Består ofte av brukerhistorier (brukerhistorier kommer senere i kurset).
5 A) HVA ER KANBAN?
LØSNINGSFORSLAG OPPGAVE 5A Kanban er en teknikk fra lean production, basert på prinsipper fra Toyota, for å finne et system som forbedrer og opprettholder et høyt nivå av produksjon. Man gjør en oppgave til den er ferdig uten å nødvendigvis sette en tid for dette, slik at man sikrer god utførelse, dvs. man bruker ikke tidsbokser. Når en oppgave er utført, velger man en ny. Basert på hva som er viktigst der og da.
LØSNINGSFORSLAG OPPGAVE 5A Oppstår det et kritisk problem underveis, stopper man produksjonen og fokuserer all energi på å løse problemet, før man fortsetter normal produksjon. Dette skal hindre at problemer hoper seg opp og at de blir løst. WIP (Work in Progress) i Kanban angir maks antall oppgaver som kan utføres til enhver tid. Ved å ikke gjøre flere oppgaver til enhver tid enn teamet tåler, skal det sikre prosjektet god flyt.
5 B) BESKRIV FORSKJELLENE PÅ SCRUM OG KANBAN
LØSNINGSFORSLAG OPPGAVE 5B Kanban baserer seg på arbeidsflyt (jobber med en oppgave til den er ferdig). Scrum baserer seg på tidsbokser (velger oppgaver til en sprint som varer et visst antall uker) med mer definerte faser og roller.
6 FORESLÅ ET UTVIKLINGSPROSJEKT DER DET KAN VÆRE GUNSTIG Å BENYTTE SMIDIG UTVIKLING
LØSNINGSFORSLAG OPPGAVE 6 Noen utviklingsprosjekter der det kan være gunstig å benytte smidig utvikling: Interaktive applikasjoner Utvikling av nye idéer Ved små utviklingsteam og prosjekter Prosjekter hvor det er sannsynlig at kravspesifikasjonen endres underveis
7 Et system utvikles i henhold til en presis og detaljert kravspesifikasjon skrevet av kunden. Systemutviklerne har argumentert for å bruke fossefallsmodellen. Det er først under testing at kunden begynner å ane at det var mangler ved kravspesifikasjonen. Systemet tas i bruk og brukerne oppdager at systemet er ubrukelig fordi det ikke løser deres problem. Diskuter hva som kunne vært gjort for å hindre eller redusere dette problemet.
LØSNINGSFORSLAG OPPGAVE 7 Hvordan man kunne ha forhindret eller redusert dette problemet: Levere inkrementelt La bruker prøve tidlige versjoner i sitt naturlige miljø, slik at utviklingsteamet kan få bekreftet at de er på riktig vei tidligere i prosjektet Involvere kunden i større grad Hvilke(t) problem(er) er det kunden egentlig trenger å få løst?
TAKK FOR MEG Spørsmål? Informasjonen er hovedsaklig basert på forelesningsfoilene, samt fjorårets presentasjon laget med Emilie Hallgren