Johdatus ohjelmistotuotantoon Luento 10 Asiakasroolista ja projektitoiminnasta Kari Systä, 3.11.2014 03.11.2014 JOTU/KSY 1
Ohjelmassa tänään Viime luennolla käsittelemättä jäänyt materiaali Uudestaan viime viikolla luennoitsijan hämmentäneet piirakkakaaviot Yksi (epäonninen) esimerkki taas Käyttöönotosta Projektitoiminnasta 03.11.2014 JOTU/KSY 2
Tiedotuksia - uutisia Torstain viimeinen (16-18) harjoitus peruttu. Suositellaan tilalle keskiviikon viimeistä (16-18). Tämän viikon harjoitustyöstä: VH8 (viikko 45/2014): artikkeliharjoitus: Mythical Man-Month. Voit etsiä ja lueskella tätä klassikkoartikkelia verkosta etukäteen, jos ehdit. Artikkeli "Mythical Man-Month", teoksessa Frederick P. Brooks, Jr: The Mythical Man-Month - Essays on Software Engineering (sivut 13-26). 1975, Addison- Wesley Publishing Company, Inc. 03.11.2014 JOTU/KSY 3
Alustava luentoaikataulu 25.8: Johdanto + historiaa, mitä on ohjelmistotuotanto 1.9: Ohjelmistojen roolista ja tyypeistä ohjelmistotyön merkitys 8.9: Miten ohjelmistotyö organisoidaan (vaihejako ja prosessi-mallit) 15.9: Vaatimusmäärittelyt 22.9: Vaatimukset 2; tiedon mallintaminen 29.9: Käyttäjä ja käyttäjäkokemus ohjelmisto-projektissa (Jarmo Palviainen) 6.10: Esimerkkiprojekti (M-files) 20.10: Yleiset notaatiot erityisesti UML 27.10: Asiakasroolista 3.11: Projektitoiminta 10.11: Ohjelmisto osana laitetta 17.11: IPR, sopimukset, open source 25.11:Kertausta 1.12: Palautetta harjoitustyöstä (henk. Kohtaisempi palaute s-postilla) 03.11.2014 JOTU/KSY 4
Vaatimukset tehdään yhdessä? 12 % 8 % 80 % 41 % 39 % Tilaaja teettää ulkopuolisella Toimittajan ohjauksessa Tilaaja tekee itse Kun tilaajalta kysytään Tilaajan ohjauksessa 50 % 45 % 17 % 28 % Tilaaja teettää ulkopuolisella Toimittajan ohjauksessa Tilaaja tekee itse Kun toimittajalta kysytään Tilaajan ohjauksessa 5 % Lähde: Erkka Vastamaan diplomityö 03.11.2014 JOTU/KSY 5
Edellisen luennon pääkohdat Harjoitustyö on haastava muttei mahdoton Vaatimusmäärittely on aina vaikea eikä asiakas voi vetäytyä vastuusta Monitoimittajaprojektit ovat hanhalia Avoimet rajapinnat vs. vendor lock in (toimittajalukkiutuminen) 03.11.2014 JOTU/KSY 6
Case 2 puolustusvoimien palkanmaksu Taas otsikoita netistä ja lehdistä Ja sen perusteella keskustelua 03.11.2014 JOTU/KSY 7
Case 2 puolustusvoimien palkanmaksu Taas otsikoita netistä ja lehdistä Puolustusvoimien palkat ovat olleet sekaisin jo yli vuoden ajan. Henkilöstölle on maksettu kuukausipalkkoja yhden sentin ja 24 000:n euron väliltä. Kaikki eivät enää jaksa uskoa, että palkkaongelmat selviävät. Puolustusvoimat hankki viime keväänä uuden SAP-pohjaisen palkkausjärjestelmän, minkä jälkeen henkilöstön palkoissa on ollut paljon erilaisia ongelmia. Työntekijöille on maksettu liikaa palkkaa tai liian vähän palkkaa. Tehtyjen virheiden korjaaminen on kestänyt kauan. Monella on ongelmia kesälomarahojen maksamisessa. (MTV3 verkkouutiset 25.06.2012 ) Pääesikunnan henkilöstöosaston edustajien mukaan uutta järjestelmää testattiin pitkään ennen käyttöönottoa. Maaliskuussa 2011 näytti siltä, että se toimisi. Järjestelmäongelman luonne teki virheiden ennalta ehkäisemisen vaikeaksi. Usein yhtä virhettä korjatessa oli ilmennyt jokin uusi ongelma. Vikaa löytyi järjestelmästä, käyttäjistä, prosesseista ja tiedon siirrosta järjestelmästä toiseen. Henkilöstöosaston mukaan näitä virheitä oli vaikea ennakoida, koska SAP on hyvin määrämuotoinen järjestelmä, ja se antaa helposti vääriä tuloksia, jos jokin koodi kirjataan väärin (Ruotuväki 13.10.2011). 03.11.2014 JOTU/KSY 8
Kommentteja (www.tietoviikko.fi, kesäkuu 2012) Ongelmat Puolustusvoimien palkanmaksussa eivät ole SAP:n tai Logican syytä. Näin kertoo Puolustusvoimien tiedotuspäällikkö Eero Karhuvaara Tietoviikolle. Karhuvaara selventää, että Puolustusvoimissa palkanmaksuun käytetään kokonaisuutta, johon kuuluvat sekä Logican palkkahallinnon ohjelmisto että SAP:n järjestelmä. Palkanmaksun ongelmat aiheutuvat virheistä, jotka ovat tapahtuneet tietojen siirtämisessä vanhasta järjestelmästä uuteen. Palkkatiedot eivät ole esimerkiksi siirtyneet SAP:sta eteenpäin tai tietojen muuntaminen ei ole onnistunut. 03.11.2014 JOTU/KSY 9
Otteita eduskunnan apulaisoikeusasiamiehen päätöksestä Pääesikunnan mukaan puolustusvoimien palkanmaksu toteutettiin 29.4.2011 alkaen PVSAP ja Logica Palkat -järjestelmillä, joiden käytettävyydestä ja perustietojen oikeellisuudesta vastaa prosessinomistajana Pääesikunnan henkilöstöosasto. Palkkojen maksamisen järjestelmänä toimii Opus Capita -pankkiyhteysohjelmisto, jonka omistaa Pääesikunnan talousosasto. Opus Capitan toimivuudessa ei ole ollut ongelmia. Palkkaan vaikuttavat tiedot syötetään puolustusvoimissa pääosin PVSAP -järjestelmään, josta ne siirtyvät liittymien kautta Logica Palkat -palkanmaksujärjestelmään. 4.10.2012 Aiemmassa selvityksessä (1.9.2011) mainittu tietoliittymän korjaus ei toteutunut arvioidussa aikataulussa elokuun aikana. Tietojärjestelmän toimittajan testauksen perusteella ilmoittama liittymän korjaus ei tuotannossa toiminut määritettyjen vaatimusten mukaisesti. Järjestelmien välinen liittymä ei uutta selvitystä annettaessa (4.10.2011) toiminut vaaditulla tavalla. Selvityksen mukaan toimenpiteiden aloitus oli viivästynyt, koska toimittaja ei pystynyt korjaamaan liittymää. Korjaavista toimenpiteistä annettava ohje joukko-osastoille oli viivästynyt samasta syystä. 03.11.2014 JOTU/KSY 10
Kertomus jatkuu 5.3.2012 Aikatietoliittymä saatiin korjattua se toimittajan Accenture Oy:n toimesta vasta syksyllä. Tästä johtuen lisäpalkkojen maksujaksot menivät ajossa virheellisesti maksuun sillä seurauksella, että lähes kaikkien lisäpalkkoja saavien henkilöiden palkoissa oli virheitä. Mittava lisäpalkkojen korjausoperaatio mainituilta maksujaksoilta aloitettiin liittymän korjauksen jälkeen. Tammikuun 2012 aikana suurin osa korjauksista oli saatu palkanmaksuun. Vuoden 2012 alussa ilmeni uusi ongelma, jonka vuoksi vuoden 2012 ensimmäisen maksujakson virkasuhteisen lisäpalkkojen maksu jouduttiin siirtämään 15. päivältä 29. päivälle helmikuuta. SAP:ssa otettiin käyttöön uusi ajastettu ajo, joka siirtää henkilön tietoihin lisäpalkkaan oikeuttavat tunnit, jotka eri syistä eivät ole siirtyneet järjestelmään. Ajastuksen myötä palkkajärjestelmään oli siirtymässä uudelleen maksuun sellaisia tunteja, jotka oli tallennettu järjestelmään hallintoyksiköissä väärää tapaa käyttäen. Liikaa maksetut summat koskivat noin 900 palkansaajaa ja summat olivat suurimmillaan useita tuhansia euroja. Ajastetun ajon käyttöönotto sinänsä parantaa palkanmaksun oikeellisuutta, mutta ensimmäisen takautuvan ajon aiheuttamiin virheellisyyksiin ei osattu varautua. 03.11.2014 JOTU/KSY 11
Havaittuja ongelmia Eri järjestelmien yhteensopivuus Monitoimittajaympäristö ei ollut hallinnassa Systeemi on vaikea käyttää ja altis käyttäjän virheille 03.11.2014 JOTU/KSY 12
Käyttöönotto Vaikea ja tärkeä osa, mutta oppaita ja materiaalia löytyy aika vähän Rajattu oppikirjankin ulkopuolelle (jos seuraava painos saadaan aikaiseksi, se otetaan mukaan) Ohjelmiston käyttöönotto = uuden tietojärjestelmän toteutus 03.11.2014 JOTU/KSY 13
Toiminnanohjausjärjestelmän käyttöönotto pk-yrityksissä VTT-julkaisu 854 Julkaisun keskeinen johtopäätös on, että tietojärjestelmän käyttöönotto on luonteeltaan organisatorinen oppimisprosessi, jota tulee systemaattisesti tukea ja vahvistaa kokemukset ja tutkimukset viittaavat siihen, että liiketoimintaprosessien uudistamiseen liittyvät laajat tietotekniikkahankkeet epäonnistuvat usein. Kansainvälisesti arvioiden vain noin kolmannes hankkeista onnistuu. 03.11.2014 JOTU/KSY 14
Käyttöönottoon kuuluu Vanhan tiedon siirtämistä uuteen Voi mennä pieleen Järjestelmän ja organisaation yhteensovittamista Usein molempiin muutoksia Oppimista ja omaksumista Ei riitä että osaa käyttää uutta järjestelmää, on myös osattava liittää se omaan työhön tehokkaasti Onko kiire vai tehdäänkö tietokoneella Ongelmien ja häiriöiden ratkomista Eli siis testausta ja korjaamista Käyttäjätuen organisoimista 03.11.2014 JOTU/KSY 15
Muutosvastarinta (TAY Pro Gradu, Anne Jokinen) Rutiinit ovat ihmisille tärkeä keino rajoittaa kuormittavuutta. Muutosvastarinnassa ei ole kyse järkiperäisestä vastustamisesta vaikkakin loogisia argumentteja esitetään. Ja monet järjestelmät tarjoavat hyviä syitä Paikallinen optimi ei ole sama kuin kokonaisuuden optimi Käyttäjien olisi ymmärrettävä kokonaisuus Muutosvastarinta on tunneperäistä Muuttuu usein työilmapiiriongelmaksi Joka on kallista 03.11.2014 JOTU/KSY 16
Leavittin timantti (organisaation peruselementit ja niiden vuorovaikutus) 03.11.2014 JOTU/KSY 17
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 03.11.2014 JOTU/KSY 18
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 kokonaisuutta hankkeeksi JOTU/KSY 03.11.2014 19
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 ohjelmistotuotantoon -kurssi syys 2013 DI-tutkinnon suorittaminen Komponenttivaraston kiertonopeuden kasvattaminen 03.11.2014 JOTU/KSY 20
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. 03.11.2014 JOTU/KSY 21
Keskeisiä projektin suureita Projektin tuotos Laajuus (scope) Lopputuloksen laatu Kalenteriaika Ihmiset ("resurssit") Mitä tapahtuu, kun yhtä joudutaan muuttamaan (trade-offs)? 03.11.2014 JOTU/KSY 22
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. JOTU/KSY 03.11.2014 23
Ohjelmistoprosessi: Historia (teoriassa) JOTU/KSY 03.11.2014 24
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 03.11.2014 25 Näkyvimmät trendit...2011: ketteryys (agility) Scrum työkalut Global SW Development (GSD) Lean JOTU/KSY Outsourcing
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 03.11.2014 JOTU/KSY 26
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 03.11.2014 JOTU/KSY 27
Projektiorganisaatio 03.11.2014 JOTU/KSY 28
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 03.11.2014 JOTU/KSY 29
Kustannukset Mahdoton alue Projektisuunnittelun haaste Mahdoton alue Kalenteriaika 03.11.2014 JOTU/KSY 30
Projektit ovat erilaisia 03.11.2014 JOTU/KSY 31
YHDESSÄ LUENNOLLA MIETITÄÄN MITÄ TARKOITTAA KUSTANNUKSILLA 03.11.2014 JOTU/KSY 32
Ja se on usein vielä vaikeampaa 03.11.2014 JOTU/KSY 33
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. 03.11.2014 JOTU/KSY 34
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 03.11.2014 LIITTEINEEN JOTU/KSY 35
http://nadihassan.wordpress.com 03.11.2014 JOTU/KSY 36
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 03.11.2014 JOTU/KSY 37
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ää 03.11.2014 JOTU/KSY 38
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 03.11.2014 JOTU/KSY 39
Gantt kaaviot (lähde: http://www.matchware.com) 03.11.2014 JOTU/KSY 40
Toinen versio (Lähde: http://orgmode.org) 03.11.2014 JOTU/KSY 41
Ne riskit usein unohtuu 03.11.2014 JOTU/KSY 42
Riskeistä usein mietitään Riskin todennäköisyys Riskin vakavuus Riskien toteutumisen ehkäisy Riskien toteutuessa mitä tehdään 03.11.2014 JOTU/KSY 43
Ketterät vs ja projektin hallinta Perinteinen Hyvät suunnitelmat Tarkka hallinto ja seuranta Projektipäällikkö Ketterät Yksilöitä ja vuorovaikutusta enemmän kuin prosesseja ja työkaluja Toimivaa sovellusta enemmän kuin kokonais-valtaista dokumentaatiota Asiakasyhteistyötä enemmän kuin sopimusneuvotteluita Muutokseen reagoimista enemmän kuin suunnitelman noudattamista. Product owner scrum master 03.11.2014 JOTU/KSY 44
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 03.11.2014 JOTU/KSY 45
TTL-julkaisusarja, Tietojärjestelmän hankinta - Ohjelmistotoimittajan ja - ratkaisun valinta. Helsinki 2005, Talentum 03.11.2014 JOTU/KSY 46
Sitähän se kaikki on (http://nadihassan.wordpress.com) 03.11.2014 JOTU/KSY 47