Oppgaver uke 42 søndag 16. oktober 2016 13.55 Systemutvikling 1. Hva er systemutvikling? Systemutvikling er prosessen hvor man lager og opprettholder informasjonssystemer. Systemutvikling involverer alle fem IS komponenter som vist i modellen: 2. Hvorfor er systemutvilkling både utfordrende og risikabelt? Systemutvikling er utfordrende og risikabelt da mange prosjekter aldri bli ferdige, og havner ofte langt over (200-300%) budsjettrammen. Av de som fullfører prosjektet innenfor budsjett og tidsrammen oppnår sjeldent prosjektets mål. Høy risiko for fiasko selv med kompetente utviklere som følger en fornuftig metode. 3. Hvilke faser / aktiviteteter inngår i SDLC? SDLC (System Development Life Cycle) er den tradisjonelle prosessen brukt til å utvikle informasjonssystemer. I SDLC blir systemutvikling delt inn i faser, og noen organisasjoner bruker 8-faser, mens andre bruker 5-faser som nevnt i boken "Experiencing MIS" som er delt inn i fasene: System definiton er fasen der "ledelsens" uttalelser av hva systemet trenger definerer systemets behov. Requirements analysis er fasen der prosjektplanen brukes for at utviklerne skal kunne identifisere funksjoner og egenskaper til det nye systemet. Denne fasen resulterer i et sett med godkjente systembehov. Component design er fasen der systembehovene blir brukt til å lage system komponenter. Implementation er fasen der komponentene implementeres, testes og systemet installeres hos bruker. Maintenance er en fasen der feil og nye systembehov fra brukeren brukes til å starte prosessen igjen som vist i modellen under, og det er derfor denne fasen er en syklus. 4. Drøft hver av følgende utfordringer ifm systemutvikling: kravspesifikasjon. Hvordan, hva gjøres.. Å definere kravspesifikasjoner er den viktigste fasen i systemutvikling, og utfordringen med kravspesifikasjoner er å finne ut hva systemet faktisk skal gjøre, hvordan ting skal se ut og lignende. Det er vanskelig å finne ut av dette, men også å vite på forhånd hva som er nødvendige spesifikasjoner. Hvis kravspesifikasjonene er feil, vil også systemet bli feil. Hvis man får fullstendige definerte krav som er satt og riktige i utgangspunktet blir hele prosessen lettere for utviklerne. Ofte lager utviklerne en prosess der man kan stille spørsmål til systemet der spørsmål hjelper til å definere kravspesifikasjoner man bør ha. IS-100 Introduksjon til informasjonssystemer Page 1
endringer i behov og ønsker Hvis behov og ønsker endres må det avgjøres om man skal stoppe prosjektet og begynne på nytt for å implementere endringene, og dette kan være både kostbart og tidskrevende hvis det er et stort prosjekt. Hvis det ofte er endringer som fører til at utviklerne må starte på nytt blir prosjektet dyrt og kanskje aldri ferdig da det alltid kommer nye behov og ønsker. Så man må bestemme seg for kravspesifikasjoner og forholde seg til det hele veien, og gjøre fremtidige endringer i System Maintenance fasen. endring i teknologi, rammebetingelser Her gjelder litt det samme som endringer ved behov og ønsker og man må bestemme seg for om man vil utvikle på teknologien og de rammene man har og kanskje ende opp med å levere et system på et utdatert system, eller starte på nytt og bytte til den nye teknologien. planlegging og gjennomføring; økonomi; Met tanke på økonomi under planlegging og gjennomføring er dette nesten umulig å estimere, så en fast sum kan være veldig "synsing". Og er veldig avhengig av om et lignende system er utviklet av utviklerne før, så de kan bruke tidligere kode og erfaring til å estimere pris. hvordan handtere diseconomics of scale i prosjekter? Diseconomics of scale er begrepet i prosjekter da man legger til flere utviklere som fører til at det gjennomsnittlige bidraget til hver utvikler minsker. Så hvis man vil fullføre prosjektet raskere ved å legge til nye utviklere, trenger kanskje disse opplæring og ifølge Brooks'Law "Adding more people to a late prosjekt makes the project later" vil man få disconomies of scale ved å legge til flere utviklere gir mindre bidrag i forhold til kostnad. Dette kan håndteres ved å dele utviklere inn i mindre grupper som har ansvaret for utvikling av hver sin modul. 5. Hvilke faktorer vil avgjøre om et tenkt informasjonssystem skal utvikles eller skrotes. Se feasability. For å finne ut om et tenkt IS skal utvikles eller ei må utvikleren først finne ut om prosjektet er gjennomførbart. Det er fire dimensjoner involvert: kostnad, tidsskjema, teknisk, organisasjon Kostnad; sier noe om kostnader og sammenligner med det nye systemets verdi. Tidsskjema; sier noe om tidsplanen for prosjektarbeidet. Teknisk; sier noe om prosjektet i det hele tatt er teknisk mulig å utføre eller om eksisterende teknologi utfyller kravene til det nye systemet Organisasjon; sier noe om det nye systemet passer inn i organisasjonens skikker, kultur, juridiske krav. Hvordan si noe om kost, nytte, tidsbruk, organisasjonsmessige konsekvenser av et TENKT system? Når man har definert prosjektets mål og omfang vurderes gjennomførbarheten. Det å si noe om kost, tidsbruk og organisasjonsmessige konsekvenser er vanskelig og er avhengig av systemets mål og omfang. Dette kan ofte gjøres ved hjelp av analyse og system definisjons fasen i SDLC, og evt starte med en prototype. 6. Forklar fordeler og utfordring med å utvikle en prototype? Fordeler: Feedback, feil/mangler kan identifiseres tidlig i prosessen (det er billigere å fikse feil på en prototype enn et ferdig utviklet system), potensielle kunder/brukere føler seg mer involverte i utviklingsprosessen, og kan dessuten tillate en kunde å gjennomføre opplæring av eventuelle ansatte som skal bruke systemet. Ulemper: Dersom det fokuseres for mye på en prototype, kan utviklerne glemme hvorvidt sluttsystemet vil fungere optimalt. Kunden kan dermed bli skuffet dersom ikke alle funksjonene som prototypen inneholdt inkluderes i sluttproduktet. Det er dyrt å lage prototyper, som regel lages prototype i begynnelsen av prosjektarbeidet, ofte før man har fått finansieringen. 7. Hvordan gå fra kravspec til et system som kan testes? Som beskrevet i oppgave 3. 8. Hva menes med Analysis Paralysis Analysis paralysis: Når det brukes for lang tid til å dokumentere behov i et prosjekt. Plattform / HW Finne spesifikasjoner og plattform systemet skal kjøres på. Funksjonalitet? Finne hvilke funksjoner som skal implementeres i designet. IS-100 Introduksjon til informasjonssystemer Page 2
9. 10. 11. Data? Hvordan skal data lagres, database? Forklar hva som skjer ved implementering av et IS. Når design fasen i SDLC er ferdig starter implementeringsfasen der oppgavene er å lage, teste og konvertere brukerne til det nye systemet. Utviklerne Hvordan testes et IS? Når utviklerne er ferdig med testing av hver modul, integreres disse til systemet og testes med systemet. Dette gjøres ofte ved å ha en testplan som inneholder sekvensen for operasjoner som må kjøres i systemet. Utviklerne konstruerer hver av komponentene uavhengig av hverandre. Dermed installerer de alt som er nødvendig for systemet. Dermed dokumenterer de og gjennomgår test prosedyrer. hvilke ulike typer tester har vi? Det finnes mange nivåer av testing og i boken nevnes PQA (product quality assurance) som er profesjonelle IT-Testere som følger en testplan. Ellers så finnes alt ifra enhets testing og system testing til bruker testing som typisk vil være en Alpha / Beta-Tester. Quality Assurance QA (Kvalitetssikring) er aktiviteter for å sikre kvalitet. Hvilke QA aktiviteteter kjenner du til, eller hva kan du tenke deg til bidrar til kvalitet ifm Systemutvikling? Bruk av QA er viktig i systemutvikling, og QA aktiviteter som er mest kjent for brukere er typisk Beta-Tester som er en godt utviklet prototype brukerne kan benytte seg av for å finne feil og mangler på systemet. Dette avlaster utviklerne selv og brukere kan stå for store deler av testingen. 12. Innføring kan gjøres på flere måter, drøft fordeler og ulemper ved hver av dem. Alt på en gang, pilot, pilot, stegvis. Pilot: Organisasjonen implementerer hele systemet på en begrenset del av virksomheten. Fordeler: Hvis systemet svikter, svikter det bare på et begrenset område. Ulemper: Man kan ende opp med å ikke ha tilgang til det gamle systemet om nødvendig. Phased: Systemet fases inn i organisasjonen. Fordeler: Man implementerer og tester bit for bit til hele systemet er installert. Ulemper: Hvis systemet har for integrerte moduler kan ikke bit for bit installeres. Parallel: Det nye systemet kjøres parallelt med det gamle. Fordeler: Krasjer det nye systemet, kan man fortsatt bruke det gamle. Ulemper: Dyrt da bedriften må kjøre flere systemer. Plunge: Organisasjonen skrur av det gamle systemet og starter det nye direkte. Fordeler: Rask og enkel overgang fra gammelt til nytt system. Ulemper: Hvis det nye systemet feiler, har de ikke noe gammelt system å støtte seg på. 13. Drøft fordeler og utfordringer med Fossefallsmodellen. I SU-metoden fossefall skjer alt i ett løp som gjør det er lett å følge og forstå modellen. Hver fase har et definert start og sluttpunkt, der det er lett å se fremdriften etter hver fase er avsluttet. Dette reduserer risikoen for å gå over budsjett og tidsrammen som er gitt. Fossefallsmodellen fungerer bra for små prosjekter, men når det gjelder større prosjekter er utfordringen med fossefall å gå tilbake til en tidligere fase for å gjøre endringer man finner ut man må implementere senere i prosjektet. Testingen starter når koden er ferdig 14. Estimering; ulike tilnærminger; 1. jobbe til timene er oppbrukt, da er vi ferdige. 2. jobbe fram til deadline, levere (kjenner dere til denne) 3. Finne ressursbehov for hver komponent som skal utvikles. 15. Hvordan balansere Funksjonalitet (scope), kostand, tid, kvalitet? Vi kan balansere funksjonalitet, kostnad, tid og kvalitet ved bruk av "trade-off" som vist i bildet under: 16. 17. Hva menes med divide and conquer ifm prosjektgjennomføring? Divide and conquer er en strategi for store systemer der man bryter ned store oppgaver til flere små for å enkelt behandle de. Ved å gjøre dette kan man enklere estimere tid og kostnader for prosjektet. Hva er, og hva er hensikten med Work Breakdown Structure *(WBS)? WBS er et hierarki av oppgaver som må utføres for å fullføre et prosjekt. Hensikten er å dele store prosjekter opp i mindre deler for kunne definere omfanget av prosjektet. IS-100 Introduksjon til informasjonssystemer Page 3
18. 19. Hva er blitt tatt opp som svakheter med Waterfall, som løes vha en mer agil tilnæring til SU. Se oppgave 13. Hva kjennetegner agil tilnærming til SU? Agile tilnærming er en teknikk som løser problemer i SDLC og kjennetegnes ved disse prinsippene: 20. Scrum er en blant mange agile metoder, hva kjennetegner denne? Scrum er et rammeverk basert på empirisk prosesskontroll og kjennetegnes ved at det er definert Scrum-Team som er selvdrevet og definerer sine egne mål for programutviklingen. Disse målene nåes ved å utvikle konkrete produktinkrementer i iterasjoner på 1-4 uker. 21. Hva er brukerhistorier i Scrum? IS-100 Introduksjon til informasjonssystemer Page 4
22. Brukerhistorier er historier som beskriver hvordan en bruker ønsker å anvende et system. Disse brukerhistoriene brukes gjerne som en enkel måte å definere viktige funksjoner til et system på. Hva er planning-poker? "Planning poker, also called Scrum poker, is a consensus-based, gamified technique for estimating, mostly used to estimate effort or relative size of development goals in software development. In planning poker, members of the group make estimates by playing numbered cards face-down to the table, instead of speaking them aloud. The cards are revealed, and the estimates are then discussed. By hiding the figures in this way, the group can avoid the cognitive bias of anchoring, where the first number spoken aloud sets a precedent for subsequent estimates." From <https://en.wikipedia.org/wiki/planning_poker> 23. Hva er backlogg? Backlogg er det som ligger i kø (se bilde oppgave 20.) Har har vi "Product backlog" som er funksjonene som må utvikles for å nå målene. For hver av disse funksjonene lager man oppgavelister de legges så i "Sprint backlog". IS-100 Introduksjon til informasjonssystemer Page 5