Projektin suunnittelun ohje

1. Vaiheen tarkoitus

Projektin suunnitteluvaiheen aikana projekti perustetaan ja se organisoi ja suunnittelee tulevan toimintansa. Tätä varten työn kohteena olevaa ongelma tulee analysoida niin pitkälle, että laadittava järjestelmä ja sen toteutus voidaan kohdistaa ja mitoittaa oikein. Tähän liittyen selvitetään ja kuvataan ohjelmiston toiminnot ja toteutukselle asetettavat vaatimukset ja rajoitukset yhdessä asiakkaan kanssa. Kokemus on osoittanut, että vaatimuksia tulee usein enemmän kuin ehditään toteuttaa. Tästä syystä vaatimusten priorisointi on tärkeä osa projektin suunnittelua.

2. Vaiheen tehtävät

2.1 Käytännön asioiden organisointi

Opiskelijat muodostavat projektiryhmän ja sopivat heti aluksi mm. viestinnästä keskenään (sähköposti/muu, milloin kokoonnutaan jne.).  Tarkempaa tietoa dokumentointiohjeessa. Tarvittaessa sovitaan ohjaajan tai asiakkaan kanssa muiden tarvittavien välineiden ja materiaalien saamisesta käyttöön.

2.2 Järjestelmän toimintojen ja vaatimusten kartoitus

Tästä on olemassa erillinen vaatimusmäärittely.

2.3 Työn oikeuksista sopiminen

Jotta jälkeenpäin ei syntyisi epäselvyyttä siitä, mitä oikeuksia opiskelijoilla, asiakkaalla ja muilla osapuolilla on toteutettavaan ohjelmistoon, on erittäin suositeltavaa sopia asiasta etukäteen esim. erillisellä sopimuksella.

2.4 Työn tulevien vaiheiden tehtävien suunnittelu ja mitoitus

Suunnitellaan vaatimusmäärittelyn pohjalta järjestelmän tulevaan suunnitteluun ja toteuttamiseen vaadittavat tehtävät, niiden keskinäinen järjestys ja ajoitus. Myöhempien vaiheiden suunnitelmat voivat olla aluksi varsin karkealla tasolla; riittää, että tehtävät voidaan ajoittaa kuhunkin projektin vaiheeseen ja arvioida kokonaistuntimäärä. Seuraavan vaiheen suunnitelman puolestaan on oltava niin tarkka, että tehtävät voidaan jakaa henkilöille ja seurata niiden valmistumista. Tehtävien osituksen suhteen kannattaa noudattaa nyrkkisääntöä, että sopiva tehtävän kesto on 2-20 tuntia. Alle kahden tunnin tehtävät kannattaa pyrkiä niputtamaan sopiviksi kokonaisuuksiksi, kuitenkin niin, että tehtäviä suorittava henkilö tietää mitä kaikkea nippu sisältää. Tarkistuslistat ovat hyviä apuvälineitä tehtäväkokonaisuuksien hallitsemiseen. Poikkeuksia ovat esimerkiksi katselmukset, jotka voivat kestää vain tunnin mutta ovat tyypillisesti projektin virstanpylväitä, jolloin ne kannattaa nostaa esille projektisuunnitelmassa. Yli 20 tunnin tehtävät puolestaan ovat työn arvioinnin ja ohjaamisen kannalta hankalia. Jos tehtävää ei voida osittaa korkeintaan 20 tunnin osatehtäviin on se yleensä merkki siitä, ettei tiedetä mitä ollaan tekemässä.

2.5 Projektin vastuualueiden ja tehtävien jakaminen

Ohjelmatyö on tarkoitettu tehtäväksi 2-4 henkilön ryhmissä. Kokemuksen mukaan voidaan antaa suosituksia tehtävien ja vastuun jakamisesta näiden henkilöiden kesken:

  1. Määrätään kullekin ryhmän jäsenelle rooli(t), joita ovat esim. projektipäällikkö, suunnittelija ja ohjelmoija.
  2. Jaetaan vastuu kullekin roolille tehtäväluokittain esim. seuraavasti:
  3. Projektipäällikkö: vastuussa projektista kokonaisuutena, aikataulujen pitämisestä ja työnjaon onnistumisesta. Erityisesti projektisuunnitelma, sen vaihekohtaiset suunnitelmat, edistymisraportit ja loppuraportti kuuluvat hänen vastuulleen. Asiakasvastaava: vastuussa yhdessä projektin asiakkaan kanssa vaatimusmäärittelyn ja toiminnallisen määrittelyn tuloksista. Huolehtii, että muut ryhmän jäsenet ymmärtävät asiakkaan tarpeet riittävän hyvin koko projektin ajan. Suunnittelija: päävastuussa järjestelmän teknisestä suunnittelusta, kuten arkkitehtuurista, liittymistä, ja käytetyistä työkaluista. Laatii myös yleensä testaussuunnitelman. Suunnittelijoita voi olla useita (1/osajärjestelmä). Käyttöliittymävastaava: vastaa käyttöliittymän suunnittelusta, mahdollisesti toteutuksestakin, sekä testauksesta yhdessä asiakkaan, ohjaajan ja mahdollisen käyttöliittymäkehitys-kurssin työryhmän kanssa. Päävastuu myös käyttöohjeiden laadinnassa. Ohjelmoija: päävastuu modulien toteutuksesta ja siihen liittyvistä työkaluista ja testauksesta. Testi- ja virheraporttien kirjoitus. Ohjelmoinnin päävastuu. Ohjelmoijia voi olla useita (1/osajärjestelmä). Dokumentointivastaava: päävastuu dokumenttien laadusta ja koostamisesta eri henkilöiden kirjoittamista osista sekä saattamisesta kurssin vaatimusten mukaiseen tiedostomuotoon ja niiden palauttamisesta. Tämä työnjako on vain esimerkki. Jokaisen ryhmän kannattaa jakaa vastuu ja tehtävät jäsenten tietojen, taitojen ja muiden edellytysten sekä järjestelmän luonteen mukaan. Yhdellä ihmisellä voi olla myös useita, samanaikaisiakin rooleja.
  4. Jaetaan määrittely-, suunnittelu-, toteutus- ja dokumentointitehtävät tietojärjestelmän osajärjestelmäjaon mukaisesti niin, että kukin ryhmän jäsen on vastuussa vähintään yhden osajärjestelmän tai muuten selkeän kokonaisuuden toteuttamisesta.

3. Vaiheen tulokset

3.1 Vaatimusmäärittely

3.2 Projektisuunnitelma

Projektisuunnitelmassa ryhmä esittää mahdollisimman realistisen kuvan projektista ja sen vaatimasta työpanoksesta kunkin ryhmän jäsenen kohdalla. Aloitettavaan projektiin, sen aiheeseen ja lopputulokseen liittyy alkuvaiheessa ärsyttävän paljon epämääräisiä ja edeltäkäsin tuntemattomia asioita, joten yksityiskohtaisen suunnitelman laatiminen puutteellisin tiedoin saattaa tuntua varsin turhauttavalta. Mutta tehtävän ennakoinnin ja valmistelun, siis suunnittelun tarkoituksena on juuri vähentää projektin epämääräisyyttä ja ennen kaikkea varmistaa mielekäs koordinointi ja työnjako ryhmän kesken.

Projektisuunnitelma toimii koko työn aikana projektipäällikön työkaluna, jonka avulla hän voi valvoa työn edistymistä. Projektisuunnitelmaa täydennetään joka vaiheen aikana, jotta se olisi ajan tasalla ja hyödyllinen koko projektin ajan.

Projektisuunnitelman sisällöstä löytyy tietoa erillisestä projektisuunnitelman mallista. Mallin käyttämisessä kannattaa noudattaa omaa harkintaa ja soveltaa sitä oman projektin tarpeisiin. Mallissa on paljon yksityiskohtia, mutta monesta asiasta selviää muutamalla lauseella. On myös kohtia, jotka eivät sovellu projektin käyttöön. Nämä voidaan kuitata esimerkiksi lauseella "Ei sovelleta tässä projektissa, <siitä ja siitä syystä>". Seuraavassa luvussa luetellaan mallista poikkeavat käytännöt, joita on tarkoitus noudattaa tällä kurssilla.  

Lyhyesti sanottuna projektisuunnitelman tehtävänä on kertoa projektista kuka tekee, mitä tekee ja milloin tekee.

Projektisuunnitelma on kirjallinen dokumentti. Suositeltava pituus on riippuu tietenkin harjoitustyön laajuudesta, minimi sivumäärä voisi olla kaksi, maksimimäärää ei ole. Jokaisella sivulla täytyy olla sivunumero, dokumentin nimi ja versio sekä päivämäärä.

 Projektisuunnitelmassa on oltava seuraavat asiat:

kansilehti sisällysluettelo varsinainen teksti projektiaikataulu mahdolliset liitteet.

Kansilehdellä tulevat seuraavat asiat:

organisaation nimi projektin nimi dokumentin nimi versionumero sivujen lukumäärä tekijät tila (hyväksytty, jätetty tarkastettavaksi, keskeneräinen) tarkastajan ja hyväksyjän nimi ja nimikirjoitukset

Projektisuunnitelmassa esitetään kirjallinen suunnitelma siitä kuinka ohjelmistoprojekti toteutetaan eli lyhyesti "kuka tekee, mitä tekee ja milloin". Jos määrittelyraportti oli toteutettavan järjestelmän toiminnallisuuden suunnittelua, niin projektisuunnitelma on oman toiminnan siis toteuttajien työn suunnittelua.

Esimerkit

Seuraavassa kaksi vaihtoehtoa projektisuunnitelman sisällysluetteloksi:

Esimerkki 1 projektisuunnitelman sisällöstä:

1) Määrittelyt
    1.1 Johdanto ja tausta
    1.2 Projektin tavoitteet
    1.3 Rajaus ja liittymät

2) Organisaatio
    2.1 Projektiryhmä
    2.2 Johtoryhmä
    2.3 Yhteyshenkilöt

3) Toteutussuunnitelma
    3.1 Ositus ja toteutusvaiheet
    3.2 Aikataulu
    3.3 Tehtäväluettelo
    3.4 Resurssisuunnitelma
    3.5 Laatusuunnitelma
    3.6 Mahdolliset riskit

4) Ohjaussuunnitelma
    4.1 Kokoussuunnitelma
    4.2 Tiedottaminen
    4.3 Valvonta ja raportointisuunnitelma
    4.4 Koulutussuunnitelma

5) Budjetti

Esimerkki 2  projektisuunnitelman sisällysluettelosta:

1) Tehtävä

2) Tavoitteet

3) Puitteet ja varaukset

4) Projektin organisaatio

5) Osaprojektit ja tehtävät

6) Resurssit

7) Aikataulu ja toimintaverkko

8) Raportointi

9) Talousarvio

10) Riskit

11) Projektin lopettaminen

3.3 Projektisuunnitelman mallista poikkeavat käytännöt (tällä opintojaksolla)

Johdanto

Tiedot aiheesta ja opintojaksosta. Sovitut oikeudet työn tuloksiin.

Projektin organisointi

Projektiryhmän jäsenten käytössä olevat tunnit per vaihe, eli saatavilla olevat resurssit. Tässä tulee ilmetä tekeekö joku esimerkiksi etu-/takapainotteisesti (= projektin alussa enemmän / projektin lopussa enemmän) töitä ja motivointi sille.

Projektin tavoitteet ja päättyminen

Asiat voivat olla ominaisuuksia, toimintoja ja muita projektiin tai järjestelmään liittyviä tavoitteita. Näiden asioiden tulee myös olla mitattavissa, jotta niiden toteutuminen voidaan verifioida.  Esimerkiksi "laadukas dokumentointi" ei kelpaa sellaisenaan, vaan lisäys "dokumentin laadun arvioi subjektiivisesti asiakas, joka katselmoi dokumentit" tarvitaan kuvaamaan verifiointikäytäntöä. Samalla tavalla "järjestelmän on toimittava suuremmitta viiveittä suurellakin kuormituksella" on tarkennettava määrittelemällä aikaraja viiveelle tietyllä järjestelmän kuormituksella.

Projektin ositus ja vaiheistus

Määritellään käytettävät työmenetelmät ja -välineet: CASE-työkalut, versionhallintajärjestelmät, ohjelmakoodin kommentointi ja dokumentointi (tarkkuustaso, käytettävät työkalut ja menetelmät), työajan raportointi, virheiden raportointi. Tiedonkulku, analyysi- ja arviointimenetelmät, ryhmätyöt ja kokoukset jne. Riskien hallinta. Kartoitetaan työn kannalta oleelliset, tiedossa olevat riskit, niiden todennäköisyys, vaikutus ja suojautumiskeinot. Riskitaulukkoa tulee pitää yllä projektin myöhemmissä vaiheissa. Käytettävien kirjallisuuslähteiden määrittely. Jaetaan tiettyjen erityistehtävien vastuu ja määritellään ryhmän jäsenten roolit projektin eri vaiheissa

Ohjaussuunnitelma

Projektin valvonta- ja seurantamenetelmät: Laadunvalvonta Aikatauluvalvonta Resurssien käytön valvonta Mittarit Katselmukset