Prosessikuvaukset ja elinkaarimallit Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4. Organisaation prosessikuvaus - CMMI Level5 Level4 Organizational Innovation and Deployment Causal Analysis and Resolution Organizational Process Performance Quantitative Project Management Level3 Requirements Development Technical Solution Product Integration Verification Validation Organizational Process Focus Organizational Process Definition Organizational Training Integrated Project Management Risk Management Integrated Teaming Integrated Supplier Management Decision Analysis and Resolution Organizational Environment for Integration Level2 Requirements Management Project Planning Project Monitoring and Control Supplier Agreement Management Measurement and Analysis Process and Product Quality Assurance Configuration Management Level1 SEI 2002. CMMI v. 1.1. 2 1
Prosessiajattelu Sisään Prosessi Ulos ohjaus mittaus Haikala & Märijärvi 2002 3 Organisaation prosessien määritys CMMI käytänteet Laaditaan standardiprosessit prosessin roolit sopivat proseduurit, työkalut ja muut resurssit prosessin suorituksen tavoitteet entry ja exit criteria tulokset kerättävä mittaustieto Prosessien väliset suhteet SEI 2002. CMMI v. 1.1. 4 2
Organisaation prosessien määritys CMMI käytänteet Laaditaan elämänkaarimallien kuvaukset: Vesiputous, spiraali, tms. Kriteerit ja ohjeet prosessien räätälöimiselle Vaihtoehdoista valitseminen Prosessin räätälöinti SEI 2002. CMMI v. 1.1. 5 Organisaation prosessien määritys CMMI käytänteet Laaditaan elämänkaarimallien kuvaukset: Vesiputous, spiraali, tms. Kriteerit ja ohjeet prosessien räätälöimiselle Vaihtoehdoista valitseminen Prosessin räätälöinti SEI 2002. CMMI v. 1.1. 6 3
Organisaation prosessien määritys CMMI käytänteet Tietovarasto mittaustuloksia varten Mittarit, proseduurit Prosessikirjasto Prosessikuvaukset Räätälöintiohjeet Kertyneet kokemukset (lessons learned) Proseduurit kirjaston ylläpidolle SEI 2002. CMMI v. 1.1. 7 Järjestelmän hahmottaminen Vesiputousmalli Analyysi Suunnittelu Toteutus Testaus Ylläpito 8 4
Prototyyppimalli Pressman 2000, 30. 9 RAD malli Pressman 2000, 30. 10 5
Inkrementaalinen malli Pressman 2000, 34. 11 Spiraalimalli Pressman 2000, 35. 12 6
RUP Inception Elaboration Construction Transition - Tuotteen ominaisuudet - Alustavat mallit - Alustava arkkitehtuuri - Tarvittaessa proto - Riskit - Alustava projektisuunnitelma - Onnistumiskriteerit - Täydennetyt mallit - Todennettu toimiva arkkitehtuuri - Arkkitehtuurikuvaus - Riskit - Seuraavan vaiheen projektisuunnitelma - Onnistumiskriteerit - Alustava käyttöohje - Lähes täydelliset mallit - Beta-versio - Arkkitehtuurikuvaus - Seuraavan vaiheen projektisuunnitelma - Onnistumiskriteerit - Käyttöohje Haikala & Märijärvi 2002, 43. - Installointivalmis ohjelmisto - Byrokratiodokumentit - Täydelliset mallit - Arkkitehtuurikuvaus - Käsikirjat - WWW-palvelut yms. 13 XP:n käytänteet Planning game Small releases Metaphor Simple design Tests Refactoring Pair programming Beck, K. 1999. Embracing change with extreme programming. Computer 32(10), 70-77. 14 7
XP:n käytänteet Continuous integration Collective ownership On-site customer 40-hour weeks Open workspace Just rules Beck, K. 1999. Embracing change with extreme programming. Computer 32(10), 70-77. 15 Esimerkki prosesseista: Landmark Graphics Jaetaan projektit eli luokkiin kahden tekijän mukaan: Kompleksisuus (suuri-pieni) Epävarmuusaste (suuri-pieni) Määritellään erilainen setti prosesseja eri luokille Little, T. 2005. Context-adaptive agility: managing complexity and uncertainty. IEEE Software 22(3) 28-35. 16 8
Kompleksisuustekijät Tiimin koko Tehtävän kriittisyys Tiimin sijainti Tiimin kokemus Toimialan tuntemus Riippuvuudet Little, T. 2005. Context-adaptive agility: managing complexity and uncertainty. IEEE Software 22(3) 28-35. 17 Epävarmuustekijät Markkinoiden epävarmuus Tekninen epävarmuus Projektin kesto Muiden projektien riippuvuus -> laajuuden jousto Little, T. 2005. Context-adaptive agility: managing complexity and uncertainty. IEEE Software 22(3) 28-35. 18 9
Projektien luokittelu 19 Projektityypit Yksinkertaiset, alhainen kompleksisuus (60 %) Koirat: tyypillisesti kypsiä tuotteita, joita kehittää pieni tiimi Skunkit: protoilu-/tutkimusprojekteja, Minimisetti ydinkäytänteitä Yksinkertaiset, korkea epävarmuus (20 %) Varsat: uusia tuotteita, suuri epävarmuus tekniikassa ja markkinoissa, suuri vapaus Ketterät menetelmät Little, T. 2005. Context-adaptive agility: managing complexity and uncertainty. IEEE Software 22(3) 28-35. 20 10
Projektityypit Kompleksiset, alhainen epävarmuus (10 %) Lehmät: kypsiä tuotteita, joita kehitetään suuren tiimin voimin (lypsylehmiä), usein isoja integrointiprojekteja Enemmän panostusta projektinhallintaan Kompleksiset, suuri epävarmuus (10 %) Härät: seuraavan sukupolven suuret tuotteet Vaatii hallintaa, mutta täytyy olla joustavuutta 21 Yhteenveto Gerald Weinberg: Ongelman ratkaisun niksi ei ole pelkästään miten menetelmiä sovelletaan (know-how), vaan mieluummin milloin niitä sovelletaan (know-when) tämä antaa mahdollisuuden sovittaa ratkaisumenetelmän ongelmaan, eikä päinvastoin. (siis mielestäni tämä on sitä ammattitaitoa) Haikala & Märijärvi 2002 22 11