IN 265: Utvikling 5 februar 2003 Utvikling Dahlbom og Mathiassen, kap. 4-6 5. februar 2003 3 syn på systemutvikling Konstruksjon Evolusjon Intervensjon Hvordan kan dette knyttes til OOA&D Ark 1 av 15
IN 265: Utvikling 5 februar 2003 Konstruksjon Stabil verden, kompleksitet men forutsigbar, Problemet er kjent Rasjonalitet og optimalisering Evolusjon Virkelig verden preget av usikkerhet Problemet er uklare problembeskrivelse, utilstrekkelig beskrevet Begrenset rasjonalitet, søk etter tilfredstillende løsning gjennom eksperimentering Intervensjon Virkelig verden er preget av forandring og konflikter Problemet er åpen, ikke definert Søke å definere problemet Utviklingsarbeidet er en integrert del av løpende aktiviteter Ark 2 av 15
IN 265: Utvikling 5 februar 2003 Konstruksjon (av programvarer) Skrittvise forfining (Stepwise refinement) Start med en gitt problemformulering Bryt ned i mindre og mindre delproblemer Fortsett inntil delproblemene er trivielle Forutsetninger Veldefinert problem Stabilt problem Lukket problemstilling Full kunnskap om problemet Problemløseren har perfekt rasjonalitet Ofte er problemene enkle, men betydelige integrasjonsbehov Hva gjør vi når brukeren midtveis sier«jeg vil ha det sånn i stedet»? Ark 3 av 15
IN 265: Utvikling 5 februar 2003 Brukerens rolle The role of the user is to provide information and approve decisions. The aim of the systems development effort is the production of a high quality system that meets the specified requirements. The result of the process is a computer system that is subsequently delivered to the users. The actual implementation of the system into an existing technological and organizational environment is not considered part of the development task. By the way,who are the users of the 8-Queens problem? As you see,they are not mentioned at all. The problem is formulated in quite abstract terms,but then,of course,wirth already knows about chess. The programmer and the user are one and the same person. CIC, p. 80 Et nyttig syn, ett av flere! Konstruksjonsvirksomhet er et godt eksempel på en del av håndverket vårt, på hvordan vi kan jobbe i de deler av systemutvikling som har disse egenskapene Eksempel på bruk av konstruksjon som metode: Operativsystem, Kommunikasjon, matematiske modeller,... Ark 4 av 15
IN 265: Utvikling 5 februar 2003 Evolusjon: hva er det? Eksperimentering og læring Trinnvis utvikling (prøv og feil) Konkurranse og andre elimineringsmekanismer («natural selection», «survival of the fittest», Darwin og ikke Linné) Utvikle og teste ut alternativer er viktige! Fokus på usikkerhet (ikke kompleksitet) manglende kunnskap : nødvendig med læring ustabile omgivelser Endring - forståelse av organisk tilnæring til ledelse Systemutvikling er en vitenskapelig utforskning av alternative løsninger, ikke et tilfeldig utvalg Ark 5 av 15
Intervensjon Sammenheng Intervensjonssyn preget av konfliktperspektiv (dialektikk) fokus på problemdefinering opportunistisk atferd (arasjonalitet) problemet antas åpent Design is action Ark 6 av 15
Systemutvikling og forandring Forholdet mellom programmering og systemutvikling er som mellom kirurgi og almenpraksis «Kirurgen venter bare på å få bruke kniven» Almenpraktikeren tar hele personen, bakgrunnen, familiesituasjonen, jobben, alkoholforbruket, etc. Systemutvikleren havner ofte i et organisatorisk spill Fokus på å forstå og endre spesifikke lokale forhold 3 ulike syn på organisatorisk praksis: Den offisielle ledelsen sysn : Regler og prosedyrer Oppfatning og holdninger: Hvordan de ansatte oppfatter er de ska utføre arbeidet Faktisk adferd : hva de gjør i virkelige situasjoner Ark 7 av 15
Eksempler Barry Boehm s eksperiment: sammenlikning av spesifikasjoner og prototyping prototyping koster det halve ulike styrker og svakheter (brukergrensesnitt,interne grensesnitt,..) Strategi Produkter som endres over tid: Windows, Word,... Prototyp - endelig system Stegvis leveranse (delvis også for å redusere kompleksitet) Ark 8 av 15
The case in CRM in IBM : Fallio og Ciborra Fra kundestøttesystem til IT infrastruktur-bygging og omfattende organisatoriske endringer (BPR) To faser: 1. Mekanistisk fase Aksept av en tradisjonell CRM-modell Top-down styrt prosess, hierarkisk spredning av budskapet (produktet) 2. Tilpasningsfase (adaptive) Ny teknisk platform (Lotus Notes) Lokal tilpasning og aksept av systemet : breakdowns og integrasjon i det daglige arbeidet Aksept for kulturforskjeller og ulike grader av implementasjon Ark 9 av 15
Konstruksjon versus evolusjon Læring innebærer (prøving) og feiling, feiling koster vanskelig å endre komplekse systemer Feiling kan minskes gjennom planlegging, kontroll, systematiske metoder Antakelser om problemets natur Uklart Flyktig Problemet forandrer seg Fokus på usikkerhet, ikke kompleksitet => både konstruksjonsorienterte og evolusjonære strategier er nødvendige Ark 10 av 15
Spiralmodellen Et forsøk på å kombinere en evolusjonær tankegang med de positive sidene av konstruksjonssynet Primary attention: analysis Primary attention: design Samme Boehm Primary attention: realisation Ark 11 av 15
Rasjonalisme og empirisme Descartes, Linné og Wirth: Rasjonalister Systembyggere - basert på fullstendig kravspesifikasjon Utopister Samfunn: perfekt hierarki Systemutvikling: lage idéelle løsninger Newton, Darwin, Naur: empirisister Sosiale ingeniører - praktisk, situasjonsbestemt tilnærming Tro på teoribygging ved induksjon Samfunn: liberalt, anarkistisk syn Systemutvikling: hør på brukerne Ark 12 av 15
Eksempel: Improvization (Orlikowski) Mer enn evolusjon Teknologien skaper forandringer genererer konflikter skaper nye behov Mange iterasjoner 1. lager versjon 2. tar den i bruk 3. skaper endringer 4. vurderer behov i den nye situasjonen 5. genererer ideer til ny løsning Ark 13 av 15
Intervensjon Verden er kaotisk - problemet er ikke gitt => Prøv å forstå - finn en hensiktsmessig definisjon av problemet Ofte vanskelig å finne ut hva brukerne egentlig gjør - gjør en liten endring som skaper nye konflikter og dermed bringer saker til overflaten => Utprøving av prototyp, enkelt system En endring skaper en ny situasjon - opprinnelige muligheter vil være lukket Konflikter - etabler allianser, søk kompromisser Teknologien vil kunne være en viktige aktør - både konfliktskaper og -løser Ark 14 av 15
OOA &D og Hard, myk og dialektisk systemtenkning? Konstruksjon: Evolusjon Problemområdet er veldefinert, applikasjonsområdet er stabilt Top-down tilnærmign kan være hensiktsmessig Flere probleiere med ulike oppfatninger av problemområdet, aplikasjonsområdet i endring, Rike bilder og prototyping for å prøve ut alternativer Intervensjon Problemområdet ikke definert, applikasjonsområdet preget av konflikter Rike bilder får å identifisere konfliktområder, prototyping med vekt på virkelige situasjoner Ark 15 av 15