Projektitoiminta JOTU 23.09.2013 23.9.2013 JOTU2013/K.Systä 1
Tiedotuksia Harjoitusryhmiin muodostamisesta: jo ette ole ryhmässä tehkää yhden hengenryhmiä Marko sitten yhdistää Ne joilla ei ole ryhmää IDLE:ssä tulkitaan kurssin keskeyttäneiksi Ryhmän maksimi koko on 4 henkeä Ilmoittautumisen takaraja on 27.9! 23.9.2013 JOTU2013/K.Systä 2
Harjoitustyöstä pe 27.9. klo 16:00: Ryhmien oltava muodostettuna IDLEen ma 30.9. klo 23.59: Henkilökunta täydentänyt vajaat ryhmät ja tehneet ryhmäjaon pe 4.10. klo 16:00: Alustavat asiakasvaatimukset oltava palautettuna ohjaavalle assarille ja toimittajaryhmälle pe 4.10. klo 16:00: Asiakastapaamisajan oltava varattuna IDLEstä. ma 7.10. - pe 11.10.: Asiakastapaamiset ma xx.11. - to xx.11.: Harjoitustyöpäivystystä pe 22.11. klo 16:00: Toiminnallisen määrittelydokumentin palautuksen takaraja pe 29.11. klo 16:00: Palautteen takaraja 23.9.2013 JOTU2013/K.Systä 3
Muistutus kontaktihenkilöistä Viikkoharjoitukset tero.ahtee@tut.fi Harjoitustyöt marko.leppanen@tut.fi Oma assari Luennot ja kurssin suorittaminen yleensä kari.systa@tut.fi 23.9.2013 JOTU2013/K.Systä 4
Alustava luentoaikataulu 26.8: Johdanto + historiaa, mitä on ohjelmistotuotanto 2.9: Ohjelmistojen roolista ja ohjelmistotyön määrästä, ohjelmistotyypit 9.9: Miten ohjelmistotyö organisoidaan (vaihejako ja prosessi-mallit) 16.9: vaatimusmäärittelyt 23.9: projektitoiminta 30.9: Yleiset notaatiot erityisesti UML 7.10: Esimerkkiprojekti (vierailuluento esillä ihan oikea projekti) 23.9.2013 JOTU2013/K.Systä 21.10: Asiakasroolista 28.10: Käyttäjä ja käyttäjäkokemus ohjelmistoprojektissa 4.11: Tiedon mallintaminen 11.11: Ohjelmisto osana laitetta 1 18.11: Ohjelmisto osana laitetta 2 25.11: IPR, sopimukset, open source 2.12: Kertausta 5
Tämän kerran aiheita Mikä ja miksi projekti Projektiorganisaatio ja sidosryhmät Ohjelmistoprojektin kulku Projektin suunnittelu Ositus Osallistujat Työmäärän arviointi Aikataulutus Projektin seuranta Riskien hallinta Projektisuunnitelma 23.9.2013 JOTU2013/K.Systä 6
Hanke vs. projekti vs. prosessi Usein softaa tehdään projekteina Projektit viedään usein läpi prosesseina On olemassa myös muita projekteja kuin kehitysprojekteja Jos projektit kuuluvat samaan kokonaisuuteen, kutsutaan niitä hankkeeksi JOTU2013/K.Systä 23.9.2013 7
Projekti Projektiin liittyy lähtötilanne, syy käynnistämiselle ja tavoitetila Yksi määritelmä: Projekti on kertaluontoinen, toisiinsa liittyvien tehtävien ja aktiviteettien muodostama kokonaisuus, jolla on suunnitelmallinen toteutus (=tavoitteet, aikataulu, resurssit, kustannukset). Projektiin liittyy organisaatio, joka yleensä poikkeaa linjaorganisaatiosta johto osallistujat sidosryhmät... Ovatko projekteja? Johdatus ohjelmistotuotannon -kurssi syys 2013 DI-tutkinnon suorittaminen Komponenttivaraston kiertonopeuden kasvattaminen 23.9.2013 JOTU2013/K.Systä 8
Projektityyppejä Esitutkimusprojekti, määrittelyprojekti toteutusprojekti Jako aliprojekteiksi Suurissa projekteissa jako aliprojekteihin (yksi nyrkkisääntö: jos projekti on yli viisi henkilötyövuotta ja kestää yli vuoden, hankaluuksia on varmasti odotettavissa). Muita projektityyppejä käyttöönottoprojekti koulutusprojekti hankintaprojekti laatujärjestelmän kehitysprojekti. ohjelmistoprojektiin voi liittyä myös laitteistoprojekti. Asiakas- vs. tuotekehitysprojekti: Verrattuna asiakaskohtaisen ohjelmiston tuottamiseen, ohjelmiston tuotteistaminen on moninkertainen urakka. Massatuotteessa vikojen seuraukset voivat olla erittäin kalliita. 23.9.2013 JOTU2013/K.Systä 9
Keskeisiä projektin suureita Projektin tuotos Laajuus (scope) Lopputuloksen laatu Kalenteriaika Ihmiset ("resurssit") Mitä tapahtuu, kun yhtä joudutaan muuttamaan (trade-offs)? 23.9.2013 JOTU2013/K.Systä 10
Prosessit, metodit, työkalut, taidot... More formal, more controlled, more bureaucratic Configuration management Project management Methods Documentation Requirements specification Testing procedures, planning Quality control, inspections SW design Programming language, tools, and technical skills Requirements management Measurement Small programs Large systems Sometimes, for some people, it seems to be more important to get the process done than to get the product done. JOTU2013/K.Systä 23.9.2013 11
Ohjelmistoprosessi: Historia (teoriassa) JOTU2013/K.Systä 23.9.2013 12
Prosessi: Historia (todellisuudessa) Rakenteiset menetelmät Olio-ohjelmointi Prosessi: Iteratiivinen kehitys CMM, Spice, ISO9001 Ketterät menetelmät Koodaa ja korjaa 1970 1980 1990 2000 23.9.2013 13 Näkyvimmät trendit...2011: ketteryys (agility) Scrum työkalut Global SW Development (GSD) Lean Outsourcing JOTU2013/K.Systä
Projektin suunnittelu Hyvin suunniteltu on puoliksi tehty Jokainen tietää omat vastuunsa projektissa Jokainen tuntee projektin tavoitteet Tiedetään, kuinka projektia seurataan ja etenemisestä raportoidaan Pystytään vertaamaan edistymistä suunnitelmiin ja sitä kautta arvioimaan projektin lopetusajankohta ja lopullinen hinta 23.9.2013 JOTU2013/K.Systä 14
Kiva löytö: (Ken Schwaber: Agile project managemet) Far from agreement Anarchy Complicated Complex Close to agreement Simple Complicated Close to certainty Far from certainty 23.9.2013 JOTU2013/K.Systä 15
Projektiorganisaatio 23.9.2013 JOTU2013/K.Systä 16
JOTU2013/K.Systä 17 Ohjaus Projekti Projektin valmistelu Projektiehdotus Projektin asettaminen Projektikuvaus Projektin suunnittelu Ohjausryhmä Projektisuunnitelman hyväksyminen Seuranta ja ohjaus Projektisuunnitelma Seurantaraportit Ohjaus Muutosehdotukset Projektin läpivienti Tuotosten hyväksyminen Päivitetty projektisuunnnitelma Projektin tuotokset Projektin päättäminen Loppuraportti
Kustannukset Mahdoton alue Projektisuunnittelun haaste Mahdoton alue Kalenteriaika 23.9.2013 JOTU2013/K.Systä 18
Projektit ovat erilaisia 23.9.2013 JOTU2013/K.Systä 19
YHDESSÄ LUENNOLLA MIETITÄÄN MITÄ TARKOITTAA KUSTANNUKSILLA 23.9.2013 JOTU2013/K.Systä 20
Ja se on usein vielä vaikeampaa 23.9.2013 JOTU2013/K.Systä 21
Suunnittelu organisointi tavoitteiden tarkentaminen riskien analysointi Teknologioiden, työmenetelmien ja kalujen valinta tukitoimintojen suunnittelu (dokumentointi, laadunvarmistus, tuotteenhallinta) vaiheistaminen ja osittaminen (WBS) työmäärien arviointi osallistujien työpanoksen kartoittaminen sekä aikataulutus projektibudjetti, kassavirtalaskelma millä edellytyksillä projekti voi toteutua. 23.9.2013 JOTU2013/K.Systä 22
Projektisuunnitelma Projektisuunnitelma, dokumenttirunko... www.cs.tut.fi/ohj/laatu (= HYTT) Loppuraportti, dokumenttirunko ISO 10006:1997 Quality management - Guidelines to quality in project management ISOT PROJEKTIT KESKISUURET PROJEKTIT PIENET PROJEKTIT PROJEKTIKORTTI Projekti: Proj. no: Tekstiä: PROJEKTISUUNNITELMA PROJEKTISUUNNITELMA PROJEKTIKORTTI LIITTEINEEN 23.9.2013 JOTU2013/K.Systä 23
http://nadihassan.wordpress.com 23.9.2013 JOTU2013/K.Systä 24
Projektisuunnitelma: MIKSI? Projektin ohjauksen ja seurannan apuväline, joka samalla toimii "sopimuksena" ja tiedonvälittäjänä eri sidosryhmien kesken. Tavoitteet Tehtävät ja aikataulu Organisointi ja vastuut Toimintatavat, työvälineet Raha Riskit 23.9.2013 JOTU2013/K.Systä 25
Työmäärän arvioinnin ongelmia Projektin vaatimukset muuttuvat Projektin tavoite ja sisältö on heikosti määritelty Projektin organisaatio, määräykset, lait tai tilajärjestelyt muuttuvat Arvioiden tekijät ovat kokemattomia Arviointi on tehty liian suurina kokonaisuuksina Käytössä ei ole historiatietoa Henkilöstö vaihtuu Johto sanelee työmääräarviot Projektin johtaminen ei ole jämäkkää 23.9.2013 JOTU2013/K.Systä 26
Vähän työmäärän arvioinnista (näistä lisää kurssilla ohjelmistotuotannon menetelmät) valistunut arvio kokemukseen perustuva COCOMO (Constructive Cost Model, 1981) ja COCOMO II Koodirivien määrä, kustannuskertoimet Tuloksena ihanteellinen kalenteriaika Toimintopisteet (FPA - Function Point Analysis) Kolmen arvion malli Pessimistinen, todennäköinen ja optimistinen arvio Ketterät - Planning poker 23.9.2013 JOTU2013/K.Systä 27
Gantt kaaviot (lähde: http://www.matchware.com) 23.9.2013 JOTU2013/K.Systä 28
Toinen versio (Lähde: http://orgmode.org) 23.9.2013 JOTU2013/K.Systä 29
Ne riskit usein unohtuu 23.9.2013 JOTU2013/K.Systä 30
Riskeistä usein mietitään Riskin todennäköisyys Riskin vakavuus Riskien toteutumisen ehkäisy Riskien toteutuessa mitä tehdään 23.9.2013 JOTU2013/K.Systä 31
PÄIVÄN VÄLIPALA 23.9.2013 JOTU2013/K.Systä 32
Syitä erään suuren projektin epäonnistumiseen 1/2 Järjestelmän ominaisuuksia ja kokoa ei pystytty mitenkään arvioimaan suunnitteluvaiheessa Järjestelmästä tuli huomattavasti suurempi kuin oli alunperin suunniteltu Järjestelmään tehtiin projektin aikana jatkuvasti muutoksia: uusia piirteitä lisättiin ja vanhoja muutettiin Koordinointi osaprojektien välillä oli lähes olematonta Projektin loppupuolella vallitsi tavaton kiire. 23.9.2013 JOTU2013/K.Systä 33
Syitä erään suuren projektin epäonnistumiseen 2/2 Projektin loppupuolella projektipäällikkö sairastui ja hänen tilalleen tuli verraten kokematon henkilö Järjestelmässä oli useita piirteitä, joita ei oltu kokeiltu aikaisemmissa vastaavissa tuotteissa Järjestelmätestauksessa todettiin, että järjestelmä on liian epästabiili käyttöönotettavaksi. Projekti oli kuitenkin jo myöhässä ja paine asiakkaan taholta oli kova, joten järjestelmä otettiin tästä huolimatta käyttöön Jälkikäteen pystyttiin arvioimaan, että järjestelmän rakenne oli sellainen, ettei se olisi mitenkään voinut toimia:... paarlastia olisi tarvittu niin paljon, että alemmat tykkiportit olisivat joutuneet veden alle. Lähde; Curt Borgenstam: Why the Wasa Capsized. 23.9.2013 JOTU2013/K.Systä 34
23.9.2013 JOTU2013/K.Systä 35
Muutama sana kustannuksista esimerkin kautta (luvut v. 2007 kalvoista) 10 hengen ohjelmistotalo Päätoiminen johtaja, ei sihteeriä Muut tekevät laskutettavaa työtä 75% työajasta Vaihtuvuus n. 1 hlö / vuosi Palkat ja henkilösivukustannukset 1.6 * 3 k * 12 kk = ~58k Otetaan huomioon vuokrat, laitteiden poistot, leasingautot, konttorikustannukset jne... kertomalla summa 1.5:llä => ~86k Yhteensä 10 henkeä => menopuolella ~860k 23.9.2013 JOTU2013/K.Systä 36
jatkoa Laskutettavia tunteja voi arvioida tulevan vuoden aikana yhdeksälle työtekijälle. Vaihtuvuuden ja sairaslomien yms. huomioon ottamiseksi käytetään kertoimena kuitenkin lukua 8: 8*1700*0.75 = noin 10000 laskutettavaa tuntia. Työtunnin hinnaksi tulee siis ~86 ja päivähinnaksi 650. Henkilötyövuosi maksaa ~150k 23.9.2013 JOTU2013/K.Systä 37
Perinteinen Ketterät vs ja projektin hallinta Hyvät suunnitelmat Tarkka hallinto ja seuranta Ketterät Yksilöitä ja vuorovaikutusta enemmän kuin prosesseja ja työkaluja Toimivaa sovellusta enemmän kuin kokonaisvaltaista dokumentaatiota Asiakasyhteistyötä enemmän kuin sopimusneuvotteluita Muutokseen reagoimista enemmän kuin suunnitelman noudattamista. Projektipäällikkö Product owner scrum master 23.9.2013 JOTU2013/K.Systä 38
Ketterät ja projektinhallinta Muistettava Resurssien- ja rahankäyttöä on kuitenkin suunniteltava ja seurattava Projektiin kuuluu muutakin kuin se softan tekeminen Varsinaiset haasteet syntyvät projekteissa jotka ovat suurempia kuin yksi Scrum-tiimi Toisaalta Oikein tehty ketterä projekti tarjoaa paremman näkyvyyden edistymiseen kuin perinteinen Tuoteomistaja (Product owner) on tärkeä henkilö Jonka intressit usein ratkaisee 23.9.2013 JOTU2013/K.Systä 39
Suunnittelu organisointi tavoitteiden tarkentaminen riskien analysointi teknologioiden ja työmenetelmien valinta tukitoimintojen suunnittelu (dokumentointi, laadunvarmistus, tuotteenhallinta) vaiheistaminen ja osittaminen (WBS) työmäärien arviointi osallistujien työpanoksen kartoittaminen sekä aikataulutus projektibudjetti, kassavirtalaskelma millä edellytyksillä projekti voi toteutua. 23.9.2013 JOTU2013/K.Systä 40
Ketterät ja projektinhallinta Muistettava Resurssien- ja rahankäyttöä on kuitenkin suunniteltava ja seurattava Projektiin kuuluu muutakin kuin se softan tekeminen Varsinaiset haasteet syntyvät projekteissa jotka ovat suurempia kuin yksi Scrum-tiimi Toisaalta Oikein tehty ketterä projekti tarjoaa paremman näkyvyyden edistymiseen kuin perinteinen Tuoteomistaja (Product owner) on tärkeä henkilö Jonka intressit usein ratkaisee 23.9.2013 JOTU2013/K.Systä 41
TTL-julkaisusarja, Tietojärjestelmän hankinta - Ohjelmistotoimittajan ja -ratkaisun valinta. Helsinki 2005, Talentum 23.9.2013 JOTU2013/K.Systä 42
Virhetaajuus tietojärjestelmäprojektin kaikkien vaiheiden eri osissa (%- osuus kaikista projekteista) [Myllymäki, R. Why IS Projects Fail? Some Finnish Aspects to the Global Phenomenon. Vantaa, Finland. 2012,] Arkkitehtuurivalinnat Strategialinkki, projektin tavoitteet Tietojärjestelmän toteutus ja testaus Toimittajahallinta Nyky- ja tavoiteprosessit Projektin organisointi Toiminnalliset ja tekniset määrittelyt Projektiroolit Toimintatapamuutosten suunnittelu Toimintatapojen ja järjestelmien Business Case, riskit ja Tietojärjestelmäintegraatiot 57 52 49 45 43 43 43 42 38 37 37 37 0 20 40 60 80 100 23.9.2013 JOTU2013/K.Systä 43
Sitähän se kaikki on (http://nadihassan.wordpress.com) 23.9.2013 JOTU2013/K.Systä 44
Seuraavaksi 26.8: Johdanto + historiaa, mitä on ohjelmistotuotanto 2.9: Ohjelmistojen roolista ja ohjelmistotyön määrästä, ohjelmistotyypit 9.9: Miten ohjelmistotyö organisoidaan (vaihejako ja prosessi-mallit) 16.9: vaatimusmäärittelyt 23.9: projektitoiminta 30.9: Yleiset notaatiot erityisesti UML 7.10: Esimerkkiprojekti (vierailu-luento esillä ihan oikea projekti) 21.10: Asiakasroolista 28.10: Käyttäjä ja käyttäjäkokemus ohjelmistoprojektissa 4.11: Tiedon mallintaminen 11.11: Ohjelmisto osana laitetta 1 18.11: Ohjelmisto osana laitetta 2 25.11: IPR, sopimukset, open source 2.12: Kertausta 23.9.2013 JOTU2013/K.Systä 45