Velkommen In 1030 Gruppe 4 Johanna I dag












































- Slides: 44
Velkommen In 1030 Gruppe 4 - Johanna
I dag Praktisk Repetisjon fra forrige uke: ukesoppgaver Repetisjon fra forelesning
Praktisk Oblig 4. Leveringsfrist fredag 3. april. Gruppeinnlevering. Spørsmål?
Repetisjon fra forrige uke
Systemutviklingsprosess (= faktisk, reell prosess) vs Prosessmodell (=formell prosess) (kalles også gjennomføringsmodell) – En abstrakt, forenklet representasjon av en prosess
Plandrevne prosjekter • Sivilingeniørprosjekter (bygg & anlegg) er plandrevet, dvs. relativt mye tid på planlegging og utviklingen dokumenter som styrer prosjektet • Separate faser • Vanskelig å tilpasse endringer i krav underveis
Plandreven: Fossefall
Smidige/agile prosjekter Klassisk ingeniørtilnærming vist seg ofte å ikke være egnet. Derfor er “smidige metoder” nå blitt det normale ● ● Vektlegging av kode fremfor (omfattende) design og dokumentasjon Vektlegging av samarbeid med kunde fremfor kontraktsforhandlinger Raskere levering av kode og raske endringer tilpasset endrede brukerkrav TIlrettelegger for at det kan komme endringer midt i prosjektet
Smidig: Scrum Jobbe i iterasjoner og sprinter Man må estimere hvor lang tid en oppgave vil ta når man planlegger sprinten. Ulike type møter ● Sprint planning ● Daily scrum ● Sprint review ● Sprint retrospective Ulike roller ● Produkteier ● Scrum master
Smidig: Kanban Oppgaver flyter fritt, man må ikke estimere hvor lang tid oppgavene vil ta. Man unngår at oppgaver stopper opp ved at man kun kan ha et visst antall oppgaver som man jobber på samtidig.
Bruke boards for å planlegge
Ukesoppgaver SPØRSMÅL 1 Hvilke fundamentale aktiviteter utføres i systemutvikling utover programmering? SPØRSMÅL 2 Hvilke aspekter ved systemutvikling tilsier at det er en ingeniørdisiplin? SPØRSMÅL 3 Hva er en systemutviklingsprosess? Opp med hånda når dere er ferdige, eller gi meg et tegn!
Spørsmål 1 Spørsmål: Hvilke fundamentale aktiviteter utføres i systemutvikling utover programmering? Svar: Programmering er viktig, men også: ● problemanalyse og planlegging ● kravarbeid (kravinnsamling, kravanalyse, kravspesifikasjon) ● utforming og design ● testing, validering og dokumentering ● konfigurasjonsstyring og versjonshåndtering ● innføring, vedlikehold, videreutvikling
Spørsmål 2 Spørsmål: Hvilke aspekter ved systemutvikling tilsier at det er en ingeniørdisiplin? Svar: ● Fokus på systematisk metoder: ● Planlegging og forutsigbarhet. ● Oppdeling og strukturering av problemer i mindre komplekse bestanddeler. ● Modularitet og gjenbruk. ● Abstraksjon og modellering. ● Dokumentert prosess og systematisk kvalitetssikring.
Spørsmål 3 Spørsmål: Hva er en systemutviklingsprosess? Svar: Systemsutviklingsprosessen er de aktivitetene som inngår i å utvikle et IT-system. Hvordan aktivitetene organiseres, hvor mye man gjør av hva og utdeling av roller. (En prosessmodell er et rammeverk for hvordan man skal komme fra A til Å i utviklingen av et system. )
Ukesoppgaver SPØRSMÅL 4 Hvorfor er det viktig å ha en god systemutviklingsprosess? SPØRSMÅL 5 Det er ofte stor prisvariasjon i anbud på IT-prosjekter sammenlignet med andre bransjer som bygg- og anleggsbransjen. Hva kan denne prisvariasjonen skyldes? SPØRSMÅL 6 Hvorfor er det hensiktsmessig å definere prosessmodeller på ulike nivåer (generelle, bedriftsnivå, avdelings/prosjektnivå)?
Spørsmål 4 Spørsmål: Hvorfor er det viktig å ha en god systemutviklingsprosess? Svar: Systemutviklingsprosessen påvirker resultatet på ulike nivåer: ● Prosjektstyring ● Arbeidsmiljø ● Type og mengde kommunikasjon utviklere har med kunder og ● med hverandre ● Estimering av tidsbruk ● Hvor godt man tar høyde for endringer
Spørsmål 5 Spørsmål: Det er ofte stor prisvariasjon i anbud på IT-prosjekter sammenlignet med andre bransjer som bygg- og anleggsbransjen. Hva kan denne prisvariasjonen skyldes? Svar: ● Utvikling av IT-systemer → Ny disiplin ○ Manglende statistikk for estimering av ressursbruk ○ Estimering kan være svært vanskelig! ● Usikkerhet → Hva skal lages? ○ Kunden må forstå hva de vil ha/utviklere må forstå hva de skal lage ● Kvalitet → Ulike oppfatninger av hva begrepet innebærer ○ Avhengig av kontekst og personlige oppfatninger ● Ulike utviklingsprosesser/måter å jobbe på ○ Stor variasjon i ressurser og kostnader (eks: testing)
Spørsmål 6 Spørsmål: Hvorfor er det hensiktsmessig å definere prosessmodeller på ulike nivåer (generelle, bedriftsnivå, avdelings/prosjektnivå)? Svar: En generelle prosessmodellen er en abstrakt og forenklet formell representasjon av en prosess. Man kan for eksempel tilpasse aktiviteter, roller, ansvarsforhold og frekvens på rapporter. Å definere ulike nivåer er hensiktsmessig fordi: ● Man er i større stand til å tilpasse seg ● Man skaper bedre arbeidsflyt ved å ta hensyn til den faktiske arbeidspraksisen ● Type prosessmodell bør påvirkes av type prosjekt, kulturen i bedriften, ogkompetansen ● Lokal praksis må tas i betraktning ○ Bedrifter er ulike: kompetansen, kulturen og prosjekter varierer ● Graden av generaliserbarhet påvirkes
Ukesoppgaver SPØRSMÅL 7 a Beskriv fossefallsmodellen. SPØRSMÅL 7 b Forklar forskjellene på smidig utvikling og plandrevet utvikling. SPØRSMÅL 7 c Foreslå et utviklingsprosjekt der det kan være gunstig å benytte fossefallsmodellen. Begrunn svaret.
Spørsmål 7 a Spørsmål: Beskriv fossefallsmodellen. Svar: Fossefallsmodellen er en plandrevet prosessmodell. ● Utviklingen styres av forhåndsspesifiserte planer. ● Består av 5 veldefinerte faser. ○ Kravspesifisering ○ System- og softwaredesign ○ Implementering og enhetstesting ○ Integrasjon- og systemtesting ○ Installasjon og vedlikehold Om en fase er ferdig, kan man ikke gå tilbake til den. Derav fossefall-modellen.
Plandreven: Fossefall
Spørsmål 7 b Spørsmål: Forklar forskjellene på smidig utvikling og plandrevet utvikling. Svar: Hovedforskjellen på smidig utvikling og plandrevet utvikling er dens evne til å håndtere kravendringer underveis. Smidig utvikling er en utviklingsmetode der man prioriterer å håndtere endringer fremfor slavisk å følge en plan. Smidig vektlegger inkrementell utvikling og korte iterasjoner. I plandrevne prosesse leveres systemet først når det er helt ferdig, og kravhåndtering foregår hovedsakelig i første fase av prosessen.
Smidig vs. plandrevet
Spørsmål 7 c Spørsmål: Foreslå et utviklingsprosjekt der det kan være gunstig å benytte fossefallsmodellen. Begrunn svaret. Svar: Det kan (men ikke alltid) det være gunstig å benytte fossefallsmodellen hvis: ● Systemet som skal utvikles er stort (krever koordinering og god oversikt) ● Det er store geografiske avstander mellom utviklerne ● Systemet som skal utvikles er velkjent (stabile/velkjente krav) ● Systemet er et kritisk sanntidssystem: sikkerhet er viktig
Ukesoppgaver SPØRSMÅL 8 a Hva er scrum? SPØRSMÅL 8 b Hva er en sprint, og hvilke ulike faser består den av? Beskriv disse. SPØRSMÅL 8 c Hva er en backlog? SPØRSMÅL 8 d Hvilke roller er vanlig i Scrum?
Spørsmål 8 a Spørsmål: Hva er scrum? Svar: ● Scrum er den smidige utviklingsmetodikken som benyttes mest i dag. ● Baserer seg på tidsbokser også kalt sprinter, som ofte har en varighet på 2 -4 uker. ● Har definerte oppstarts- og avsluttningstidspunkt. ● Denne prosessmodellen består av tre faser: ○ 1. Planleggingsfasen ■ overordnede mål etableres/arkitektur designes ○ 2. Gjennomføringsfasen ■ serie med iterasjoner (sprinter) hvor hver sprint leverer et inkrement av systemet ○ 3. Avslutningsfasen ■ dokumentasjon og manualer ferdigstilles
Smidig: Scrum Jobbe i iterasjoner og sprinter Man må estimere hvor lang tid en oppgave vil ta når man planlegger sprinten. Ulike type møter ● Sprint planning ● Daily scrum ● Sprint review ● Sprint retrospective Ulike roller ● Produkteier ● Scrum master
Spørsmål 8 b Spørsmål: Hva er en sprint, og hvilke ulike faser består den av? Beskriv disse. Svar: En sprint er en iterasjon i gjennomføringsfasen (“tidsboks”) som vanligvis er på 2 -4 uker og består av følgende faser: 1. Assess: Etablere nye, eller endre eksisterende, oppgaver (krav, brukerhistorier) i backloggen. 2. 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. 3. Implement: Her skal Scrum Master beskytte teamet fra forstyrrelser og teamet skal implementere oppgavene som har blitt valgt for sprinten. 4. Evaluation: Evaluere hvordan sprinten gikk. Ble vi ferdige med alle målene vi satte oss? Var dette kunden ville ha?
Spørsmål 8 c Spørsmål: Hva er en backlog? Svar: En prioritert liste med arbeidsoppgaver som produkteieren (product owner) har ansvar for å vedlikeholde. Består ofte av brukerhistorier (om brukerhistorier kommer senere i kurset). Brukes til å estimere hva som kan gjennomføres i neste sprint.
Scrum: backlog
Spørsmål 8 d Spørsmål: Hvilke roller er vanlig i Scrum? Svar: Scrum utføres av et team som består av følgende roller: 1. 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 2. 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. 3. 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.
Ukesoppgaver SPØRSMÅL 9 a Hva er Kanban? SPØRSMÅL 9 b Beskriv forskjellene på Scrum og Kanban.
Spørsmål 9 a Spørsmål: Hva er Kanban? Svar: ● Kanban er en smidig utviklingsmetodikk som ble utviklet av Toyota for å finne et system som forbedrer og opprettholder et høyt nivå av produksjon. ● Man gjør en oppgave (Work in progress) til den er ferdig uten å nødvendigvis sette en tid for dette, slik at man sikrer god utførelse. ● Når en oppgave er utført, velger man en ny som er viktigst der og da. ● 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. ● Ved å ikke gjøre flere oppgaver til enhver tid enn teamet tåler, skal det sikre prosjektet god flyt.
Spørsmål 9 b Spørsmål: Beskriv forskjellene på Scrum og Kanban. Svar: ● Kanban baserer seg på tidsflyt (jobber med en oppgave til den er ferdig). Kanban har mindre fokus på estimering enn Scrum, og fokuserer mer på gjennomstrømning av arbeidspakker (WIP = Works In Progress). ● Scrum baserer seg på tidsbokser (velger oppgaver til en sprint som varer et visst antall uker) med klart definerte faser og roller.
Repetisjon fra forelesning
Dev. Ops Development & Operations Samme team er ansvarlig for utvikling og vedlikehold. 1. 2. 3. 4. Faster deployment Reduced risk Faster repair More productive teams
Code management Sånn som Git 1. 2. 3. 4. Code transfer Version storage and retrieval Merging and branching Version information
Pause i 15 min hvis dere vil!
Lese kap 10 og gjøre ukesoppgaver Planen er å gå gjennom dem neste uke : ) Hvis dere skriver på ark kan dere ta bilde av svarene deres så dere ikke mister dem til neste uke!
Spørsmål eller feedback? Send en mail til johannph@ifi. uio. no eller anonymt via google forms https: //forms. gle/92 VPBQv 8 o. NGVWNSPA












































