torsdag 23. april 2015

INF1050: Ukesoppgaver 2

Hva er en prosessmodell?
En prosessmodell er en modell som definerer hvordan man skal strukturere arbeidsprosessen i et prosjekt.

Vi skiller også mellom to begreper: 
Deskriptiv - beskrivelsen av en prosess slik vi mener vi utfører den
Normativ (preskriptiv) beskriver en prosess slik noen mener den bør være.

Hvorfor er det hensiktsmessig å definere prosessmodeller på ulike nivåer (generelle, bedriftsnivå, avdeling/prosjektnivå)?
Det kan være hensiktsmessig da ingen prosjekter er like som gjør at man blir nødt til å tilpasse prosessen etter hvert prosjekt. Av ting som tilpasses er det faser/aktiviteter, roller, ansvarsforhold, dokumentformater, formalitet/frekvens på rapporter og gjennomganger.

Beskriv fossefallsmodellen:

Fossefallsmodellen går i hovedsak ut på at om en fase er ferdig går man i utgangspunkt ikke tilbake til den. Fossefallsmodellen er plandreven. Fossefallsmodellen består av fem forskjellige faser.
Kravspesifisering, system og softwaredesign, implementasjon og enhetstesting, integrasjon og systemtesting og innstallasjon og vedlikehold. 


Hva er forskjellen på smidig utvikling og plandreven utvikling?
I plandreven utvikling er prosessaktivitetene planlagt på forhånd. Progresjon måles i henhold til planen. I smidig utvikling derimot gjøres planleggingen litt etter litt (inkrementelt).

Plandreven utvikling kan sies å være "tyngre". Inkluderer mange aktiviteter og roller. Krever formelle, detaljerte og konsistente prosjektdokumenter. Smidig utvikling gjør det enklere å endre prosessen for å tilpasse endrede krav fra kunden.

Plandreven utvikling vektlegger aktiviteter som gjøres tidlig i prosessen (planlegging, analyse og design). Smidig utvikling fokuserer mer på fundamentale prinsipper, for eks kontinuerlig testing, har færre formelle dokumenter og er ofte mer iterative.

Foreslå et utviklingsprosjekt der det kan være gunstig å benytte fossefallsmodellen.
Med stabile krav kan man stort sett benytte seg av fossefallsmodellen. For eksempel en kalkulator.

Hva er XP og nevn noen praksiser som blir benyttet i Extreme Programming (XP). 
XP er..- 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.

Praksiser:
- Inkrementell planlegging
- Test-først-utviklingen
- Refaktorering
- Kunde på stedet
- Kollektivt eierskap
- Parprogrammering

Hva er Scrum?
Scrum er en smidig utviklingsmetodikk. Den baserer seg på at man deler opp arbeidet i sprinter som har en varighet på 2-4 uker. I hvert enkelt sprint er det en rekke definerte faser som utviklingsteamet skal igjennom.

Det er også vanlig at teamet hver dag besvarer følgende spørsmål:
- Hva har jeg gjort siden sist?
- Hva skal jeg gjøre i dag?
- Hvilke eventuelle hindringer har jeg?



Hva er en sprint, og hvilke ulike faser består den av? Beskriv disse. 
En sprint er en periode på 2-4 uker. Består av fire ulike 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 kapasitet per sprint.

Implement - Her skal Scrum master beskytte teamet mot forstyrrelser og teamet skal implementere oppgavene som har blitt valgt for sprinten.

Evalution - Evaluere hvordan sprinten gikk. Ble vi ferdige med alle målene vi satte oss? Var det dette kunden vill ha?

Hvilke roller er vanlig i Scrum?
Scrum Master: Har ansvar for å holde daily- standups og å beskytte utviklingsteamet mot forstyrrelser fra blant annet kunde. Det er i all hovedsak Scrum master som tar seg av kundekontakt.

Produkteier: Eier av visjon og representant for interessentene. Ansvarlig for product backlog og for hvilke oppgaver som skal prioriteres. 

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. 

Hva er en backlog?
En oppgaveliste

Hva er en kanban?
En smidig utviklingsmetodikk som er basert på prinsipper fra Toyota, for å finne et system som forbereder og opprettholder et høyt nivå av produksjon.

Forskjellen mellom kanban og scrum:
Kanban baserer seg på arbeidsflyt, (jobbe med en oppgave til den er ferdig) mens scrum baserer seg på tidsbokser, sprinter som varer et par uker med mer definerte faser og roller enn kanban.

Ingen kommentarer:

Legg inn en kommentar