Projektityö 21.10.2005 Projektisuunnitelma Työn ositus Projektisuunnitelman sisältö Kurssin luennoitsija ja projektiryhmien ohjaaja: Timo Poranen (email: tp@cs.uta.fi, työhuone: B1042) Kurssin kotisivut: http://www.cs.uta.fi/pt/ 1
Projektisuunnitelma Miten määritellyillä resursseilla päästään aikataulun puitteissa haluttuun lopputulokseen? Esitutkimus Miksi järjestelmä tulisi tehdä? Miksi sitä ei kannata tehdä? Vaatimusten määrittely Tarkastus Mikä on ratkaistava ongelma, onko ratkaisua olemassa, Mitä se maksaa, mitä reunaehtoja sillä on... Millainen järjestelmä täyttää ongelman vaatimukset Miten ohjelman pitäisi toimia, asiakkaan vaatimukset Suunnittelu Tarkastus Miten järjestelmä toteutetaan, järjestelmän osittaminen Toteutus Testaus Osien ohjelmointi Integrointi Testaus Osien yhteenliittäminen Käyttöönotto ja ylläpito Vesiputousmallista (Mukailtu lähteestä: Haikala ja Märijärvi: Ohjelmistotuotanto). 2
Projektisuunnitelma Projektisuunnitelman tarkoituksena on kuvata, miten määritellyillä resursseilla päästään tietyn aikataulun puitteissa haluttuun lopputulokseen. Projektisuunnitelmassa kuvataan mm. projektiin liittyviä riskejä, tukitoimintoja, toteutusvälineitä, henkilöstö, tehtävät, aikataulu,... Projektin aikana projektisuunnitelma on projektin seurannan apuväline: sen avulla huomataan poikkeamat aikataulussa ja resurssien käytössä. Pystytään reagoimaan poikkeamiin välittömästi. Projektisuunnitelma elää koko projektin ajan. Sitä pitää päivittää. 3
Työn osittaminen Ohjelmistoprojektin suunnittelun ja toteuttamisen kannalta keskeisin tehtävä on projektin hierarkkinen osittaminen erillisiin osatehtäviin. Work Breakdown Structure. WBS tarjoaa seuraavat edut: Kertoo kaikki merkittävät työtehtävät. Mahdollistaa tehtävien jakamisen projektin jäsenille. Mahdollistaa aikataulutuksen, kustannusarviot ja projektin valvonnan. Ositustapoja: komponentit, toiminnot, projektin vaiheet, maantiede,... Perinteiset työnositusmallit jakavat projektin osiin tuotteen perusteella. Mukautuminen arkkitehtuurimuutoksiin huono. 4
Esimerkki perinteisestä osituksesta Hallinnointi Vaatimukset Osasysteemi 1 Komponentti 1 Vaatimukset, Suunnitelmat, Koodi Testit ja Dokumentit (kukin omana kohtanaan) Komponentti 2 Osasysteemi 2 Testaus (suunnitelmat, valmistelut, testaukset, raportit, omina koht.) Muut vastuut (tuotteen hallinta, laatu, syst.hallinta, omina kohtinaan) 5
Evolutionaarinen työnositusmalli Prosessin lähtökohdakseen ottava malli, jossa ositusta rakennetaan seuraavasti: Ensimmäisellä tasolla työtehtävät (hallinto, ympäristö, vaatimukset, suunnittelu, toteutus,...) Toisella tasolla luetellaan kunkin työtehtävän kohdalla projektin vaihe. Kolmannella tasolla luetellaan tehtäviä, joiden perusteella syntyy kunkin vaiheen tuotoksia. Etuja: projektien vertailtavuus, mukautuu muutoksiin helpommin, tuntimäärät projektin vaiheittain ja prosessin osien mukaan. Isoissa projekteissa voi olla useampia tasoja. Skaalautuvuus. 6
Esimerkki evolutionaarisesta WBS:stä Hallinnointi Alkuvaiheen hallinnoinnit ohjelmiston kehityssuunnitelma suunnitteluvaiheen hallinnoinnit rakentamisvaiheen hallinnoinnit ylimenovaiheen (siirto-) hallinnoinnit Ympäristö Vaatimukset alkuvaiheen vaatimusten kehitys vision vaatimukset käyttötapaukset 7
Lisää työnosituksesta Alimman tason tehtävät ovat yhdelle henkilölle osoitettavissa olevia selkeästi rajattuja työkokonaisuuksia. Työtehtäviin liittyy alkamisajankohta, päättymisajankohta, tekijät, käytettävä työpanos ja vaihetuotteet. Työtehtävä on valmis, kun sen vaihetuote on hyväksytty projektisuunnitelman määrittelemällä tavalla. Mitä pienempiin osiin tehtävien jaossa päästään, sitä luotettavampi työmääräarvio yleensä on. Pienet tehtävät mahdollistavat tehokkaan seurannan, sillä aikataulusta poikkeamat havaitaan nopeasti. Liian pienet tehtävät aiheuttavat kuitenkin byrokratiaa. WBS:n tarkkuus on kompromissi ohjattavuuden ja ohjauksen vaatiman työmäärän välillä. 8
Työn osituksen ongelmia Käytännössä kaikkia projektin tehtäviä ei voida tietää etukäteen. Yllättäviä tehtäviä saattaa olla esim. 20% projektin kaikista tehtävistä. Projektisuunnitelmaan on jätettävä riittävästi pelivaraa ennakoimattomien tehtävien ja yllätyksien varalle. Aikataulutusta varten on määritettävä tehtävien keskinäiset riippuvuudet (tehtävä x suoritettava ennen tehtävää y). Kriittisten tehtävien tunnistaminen ja projektin seuraamisen apuvälineet: erilaiset kaaviot (Gant, toimintokaavio). 9