Ohjelmistoprojektien hallinta Vaihejakomallit
Vaihejakomallit TAVOITE: YMMÄRTÄÄ eri vaihejakomallien etujajahaittoja 2
Erilaisia malleja Tee ja korjaa (Code-and-Fix) Vesiputousmalli (Waterfall) Vesiputousmalli osaprojekteilla (Waterfall with Subprojects) Spiraalimalli (Spiral Model) Vaiheittainen toimitus (Staged Delivery) Versiointi (Evolutionary Delivery) Viipalointi (Design-to-Schedule) Protoilu (Evolutionary Prototyping) 3
Tee ja korjaa Code-and-Fix Product System Specification (if any) Release (if any) Steve McConnell: Rapid Development 4
Tee ja korjaa: edut ja haitat + Et tuhlaa aikaasi suunnitteluun, dokumentointiin, laadun varmistukseen, standardien käyttöönottoon tai mihinkään muuhun kuin vain koodaamiseen + Koska heti aletaan koodata, edistymisen merkit näkyvät ulospäin varsin nopeasti + Helppo metodi: jos osaat koodata, osaat käyttää Code-and-Fix -metodia + Monille ihmisille se luonnollinen tapa toimia Harvoin tehokas, mutta silti hyvin yleisesti käytössä Suurissa projekteissa malli on erittäin vaarallinen Johtaa ongelmiin: virheet ylläpito-ongelmat jatkokehitys? 5
Vesiputousmalli Software Concept Requirements Analysis Architectural Design The grandfather of all lifecycle models Detailed Design Coding and Debugging System Testing Steve McConnell: Rapid Development 6
Vesiputousmallin edut ja haitat Yksityiskohtainen suunnittelu Ohjelmistokonsepti Vaatimuskehitys Systeemitestaus Arkkitehtuurisuunnittelu Vaatii tarkan määrittelyn Arkkitehtuuri oltava selvillä Altis riskeille Päällekkäistä työtä R&D-projektissa Edistymistä vaikea nähdä Tulokset saadaan käyttöön vasta lopussa + Luotettava järjestelmä + Hyvä kasvualusta Koodaus ja debuggaus 7
Vesiputousmalli osaprojekteilla Software Concept Requirements Analysis Steve McConnell: Rapid Development Architectural Design Detailed Design Coding and Debugging Detailed Design Detailed Design Subsystem Testing Coding and Debugging Coding and Debugging Subsystem Testing Subsystem Testing System Testing 8
Spiraalimalli Toteutus Testaus Toimitus Suunnittelu Määrittely 9
Spiraalimallin edut ja haitat + Ei tarkkaa määrittelyä + Lopullinen arkkitehtuuri ei tiedossa projektin alussa + Luotettava järjestelmä + Hyvä kasvualusta + Riskit hallinnassa + Edistymän seurattavuus Vaatii paljon osaamista Vaikea asettaa tavoitteet Vaikea määritellä, onko kaikki valmista seuraavaan kierrokseen 10
Vaiheittainen toimitus Software Concept Requirements Analysis Architectural Design Stage 1: Detailed design, code, debug, test, and delivery Stage 2: Detailed design, code, debug, test, and delivery Stage n: Detailed design, code, debug, test, and delivery 11
Vaiheittaisen toimituksen edut ja haitat Tarve Määrittely Suunnittelu + Luotettava järjestelmä + Hyvä kasvualusta + Edistymän seurattavuus + Ongelmat varhain esille + Vähentää arviointivirheitä + Riskit pienenevät (kokonaisaika ei yleensä kuitenkaan lyhene) Vaatii tarkan määrittelyn Arkkitehtuuri oltava selvillä Ei mahdollista suunnanmuutoksia Vaihe 1: Toteutus, testaus, toimitus Vaihe 2: Toteutus, testaus, toimitus Riski: lisää ominaisuuksia Vaihe n: Toteutus, testaus, toimitus 12
Versiointi Software Concept Preliminary Requirements Analysis Design of Architecture and System Core Deliver Final Version Päätös ennen aloitusta: Develop a Version 1. Arkkitehtuuri ja ydin 2. Kierrosten lukumäärä - kehitystyön suunta Incorporate Customer Feedback Deliver the Version Elicit Customer Feedback 13
Versioinnin edut ja haitat Tarve Määrittely Arkkitehtuuri oltava selvillä Mikä on lopullinen versio? Riski: lisää ominaisuuksia Suunnittelu Palautteen huomiointi + Ei vaadi tarkkaa määrittelyä + Melko luotettava järjestelmä + Hyvä kasvualusta + Mahdollistaa suunnanmuutoksia + Edistymisen seurattavuus Version toteutus Käyttäjäpalaute Lopullisen version toimitus Version toimitus 14
Viipalointi Software Concept Steve McConnell: Rapid Development Requirements Analysis Architectural Design High Priority: Detailed design, code, debug, test Medium High Priority: Detailed design, code, debug, test Release Run out of time or money here Medium Priority: Detailed design, code, debug, test Medium Low Priority: Detailed design, code, debug, test 15
Viipaloinnin etuja ja haittoja Toteuttamiskelpoinen strategia tuotteen julkistamiseen jonain ennalta määrättynä päivänä Erityisen käyttökelpoinen sellaisille tuotteen osille, jotka eivät ole kriittisiä Priorisointi - ensin tehdään tärkeimmät asiat ja lopuksi ne vähemmän tärkeät, jos on aikaa Alussa ei tiedetä, päästäänkö koskaan tuotteen lopulliseen julkistamiseen asti Suunnitelmassa on useampia tasoja kuin mihin päästään julkistamisen ajankohtaan (deadline) mennessä Jos olet 100% varma, että pysyt aikataulussa, tämä on tehoton lähestymistapa - muussa tapauksessa se säästää sinut monilta ongelmilta. 16
Protoilu Initial concept Design and implement initial prototype Refine prototype until acceptable Complete and release prototype Steve McConnell: Rapid Development 17
Protoilun edut ja haitat Erittäin käyttökelpoinen, kun vaatimukset muuttuvat tiheästi Käyttökelpoinen myös, kun kehittäjät eivät ole varmoja optimaalisesta arkkitehtuurista Saa aikaan tuotosta ja näkyviä merkkejä edistymisestä Projektin alussa on mahdotonta tietää, kuinka kauan kestää saada lopullinen tuote valmiiksi Ennakolta on myös mahdoton tietää, montako iteraatiokierrosta pitää tehdä 18
Harjoitustyö 2: Sidosryhmäanalyysi -mindmap Sidosryhmien ja niiden vaatimusten/intressien selvittäminen 1. Sidosryhmien eli intressiryhmien selvitys 2. Kunkin sidosryhmän vaatimusten eli intressien selvittämien 19
Sidosryhmäanalyysi -mindmap Keskelle projektin lopputulos Sidosryhmä on taho tai järjestelmä, jolla on intressejä tai vaatimuksia projektin lopputulokseen Vaatimus tai intressi on se mitä ko. taho tai järjestelmä odottaa tai vaatii projektin lopputulokselta Jos sidosryhmälle ei löydy intressiä, sen voi poistaa kuvasta Jos usealla taholla on sama vaatimus, ne voidaan yhdistää Kirjanpito Taloushallinto Töiden suunnittelu ALV Laskutuksen Oikeellisuus käsittely nopeus Jäljitettävyys Eurot Markat Viranomaiset Asiakkaat Liittyvät järjestelmät Uusi laskutusjärjestelmä Toimittaja Johto Käyttäjät Raportointi Ohjauksen Huoltolaskutus mittarit Myyntilaskutus Seuranta Raportointi Referenssi Laskutus Asiakassuhteen jatko 20
Sidosryhmäanalyysi -mindmap Intressiryhmät ja intressit voivat löytyä seuraavista aihealueista: henkilöryhmät, joita tulos koskee organisaatioyksiköt, jotka ovat kiinnostuneita tuloksesta ulkopuoliset intressiryhmät, joiden näkemykset tai määräykset on otettava huomioon koneet ja laitteet, joilla tulosta käsitellään tietojärjestelmät joihin tarvitaan liittymiä johtamisjärjestelmät, joihin tulos liittyy Harjoituksen suoritustapa: Yhdessä tarkennetaan ja täydennetään intressiryhmät ja lisätään intressit eli vaatimukset 21