290 likes | 478 Views
Systemutvikling - noen praktiske erfaringer og betraktninger Øystein Amland HiB 31.03.04. Tema. Innledning min bakgrunn, litt IT-historie IT-systemer - systemutvikling Virksomhetsprosesser - IT-systemer : noen sammenhenger, betydning for valg : kjøpe eller utvikle applikasjon ?
E N D
Systemutvikling - noen praktiske erfaringer og betraktningerØystein AmlandHiB 31.03.04
Tema • Innledning • min bakgrunn, litt IT-historie • IT-systemer - systemutvikling • Virksomhetsprosesser - IT-systemer : • noen sammenhenger, betydning for valg : kjøpe eller utvikle applikasjon ? • Formula Prosjektstyring • erfaringer fra et utviklingsprosjekt • DashBoard Portal Server : eksempel på en standard, Web-basert intranettløsning
Innledning • Utdanning • siv.ing (NTH/NTNU) • Høyere avd. eksamen NHH, bedriftsøkonomisk analyse • Jobberfaring • systemutvikling adm.systemer (10 år) • konsulent/bedriftsrådgiver (10 år) • salg og implementering av Internett-/Web baserte løsninger (2 år) • nå : selvstendig konsulent, timelærer ved HiB, AI • roller i forhold til IT-systemer : bruker - utvikler - selger - implementatør - konsulent/kjøper • Litt IT-historie • NTH slutten av 70-tallet, hullkort, programutskrift, Univac; • SSB, lunsjpakken mistet hullkortstabelen; • ND, harddisk - egen frittstående enhet, 10 MB, 20x20 cm • da PC'en kom til verden. Når ? 1983 ! Slepbar • .. og så kom Internett ....
IT-systemer - ulike typer • Systemtyper - en mulig inndeling • administrative systemer (eksempler tavle) • kontorstøtte systemer (eksempler tavle) • bransjerettede spesialsystemer. Mange ! (eksempler tavle) • f.eks. : energiverk - NIS, telenett - NIS (eksempel: valg av NIS) • Standardsystemer - egenutviklede/spesialsystemer • Standardsys., (standard)pakker : • "standardisert" i den forstand at ulike typer virksomheter i mange bransjer kan nyttiggjøre seg systemet som det er • (i praksis : ALLTID tilpasninger for litt større virksomheter) • Spesialutviklet system for én bestemt virksomhet og ett spesielt formål • større/avanserte applikasjoner : større virksomheter • mindre spesialsystemer, f.eks. verktøy som Lotus Notes/Domino, MS Access, Visual Basic
"Prosesser" • Virksomhetsprosesser/forretningsprosesser/arbeidsprosesser • alternative betegnelser : (virksomhets)funksjoner, aktiviteter • prosesstankegangen innebærer at de enkelte funksjonsområdene i en bedrift sees i sammenheng med flyt av informasjon (og varer) gjennom og mellom de enkelte områdene • Eksempel tavle : Innkjøps- og regnskapsprosessene • Kjerneprosesser : hva skal virksomheten drive med / leve av ? • Støtteprosesser : understøtter kjernevirksomheten • Avhenger av bransje ! Eksempel bank: Se virksomhetsmodell neste side
Prosesser forts. • Eksempler støtteprosesser : • Økonomi, regnskap, personal, lønn, IT,.. • Stor grad av felles behov for ulike sektorer og bransjer • Eksempel tavle : Innkjøp - inngående fakturaer, eks. standardsystemet eFlow • Formål med IT-systemer : verktøy for å understøtte arbeidsprosessene • Eksempel innkjøps- og regnskapsprosessene : se neste foil • BPR = ?
XML Registrer bestilling Godkjenn rekvisisjon Internett Registrer rekvisisjon Leverandør Betaling XML Hovedbok Motta ordre- bekreftelse levert= bestilt Internett Bokføring Registrer faktura. Autom. fakt. kontroll Varemottak avvik Godkjenn faktura Innkjøps- og regnskapsprosesser vha. ERP-system og Web
Kjøpe eller utvikle selv ? • Behov for system er identifisert : kjøpe eller utvikle systemet selv ? • støtteprosesser : Et stort utvalg av standardpakker finnes • kjerneprosesser : Stadig flere pakker og mer funksjonalitet tilbys. • Selv store virksomheter velger i større og større grad standardpakker når det gjelder administrative løsninger (f.eks. Telenor - NIS) • MEN : Tilpasninger alltid påkrevd for litt større virksomheter • (Eksempler på standardpakker) • Spesialapplikasjoner : stadig mye egenutvikling • Anbefaling (?) • "vi er så spesielle" • faktum : eksisterende standardpakker er vanligvis bygget opp på en strukturert måte og basert på velfungerende arbeidsprosesser sett i sammenheng • ressurskrevende, kostbart og risikofylt med egenutvikling • dvs. : gode argumenter bør finnes for å satse på egenutvikling
Eksempel på systemutviklingsprosjekt : Formula Prosjektstyring - et standardsystem Erfaringer og anbefalinger
Før prosjektstart Noen sentrale spørsmål før et systemutviklingsprosjekt initieres (forutsetter at et programvarehus står bak ) : • Hva er formålet med systemet ? • standardsystem eller spesialsystem på oppdrag for en gitt bedrift ? • Hvis standardsystem • hvem er konkurrentene ? Finnes tilsvarende løsninger ? • hva er markedet (hvem er kundene) ? • Hvis spesialsystem • er det aktuelt å standardisere mhp. å kommersialisere produkt ? • Levetid ? • Arkitektur og teknologi • grensesnitt mot andre systemer • brukergrensesnitt ! • basis programvare, utviklingsverktøy
Formula Prosjektstyring (Formula PS) • Standard prosjektstyringssystem rettet mot både offshore industri og landbaserte virksomheter / prosjektorganisasjoner • Verktøy for planlegging og oppfølging av (større) prosjekter • Utviklet av Formula OpenSoft (opprinnelig et utviklingsmiljø fra Computas og Norsk Data, senere en del av Merkantildata / Ementor) med bistand bl.a. fra NPC, Terramar Prosjektledelse og Chr. Michelsens Institutt. • Utviklingsprosjekt : • ca. 16.000 timer, 8-10 utviklere, 1 1/2 år • moduloppbygget, funksjoner for prosjektplanlegging og -oppfølging med bl.a. prosjektstruktur, periodisering, ressursstyring, nettverksplanlegging og grafikk • 50-60 funksjoner, 60 tabeller i databasen
Før prosjektet startes • Skal systemet utvikles ? • formål, behov, marked ? Er tilsvarende system allerede tilgjengelig ? Hvis standardsystem, er det tilstrekkelig kommersielt grunnlag ? • Formula : • Mangelfullt forarbeid for å verifisere markesmessige muligheter • Undervurdering av kostnader knyttet til kommersialisering • Anbefalinger : • Undersøk om det finnes systemer på markedet • Vær trygg på at det er økonomisk og kost-nytte messig grunnlag for å utvikle systemet
Brukermedvirkning • "den som har skoen på .... • Brukerne kjenner best funksjonelle behov, ønsket brukergrensesnitt og prioriteringer • Formula : • For liten involvering av potensielle fremtidige kunder/brukere • Konsekvenser : behov for ut-data siden for lite vektlagt (rapportering, spørringer, enkel grafikk, analyser,...) • Viktigheten av enkelt og tiltalende brukergrensesnitt for lite fokusert • Anbefalinger : • identifisér viktige brukergrupper • trekk brukerne med i prosjektet fra starten ! Brukerbehov, kravspesifikasjon. La brukerne få teste ut prototyper av moduler underveis (jfr. iterativ utvikling)
Dokumentasjon • Brukerdokumentasjon - ja • med fokus på lett tilgjengelig on-line hjelp • ... men viktigere med intuitivt brukergrensesnitt • Systemdokumentasjon - oversiktlig, vise struktur og sammenhenger • arkitektur - datamodell - database - programkode - grensesnitt; teknologi/utviklingsverktøy • Formula : • For høy prioritering av brukerhåndbok på bekostning av intuitivt bruker-grensesnitt og on-line hjelpedokumentasjon • Anbefalinger : • legg til grunn faktisk brukeratferd ved utforming av brukerdokumentasjon • vedr. systemdokumentasjontenk produktforvaltning : dvs. drift, feilrettinger, videreutvikling, tilpasninger, .. helt fra starten ved utforming og utarbeidelse av system dok. • tenk versjonshåndtering
Databasens betydning • Databasen er hjertet i de fleste databasebaserte applikasjoner • dataelementer og datastruktur har en mer statisk natur enn funksjonelle behov • en velstrukturert datamodell og databaseskjema gir et godt grunnlag for koding og senere forvaltning av applikasjonen • Formula : • Svært godt utarbeidet og solid datamodell gav trolig både ressurs- og tidsmessige besparelser ved programmeringen og bidro til en robust løsning • Anbefalinger : • Prioriter datamodellering i designfasen, om nødvendig på bekostning av funksjonalitet
Implementering • Implementering (innføre og ta i bruk løsningen i en virksomhet) kan betraktes som siste hovedfase i et utviklingsprosjekt • beskrive/utforme anvendelsen for den aktuelle situasjon, installere, lære opp, teste, drifte • Formula : • 2 - 3 pilotkunder • kunne vært håndtert mer profesjonelt • Anbefalinger : • Velg riktig implementeringsstrategi • Pilottesting er nødvendig ! Varsle pilotbrukerne for å dempe forventninger • Andre forhold enn de systemmessige og teknologiske er mest viktig : Endringsledelse, prosjektledelse/prosjektstyring !
Prosjektstyring • Planleggingsfase - gjennomføringsfase • Planlegging viktig ! (figur tavle) • Utvikling av Formula Prosjektstyring paradoks • vi ville hatt stor nytte av systemet ifm. systemutviklingen ! • Utfordringer : • håndtere usikkerhet/risiko (figur tavle) • unngå overskridelser, forsinkelser • Formula • Prosjektgruppen lærte mye prosjektstyring underveis. Prosjektet ble ferdig til planlagt tid og innenfor avsatt kostnadsramme, men med noe redusert ambisjonsnivå for funksjonalitet. • Estimering av omfang/arbeidstimer : inndeling av funksjoner i 3 kategorier : Tung, middels, lett.
Prosjektstyring forts. • Anbefalinger planleggingsfasen : • Strukturér prosjekt : delprosjekt-aktiviteter-leveranser • Avklar ansvar og roller • Estimér ikke på for deltaljert nivå • Avklar tids- og kostnadsrammer • Anbefalinger gjennomføringsfase : • Revurder estimater løpende • Fokusér på leveranser ! • I prosjektoppfølging : fokusér på avvik fra plan og tiltak • Fremdrift : "Hva gjenstår ?" (estimat for gjenstående arbeid) og ikke "Hvor stor del er ferdig" • Redusér omfang (funksjonalitet) fremfor å gå på akkord med kvalitet ! • Testing : Viktig ! (Jfr. Carsten pres.)
METODIKK Planlegging Målsetting Kartlegging Installasjon, testing, opplæring Utforming av løsninger Overlevering, forvaltning Systembygging Prosessforbedringer Systemer og IT Opplæring Kost-nytte analyser Kost-nytte analyser Prosjektledelse og prosjektadministrasjon, endringsledelse Dokumentasjon Kontrakts- dokumenter Prosj.hånbok Kravspek. Løsnings- beskrivelse Brukerdokum. Systemdokum. Testdokum. Drifts- og forvalt-nings dokum. Modifikasjons- forslag Godkjennelses- dokument Vedlikeholds- og supportavtale
Programvarehus/systemutvikling i Bergen • CSC - Computer Systems Corporation • OCS - Onsoft Computer Systems • Hands • SU Soft • Delfi Data • Cap (Gemini Ernst & Young) • Ementor • BDC • Ulriken Consulting • Utviklingsmiljøer i større virksomheter • Statoil, Hydro, Telenor, DnB NOR • Bergen kommune, Haukeland sykehus • + mange mindre miljøer