Koskikara-projekti

Ville Laitila
Aapo Mäkinen
Pekka Moisio
Harri Pölkki

Projektisuunnitelma 3.11.2003

Jyväskylän yliopisto
Tietotekniikan laitos

Koskikara-projektin tietoja
Tekijät:	Ville Laitila (vimalait@cc.jyu.fi),
Pekka Moisio (pejumois@cc.jyu.fi),
Aapo Mäkinen (ajmakine@cc.jyu.fi) ja
Harri Pölkki (hepolkki@cc.jyu.fi).
Työ: Projektisuunnitelma Koskikara-projektiin
Tiivistelmä: Koskikara-projektissa kehitetään Kottarainen-projektin luomaa kyselyjen laatimis- ja hallintajärjestelmää. Kehitystyössä keskitytään kyselyn vastausten analysointiin, tulosten havainnolliseen esittämiseen sekä kyselypankkiin. Projektisuunnitelma kuvaa menetelmät ja resurssit projektin läpivientiin.
Tilaajat ja ohjaajat: 
Sovelluksen tilaajia ovat yliopiston organisaatioista avoin yliopisto edustajanaan Eija Ihanainen, hallinto edustajanaan Mauno Väisänen, opetuksen laadun kehittämishanke OPLAA! edustajanaan Jari Rantamäki sekä virtuaaliyliopisto, jota edustaa Antti Auer. Laitoksen vastaavana ohjaajana toimii Jukka-Pekka Santanen sekä teknisinä ohjaajina Teemu Vähä-Ruka ja Vesa Lappalainen.
Yhteystiedot: Agora, huone C222.2, puh.nro. 014-260 4963, projektiorganisaation sähköpostilista koskikara@korppi.jyu.fi.
Avainsanat: Kysely, kyselyiden hallinta, vastausten analysointi, kyselypankki, WWW-sovellus, Korppi-järjestelmä.

Versiohistoria

Versio	Pvm	Tehnyt	Muutos	
0.1	29.09.2003	Harri Pölkki	Alustava versio	
0.11	30.09.2003	Harri Pölkki	Lisäyksiä	
0.12	01.10.2003	Harri Pölkki	Lisäyksiä	
0.13	02.10.2003	Harri Pölkki	Lisäyksiä	
0.14	06.10.2003	Harri Pölkki	Lisäyksiä	
0.2	07.10.2003	Harri Pölkki	Kommenttien pohjalta muutoksia	
0.21	08.10.2003	Harri Pölkki	Kappaleiden numerointi ja lisäyksiä	
0.22	09.10.2003	Harri Pölkki	Pieniä muutoksia	
0.3	14.10.2003	Pekka Moisio	Santasen ehdotusten käsittely ja muokkaaminen	
0.31	15.10.2003	Harri Pölkki
Pekka Moisio	Jatkoa edelliseen	
0.4	17.10.2003	Harri Pölkki	Santasen kommenttien pohjalta edelleen muokkaamista	
0.41	20.10.2003	Harri Pölkki	Jatkoa edelliseen	
0.5	27.10.2003	Harri Pölkki	Viimeistelyä Santasen ohjeiden mukaan	
0.51	28.10.2003	Harri Pölkki	Jatkoa edelliseen	
1.0	28.10.2003	Harri Pölkki	Sisällöltään valmis	
1.01	29.10.2003	Harri Pölkki	Lisätty uusi aikataulukaavio	
1.1	01.11.2003	Harri Pölkki	Santasen kommenttien pohjalta viimeistelyä	
1.11	03.11.2003	Harri Pölkki	Liite muutettu	

Sisällysluettelo
1	Johdanto
2	Termistöä
3	Taustaa ja sijoittuminen kokonaisuuteen
3.1	Taustaa
3.2	Edeltäneet projektit
4	Tavoitteet
4.1	Kehitettävän sovelluksen tavoitteet
4.2	Oppimistavoitteet
5	Projektiorganisaatio ja resurssit
5.1	Organisaation jäsenet
5.2	Resurssit
6	Projektin tehtävät, aikataulu ja vaiheet
6.1	Määrittelyvaihe
6.2	Suunnitteluvaihe
6.3	Toteutusvaihe
6.4	Testausvaihe
6.5	Projektin loppuunsaattaminen
6.6	Aikataulu
7	Laadun varmistus ja projektin käytänteitä
7.1	Vastuut ja päätöksentekoprosessi
7.2	Projektin dokumenttien hallinta
7.3	Muutosten hallinta
7.4	Riskien hallinta
7.5	Tulosten hyväksyminen
8	Projektin viestintä
8.1	Viestintävälineet
8.2	Palaverikäytäntö ja yhteydenpito
9	Projektin päättäminen
9.1	Lopputuotteen luovutus
9.2	Projektin tuottaman aineiston taltiointi ja arkistointi
10	Yhteenveto
Lähteet
Liite. Projektin aikataulu

1	Johdanto
Koskikara-niminen tietotekniikan Sovellusprojekti jatkokehittää WWW-pohjaista sovellusta kyselyjen hallintaan ja analysointiin Jyväskylän yliopiston käyttöön. Toteutettavan sovelluksen osat ovat kyselypankki ja analysointityökalu.
Järjestelmän käyttäjä on tyypillisesti kurssin vetäjä. Käyttäjä luo kyselyitä, selaa vastauksia, analysoi kyselyitä ja koostaa uusia kyselyitä entisten pohjalta. Kyselyiden vastaajat näkevät yhteenvedon kyselyn vastauksista, kunhan kyselyn laatija on laatinut sen ja asettanut sen nähtäville esimerkiksi kurssin kotisivustolle.
Projektisuunnitelma kuvaa, kuinka Koskikara-projekti viedään läpi. Suunnnitelma ohjaa projektia sen jokaisessa vaiheessa. Projektia tukevia dokumentteja ovat myös vaatimusmäärittely ja sen pohjalta laadittava sovellussuunitelma. Vaatimusmäärittely kuvaa sovelluksen vaaditut ominaisuudet ja sovellussuunitelmaa kuvaa, kuinka ne saadaan toteutettua.
Luvussa 2 esitellään projektiin liittyvät keskeiset termit ja lyhenteet. Luvussa 3 kuvataan projektin taustaa ja edeltäneitä projekteja. Luvussa 4 paneudutaan projektille asetettuihin tavoitteisiin. Luku 5 esittelee projektiorganisaation ja resurssit. Luvussa 6 käydään läpi projektin aikataulua ja tehtäviä, sekä tehtävien jakautumista ryhmän jäsenten välille. Luku 7 kuvaa projektin laadunhallintaa. Luku 8 kertoo projektin viestintään liittyvistä asioista. Luvussa 9 esitellään projektin päättymiseen liittyviä asioita.
2	Termistöä
Luvussa on selvennetty Koskikara-projektissa käytettävää termistöä. Koskikara-projektin aiheeseen ja Korppi-järjestelmään liittyviä termejä ovat seuraavat: 
Analyysi	on vastausten sisältämien tietojen muuttamista helpommin tulkittavaan muotoon.
Benchmarking	on arviointitapa, jossa useampi organisaatio suorittaa matriisimuotoisen laadunarviointikyselyn ja vertailee saamiaan tuloksia keskenään.
Keskiarvo	kuvaa otoksen keskimääräisen arvon.
Keskihajonta	kuvaa havaintoarvojen keskimääräistä etäisyyttä keskiarvosta.
Korppi	on Jyväskylän yliopistossa kehitetty opetushallintajärjestelmä.
Kotka	on Korppi-järjestelmän tietokanta ja henkilötietojen hallintaosio.
Kysely	on yksittäisen kyselyn tuottamaa dataa, johon luetaan vastaukset ja raportit.
Kyselypankki	varastoi kyselyt julkisuusasteen mukaan kyselyjen analysointia ja uusien kyselyiden luontia varten.
Kyselytieto	sisältää yksittäisen kyselyn tuottamat vastaukset ja/tai tulokset.
Kysymysryhmä	käsittää yhden tai useampia loogisesti tai visuaalisesti samaan aihepiiriin liittyviä kysymyksiä.
Kysymystyyppi	luokittelee kysymykset vastausvaihtoehtojen mukaan.
Maksimi	on havaintoaineiston suurin arvo.
Mediaani	on suuruusjärjestykseen asetettujen havaintoarvojen keskimmäinen arvo tai kaksi keskimmäistä, mikäli havaintoja on parillinen määrä.
Metatieto	on kohteisiin liitettävää tarkoitusta, käyttömuotoa ja laatimista kuvaavaa lisätietoa. Se helpottaa kyselyitä haettaessa ja vastauksia analysoitaessa eri kohteiden liittämistä toisiinsa. Mahdollisia metatietoja ovat esimerkiksi kyselyn laatija ja laatimisajankohta.
Minimi			on havaintoaineiston pienin arvo.
Moodi			on havaintoaineiston useimmin esiintyvä arvo(t).
Raportti		esittää analyysin tulokset kuvainnollisessa muodossa.
Vastattava kysely	on voimasssaoleva kysely.
Projektin toteutusympäristöön sekä käytettäviin työkaluihin ja tekniikoihin liittyviä termejä ovat seuraavat:
Bugzilla	on WWW-pohjainen monipuolinen virheiden korjausten hallintajärjestelmä.
CSS	eli Cascading Style Sheets on WWW-sivujen ulkoasua kuvaava kieli.
CVS	(Concurrent Version System) on ohjelmistokehityksessä käytettävä versionhallintajärjestelmä.
Eväste	(engl. cookie)  on Netscapen luoma, mutta nykyään jo standardoitu menetelmä saada WWW-sivuista vuorovaikutteisempia. Palvelin lähettää pieniä tietopaketteja selaimelle, jonka perusteella käyttäjä asetuksineen tunnistetaan jatkossa.
HTML		on WWW-sivujen sisältöä kuvaava kieli.
HTTP	on WWW-arkkitehtuurin käyttämä tiedonsiirtoprotokolla.
Java	on Sunin kehittämä laitteistoriippumaton olio-ohjelmointikieli.
Java-pavut	(engl. JavaBeans) ovat Java-ohjelmointikielellä luotuja komponentteja, joita voidaan kutsua JSP-sivuilla.
JBuilder	on ohjelmistonkehitystyökalu mm. Java- ja JSP-ohjelmointiin.
JDBC	eli Java Database Connectivity on Java-teknologian käyttämä tietosilta erilaisiin tietokantoihin.
JSP	eli Java Server Pages on ohjelmointikieli, jossa HTML-koodin sekaan on mahdollista lisätä Java-koodia.
Palvelin	on WWW-sovellusten tapauksessa ohjelmisto, joka palvelee asiakkaana toimivien selainten hakupyyntöjä.
Selain	on ohjelma, joka käyttäjän koneella tulkkaa HTML-kieliset sivut kuvaruudulla esitettävään muotoon.
Servletti	on palvelimella sijaitseva sovelma (engl. applet), joka toteuttaa HTTP-palvelimen pyynnöstä tietyn toiminnon.
Skripti	on ohjelmointikieltä muistuttava ja usein hieman yksinkertaistettu tulkattava kieli.
Skriptaus	tarkoittaa WWW-sivujen tapauksessa ohjelmakoodin kirjoittamista HTML-dokumenttien sisään. Palvelinpuolen skriptauksessa koodi ajetaan palvelinkoneessa ja asiakaspään skriptauksessa selaimessa.
SQL	eli Structured Query Language on tietokantojen hallintaan kehitetty standardi kieli.
TomCat	on ilmainen servletti- ja JSP-moottori.
XML	on rakenteisten dokumenttien määrittely- ja kuvauskieli.
3	 Taustaa ja sijoittuminen kokonaisuuteen
Koskikara-projekti toteuttaa Korppi-järjestelmän osana olevaan kyselysovellukseen toimintoja, joita ei ehditty toteuttaa Kottarainen-projektin yhteydessä. Uusina ominaisuuksina kehitetään kyselypankki sekä vastausten analysoinnin ja tulosten raportoinnin mahdollistava sovellus käyttöliittymineen. Kyselyjen luontisovellus on luotu jo Kottarainen-projektin toimesta. 
3.1	Taustaa
Yliopiston laitoksilla on erilaisia tarpeita laatia lomakkeita ja koota tietoa verkon kautta. Avoimella yliopistolla on mm. tarve saada kurssipalautteen analysointia helpommaksi ja nopeammaksi. Nykyisellään kukaan ei ehdi käydä läpi yli 18 000 opiskelijan palautetta. Siirtämällä palautteen antaminen WWW-ympäristöön, saadaan perusanalyysien tekemistä automatisoitua. Samalla kerätty tieto saadaan koottua tietokantaan mahdollista myöhempää käsittelyä varten.
Tämä projekti pyrkii ensisijaisesti jatkokehittämään sovellusta kyselyiden ja niiden vastausten hallintaan yleisellä tasolla. Sovellukseen kehitettävän analysointityökalun analyyseillä muodostetaan kyselystä raportti. Kovinkaan korkeatasoisia analyysejä sovelluksella ei kuitenkaan ole tarkoitus tehdä. Vastauksien tarkempaa analysointia varten on tulokset siirrettävä muuhun ohjelmistoon.

3.2	Edeltäneet projektit
Korppi-opetustietojärjestelmän kehitys on lähtenyt liikkeelle tarpeesta kurssikirjanpidon parantamiseksi ja automatisoimiseksi. Edeltäjä Kurki-kurssikirjanpitojärjestelmä toteutettiin Tietotekniikan cum laude työprojektina keväällä 1998 silloiselle matematiikan laitokselle (josta tietotekniikan laitos eriytyi syksyllä 1998 uuteen informaatioteknologian tiedekuntaan). Projektiryhmän muodostivat Pauli Kujala, Riku Nykänen ja Niina Riikonen. Kurki-järjestelmän idea oli kehityskelpoinen ja sitä päätettiin kehittää ja laajentaa etenkin, kun sen käytettävyydessä oli kehittämisen varaa. 
Korppi-opetushallintajärjestelmän kehitys aloitettiin syksyllä 2000. Tuolloin Kotka-projekti toteutti järjestelmän tietokannan alustavan rakenteen ja kehitti henkilötietojen hallintaosion malliksi tuleville ryhmille. Korppi-projekti määritteli opiskelijan, opettajan ja ylläpitäjän WWW-käyttöliittymän kurssikirjanpitosovellukselle keväällä 2003. 
Korppi-järjestelmän kehittämistä jatkoi Kolibri-projekti toteuttamalla syksyllä 2001 WWW-pohjaisen päivyri- ja ajanvarausosion. Koppelo-projekti kehitti keväällä 2002 opinnäytteiden hallintasovelluksen. Kiuru toteutti syksyllä 2002  WWW-pohjaisen salivaraussovelluksen 
Koskikara-projektia edelsi Kottarainen-projekti keväällä 2003. Ajanpuutteen vuoksi kuitenkin päätettiin Kottarainen-projektissa luopua analyysitoimintojen ja kyselypankin toteutuksesta. Koskikara-projektissa toteutetaan siis kyseiset puuttuvat osat.
Korppi-järjestelmästä ja Kotka-tietokannasta ja niiden dokumentaatiosta löytyy lisätietoja osoitteesta http://kotka.it.jyu.fi/.
4	Tavoitteet
Luku kuvaa projektin tavoitteita kehitettävän sovelluksen ja oppimistavoitteiden osalta.
4.1	Kehitettävän sovelluksen tavoitteet
Projektin ensimmäisenä tavoitteena on kehittää kyselysovellukseen toiminto, jolla voidaan suorittaa yksinkertainen vastausten analysointi. Analysoinnin tulokset esitetään raportteina. Raportti kuvaa vastauksista saadut tunnusluvut ja jakaumat sekä graafisesti että taulukoituna.
Numeerisesti luokitelluista arvoista muodostuvat vastaukset mahdollistavat. esimerkiksi kurssin tyytyväisyyskyselyyn analysoinnin. Kyselyyn voidaan vastata asteikolla 1-5. Numeerisissa vastauksissa esitetään määriä ja niistä laskettuja tunnuslukuja, kuten keskiarvo ja mediaani.
Tekstimuotoisten vastausten analysointi automaattisesti on vaikeaa, joten analysoinnissa luodaan kaikista tekstimuotoisista vastauksista allekkain oleva listaus. Raporttiin on mahdollista myös valita vain joitain olennaisia tekstimuotoisia vastauksia. 
Sovellus tarjoaa kyselyn laatijalle mahdollisuuden kommentoida kaikkia vastauksia sekä kysymyksiä, kysymysryhmiä ja kyselyä kokonaisuutena. Tällä tavoin kyselyyn vastanneet voivat saada myös palautetta vastauksistaan. 
Toinen projektin tavoitteista on kehittää sovellukseen kyselypankki. Se tarjoaa Korppi-käyttäjille mahdollisuuden varastoida esimerkiksi oma kurssikysely ja käyttää sitä seuraavan vuoden kyselyn pohjana. Tällöin voidaan koostaa vanhasta tallennetusta kyselystä uusi kysely, täydentäen sitä muilla kysymysryhmillä ja kysymyksillä. Myös useasta eri kyselystä kyselypankissa voidaan muodostaa yksi ainoa kysely, valitsemalla vain halutut kysymysryhmät ja kyselyt uuden kyselyn pohjalle. Kyselypankki siis varastoi kyselyitä tietokantaan ja mahdollistaa vanhojen kyselyiden etsimisen kyselypankista sekä niiden hyödyntämisen uusien kyselyiden pohjana.
4.2	Oppimistavoitteet
Projektiryhmän keskeisenä tavoitteena on oppia projektimuotoisen työskentelyn toimintatapoja. Sovellusprojekti tarjoaa myös mahdollisuuden tutustua laajemman sovelluksen kehitykseen kuin luentokurssilla on mahdollista toteuttaa.
Viestintä- ja kommunikointikykyjen oppiminen on tärkeä osa sovellusprojektilaisten oppimistavoitteita. Nykyään miltei jokaisessa työssä joutuu työskentelemään paljon erilaisten ihmisten kanssa. Sovellusprojekti luo ihmissuhdetaitojenkin osalta hyvän pohjan tulevaan työelämään siirtymiselle.
Ongelmatilanteiden ratkaiseminen tulee esille isommassa mittakaavassa kuin aiemmin. Projektin aikana ryhmän jäsenet kohtaavat varmasti useita ongelmallisia tilanteita, jotka joudutaan ratkaisemaan. Näissä tilanteissa ihmissuhdetaidot korostuvat, jotta saadaan nopea ratkaisu aikaan, eikä tulehduteta organisaation työilmapiiriä.
Lisäksi projektissa tutustutaan useisiin uusiin tekniikoihin ja sovelluksiin. Niiden käytön oppiminen ja soveltaminen ovat myös keskeisiä tavoitteita.
5	Projektiorganisaatio ja resurssit
Luvussa kuvataan projektin käytössä olevia resursseja sekä organisaatioon kuuluvat henkilöt ja heidän suhteensa projektiin.
5.1	 Organisaation jäsenet
Koskikaran projektiorganisaatioon kuuluvat projektiryhmä, tilaajan edustajat, vastaava ohjaaja ja tekniset ohjaajat. Projektiryhmän jäseniä ovat opiskelijat Harri Pölkki, Ville Laitila, Aapo Mäkinen ja Pekka Moisio. Harri Pölkki toimii koko projektin ajan projektipäällikkönä. Tilaajan edustajia ovat Eija Ihalainen Jyväskylän avoimesta yliopistosta, Jari Rantamäki opetuksen laatuhanke OPLAA!:sta, Antti Auer virtuaaliyliopistosta sekä Mauno Väisänen yliopiston hallinnosta.
Koskikara-projektin vastaava ohjaaja on Jukka-Pekka Santanen ja teknisenä ohjaajana toimii Teemu Vähä-Ruka. Vesa Lappalainen toimii projektissa sekä teknisenä ohjaajana että tilaajan edustajana. Neuvonantajina projektissa toimivat Pekka Penttinen, Kari Nissinen sekä Jukka-Pekka Kesonen. Projektin mikrotuesta vastaavat Harri Tuomi (Linux) ja Jussi Kokkonen (Windows).

5.2	Resurssit
Koskikara-projektin tarvitsemat resurssit tulevat tietotekniikan laitokselta. Projektin resursseja ovat projektihuone AgC222.2 Agorassa, kaksi Windows XP -työasemaa ja kolme RedHat 9 Linux -työasemaa. Projektin jäsenten tarvitsemat ohjelmistot tulevat tietotekniikan laitokselta. 
Projektiryhmän mikroilla on asennettuna seuraavat ohjelmistot. Tekstinkäsittelyä varten on MSWord 2000 Windows-koneissa ja OpenOffice Linux-koneissa. Sovelluskehitysympäristönä toimii JBuilder Enterprisen versio 9. Kahdessa koneessa on asennettuna Tomcat 4, Apache, PostgreSQL 7.3.2, sekä kopiot Kotka-tietokannasta ja Korppi-järjestelmän kehitysversiosta. Versionhallinnan työkaluina käytetään CVS:ää sekä JBuilderin sisäänrakennettuja CVS-ominaisuuksia.
6	Projektin tehtävät, aikataulu ja vaiheet
Luvussa määritellään projektin aikataulu eri toteutusvaiheineen. Projektin aikataulu tehtäviksi jaettuna on esitetty liitteessä 1.
Projekti on jaettu kuuteen eri vaiheeseen.Projektin vaiheita ovat vaatimusten määrittely, sovelluksen ja projektin suunnittelu, sovelluksen ohjelmointi ja testaaminen, sekä toteutetun sovelluksen ja projektin raportointi. Kyseisten työvaiheiden tuloksina syntyvät vastaavat dokumentit ja lähdekoodi. Projektiryhmälle on jaettu yksityiskohtaiset tehtävät lukujen 6.1- 6.6 mukaan.
6.1	Määrittelyvaihe
Projektin alkuvaiheessa laaditaan vaatimusmäärittely. Vaatimusmäärittelystä pitää saada mahdollisimman kattava, jotta todella ollaan varmoja tilaajien toiveista ja tarpeista. Sovelluksen vaatimusten määrittelyyn osallistuvat Pekka Moisio, Ville Laitila ja Aapo Mäkinen.
6.2	Suunnitteluvaihe
Projektin alussa laadittava projektisuunnitelma määrittää Koskikara-projektille aikataulun välitavoitteineen, sekä kuvaa projektia muiltakin osin. Tarkastuspisteiden avulla voidaan varmistua, että projekti etenee halutulla tavalla. Tämä dokumentti on projektin seurannan ja hallinnan kannalta erittäin keskeinen. Projektisuunnitelman laatii projektipäällikkönä toimiva Harri Pölkki projektiryhmän avustamana. 
Sovellussuunnitelman laatiminen aloitetaan viimeistään viikkoa aiemmin kuin vaatimusmäärittely on saatettu täysin valmiiksi. Sovellusksen suunnittelu voidaan aloittaa valmistuneiden vaatimusten osalta tietenkin aiemminkin. Sovellussuunnitelman tekoon osallistuvat Pekka Moisio ja Ville Laitila. Harri Pölkki ja Aapo Mäkinen avustavat heitä muiden toimiensa ohessa.

6.3	Toteutusvaihe
Toteutus koostuu pääosin ohjelmoinnista ja yksikkötestauksesta. Pyrkimyksenä on laatia edellisissä vaiheissa niin hyvät määrittelyt ja suunnitelmat, että toteutuksessa ei tule olemaan mitään suurempia ongelmia. Toteutusvaihe aloitetaan ennen kuin sovellussuunnitelma on täysin valmis. 
Toteutuksesta erottuvat laajempina kokonaisuuksina kyselypankki ja analysointityökalu, jotka jaetaan pienempiin osatehtäviin. Tarkempi kuvaus ohjelmaosioista valmistuu sovellussuunnitelmaan.
Kyselypankkia alkavat toteuttamaan Aapo Mäkinen ja Harri Pölkki. Kyselypankki jakautuu pienempiin kokonaisuuksiin kyselyiden haun ja koostamisen sekä koostettujen kyselyiden tallentamisen osalta. 
Pekka Moisio ja Ville Laitila toteuttavat kyselyiden analysointityökalun. Analysointityökaluun liittyvät vastausten analysointi, raportin koostaminen analyysista, graafien tuottaminen ja esikatselu.
Yksikkötestaus suoritetaan siten, että Harri testaa Aapon koodiin ja päinvastoin. Pekka ja Ville testaavat toistensa koodit vastaavasti. Näin varmistetaan, että koodista löydetään useimmat virheet. Ohjelmoija itse ei yleensä ole kykenevä testaamaan riittävän tarkasti koodiaan.
6.4	Testausvaihe
Integraatio- ja järjestelmätestaus on erittäin tärkeä vaihe. Tässä vaiheessa järjestelmällisesti etsitään määritellyt tiedot ja toiminnot sisältävästä tuotteesta mahdollisia vikoja sekä toiminnallisuudesta että koodista. Testauksen tuloksena on vakaampi ja käytettävämpi sovellus. Testausvaiheeseen osallistuvat kaikki projektiryhmän jäsenet sekä tilaajien edustajia.
Testausvaihe käynnistyy jo ohjelmointivaiheessa yksikkötestauksen muodossa. Todellinen järjestelmän testaaminen alkaa kuitenkin vasta kun sovelluksen prototyyppi on valmis. 
Lopputuote koostuu useasta pienemmästä erikseen ohjelmoitavasta osasta eli komponentista. Integraatiotestauksella varmistetaan että komponenttien välinen toiminta on virheetöntä.
Järjestelmätestauksessa varmistetaan valmiin lopputuotteen moitteeton toimivuus lähinnä käytettävyyden osalta. Testin tulevat tekemään projektiryhmäläisten lisäksi ulkopuoliset henkilöt, tässä tapauksessa osa tilaajista. Tällöin saadaan esille erilaisia ongelmakohtia verrattuna projektiryhmän tekemiin testauksiin.
Testasta varten laaditaan testaussuunnitelma. Se kertoo testauskokoonpanon ja testitapaukset. Tavoitteena on saada aikaan toistettava testitilanne. Testausvaiheen lopuksi laaditaan testausraportti joka kertoo suoritetut testit sekä niiden tulokset. 
6.5	Projektin loppuunsaattaminen
Tässä vaiheessa tuotetaan osa projektiin liittyvistä dokumenteista. Näitä dokumentteja ovat ainakin sovelluksen käyttöohje, testaussuunnitelma ja -raportti, sekä projektiraportti. Projektikansio saatetaan tuolloin loppuun, kuten myös sovellusraportti ja tietokantaraportti. Suuri osa dokumentoinnista hoidetaan jo projektin aikana.
Pekka Moisio alkaa laatimaan loppudokumentointteja jo testausvaiheen aikana. Muut projektiryhmäläiset auttavat dokumentoinnissa saatuaan omat työnsä valmiiksi. Projektista laaditaan päättymisvaiheessa loppuraportti, josta käy ilmi kaikki tehty työ. Projektiraportista käy ilmi myös, etenikö projekti projektisuunnitelmassa suunnitellulla tavalla. Näin voidaan etsiä virheitä tai syitä, joiden vuoksi alkuperäinen suunnitelma tai aikataulu ei pitänytkään, projektin mahdollisesti myöhästyessä.
6.6	Aikataulu
Projektille on varattu aikaa syyskuun 2003 lopusta tammikuun 2004 puoleen väliin. Käytännössä projektin toteuttaman sovelluksen tulisi olla valmis jo joulukuun puoleenväliin mennessä. Tällöin jää riittävästi aikaa viimeistellä sovellusta ja dokumentaatiota.
Tarkempi aikataulu ja tarkistuspisteet esitetään liitteessä ja taulukossa 1.

Tehtävä	Tarkistuspäivämäärä	
Vaatimusten määrittelyn takaraja	19.10.2003	
Sovellussuunnitelman takaraja	7.11.2003	
Sovelluksen prototyyppi	26.11.2003	
Valmis sovellus	15.12.2003	
Projektin lopetus	8.1.2004	

Taulukko 1. Projektin vaiheiden tarkistuspisteet.

Todellisuudessa projektiryhmän työt kuitenkin jakautuvat tilanteen mukaan. Tarvittaessa kaikki ryhmän jäsenet osallistuvat esim. sovellussuunnitelman tekoon. Tehtävien uudelleenjako on mahdollista ja jopa suotavaakin kesken työskentelyn. Tällöin saadaan uusia näkökulmia ongelmatilanteissa.
7	Laadun varmistus ja projektin käytänteitä
Luvussa käsitellään Koskikara-projektin vaikuttavia tekijöitä. Niiden hallinnalla pyritään varmistamaan sovelluksen ja dokumenttien vaadittu taso. 
7.1	Vastuut ja päätöksentekoprosessi
Tilaaja tarjoaa projektiryhmälle riittävän kattavan ja tarkan kuvauksen aihealueesta. Tietotekniikan laitos vastaa siitä, että projektiryhmän käytössä on tarvittavat tilat ja tietokoneet projektin läpivientiin. 
Projektiryhmä toteuttaa tilatun sovelluksen vaadituilla ominaisuuksilla määräaikaan mennessä. Projektiryhmä huolehtii projektin tärkeiden asioiden tiedotuksesta koko projektiorganisaatiolle.
Projektiryhmän sisäiset päätökset tehdään pääasiassa yhdessä ryhmän jäsenten kesken. Jos yksimielisyyttä jäsenten välillä ei saada aikaan, on projektipäällikön harkintansa mukaan lyötävä asia lukkoon. 
Projektipäällikkö vastaa projektin etenemisestä projektisuunnitelman mukaan. Hän vastaa myös viestinnästä organisaation sisällä.
Koko projektiorganisaation tasolla päätöksiä tehdään yleensä projektipalavereissa. Edellisessä palaverissa käsitellyt ja päätetyt asiat on kirjattu pöytäkirjaan sekä ne käydään läpi tiivistetysti seuraavassa palaverissa. Tällöin mahdolliset poissaolleet tietävät, mitä uutta on projektin tiimoilta päätetty. Päätökset tehdään palavereissa yhteistuumin.
7.2	Projektin dokumenttien hallinta
Projektin vaiheiden tulokset dokumentoidaan projektiryhmän toimesta huolellisesti. Pääasiallisesti dokumentoinnista vastaa Pekka Moisio. Laadukkaalla dokumentoinnilla projektiryhmä voi varmistua siitä, että itse sovellus täyttää halutut ominaisuudet. Tärkeimpiä projektin alun dokumentteja ovat projektisuunnitelma, vaatimusmäärittely ja sovellussuunnitelma.
Kaikki dokumentit laaditaan samalle dokumenttipohjalle, jolloin projektin dokumentaatioon tutustuminen on helpompaa. Dokumenttien pohjana käytetään muokattua Kottarainen-projektin dokumenttipohjaa. Dokumentit laaditaan MS Wordilla ja tallennetaan rtf-formaatissa.
Projektiryhmä dokumentoi koko projektin etenemisen ajan, mutta painopiste on varmasti projektin loppupuolella. Silloin toteutetaan esim. sovelluksen käyttöohje.
Projektiryhmä asettaa dokumentit esille myös projektin kotisivulle. Kotisivulla dokumentit ovat saatavissa sekä html- että rtf-formaatissa.
7.3	Muutosten hallinta
Dokumenteissa on yhtenä osiona versiohistoria. Tästä taulukosta voidaan helposti todeta tehdyt muutokset, muutoksen päivämäärä sekä muutoksen tekijä. Taulukko löytyy dokumenttien alkupuolelta.
Lähdekoodin muutoksia hallitaan CVS-versionhallintajärjestelmällä. CVS pitää kirjaa ohjelmakoodin tehdyistä muutoksista. Se mahdollistaa palaamisen vaikkapa viikon vanhaan koodiin.
Projektin läpivientiä projektiryhmä hallitsee projektihuoneen seinällä olevalla aikataulukaaviolla. Kaaviosta käy ilmi ryhmäläisten tehtävät projektin aikana. Aikataulua päivitetään siten, että se kertoo tehtävät vähintään kahden viikon päähän. Tarvittaessa tai jonkun niin halutessa kaaviota on helppo muokata projektin sen hetkiseen tilanteeseen sopivaksi.
7.4	Riskien hallinta
Luku arvioi projektiin liittyviä riskejä sekä toimintatapoja mahdollisen riskin toteutuessa. Riskien tunnistaminen ja niiden hallinta ovat keskeisiä asioita projektin menestyksekkään läpiviennin kannalta. Kun perehdytään jo ennalta mahdollisiin riskeihin, voidaan määrittää etukäteen toimintatavat mahdollisen riskin toteutuessa.
Riskinä voi olla esimerkiksi projektin jäsenen sairastuminen tai loukkaantuminen. Tällöin on oltava jo ennalta selvillä, kuinka hänen työpanos korvataan projektissa. Varsinkin pitempään jatkuva sairaus viivästyttää projektia varmasti. Matkat tai muut mahdolliset menot voivat myös vaikuttaa projektiin etenemiseen.
Suurempaa kokonaisuutta toteutettaessa, ongelmaksi voi muodostua kokonaisuuden hallinta. Tällöin ei saadakaan välttämättä Korppi-järjestelmän kanssa yhteensopivaa lopputulosta. Koko ajan on siis pidettävä mielessä, että ollaan tekemässä osaa Korppi-järjestelmästä.
Ongelmat uusien tekniikoiden ja työkalujen oppimisen kanssa ovat mahdollisia, varsinkin aikataulun ollessa tiukka. Tätä riskiä pyritään minimoimaan tutustumalla tekniikoihin etukäteen, muun projektityöskentelyn ohella. Perehdytyskoulutukset esimerkiksi teknisten ohjaajien toimesta alentavat tätä riskiä huomattavasti.
7.5	Tulosten hyväksyminen
Vaiheiden lopputuloksia ovat kaikki määrittelyt ja suunnitelmat, lähdekoodit ja raportit. Lopputulokset ja mahdolliset välitulokset hyväksytetään tilaajan edustajilla ja ohjaajilla projektipalaverien yhteydessä.
Ennen dokumenttien hyväksymistä projektiryhmä tekee dokumenteille kieliasun tarkistuksen. Tilaajien ja ohjaajien kommenttien pohjalta muokkaamme dokumentteja haluttuun suuntaan. Tämän jälkeen dokumentit esitellään ja hyväksytetään uudestaan tilaajilla ja ohjaajilla.
8	Projektin viestintä
Luvussa käsitellään projektin viestintään ja projektipalavereihin liittyviä yleisiä asioita.
8.1	Viestintävälineet
Projektiryhmä tiedottaa projektin etenemisestä ja ongelmista pääasiallisesti projektipalavereissa. Sähköpostilista koskikara@korppi.jyu.fi on tarkoitettu päivittäiseen viestintään. Projektin sähköpostilistan arkisto sijaitsee osoitteessa https://korppi.it.jyu.fi/list-archive/koskikara/. Projektihuoneessa on myös puhelin, johon voi ottaa yhteyttä kiireellisissä asioissa. 
Projektin kotisivulla osoitteessa http://kotka.it.jyu.fi/koskikara/ sijaitsevat ajan tasalla olevat projektipalaverien esityslistat ja pöytäkirjat, vaatimusmäärittely, sovellussuunnitelma sekä projektisuunnitelma.
8.2	Palaverikäytäntö ja yhteydenpito
Palavereissa sovelletaan yleistä kokouskäytäntöä. Projektipalavereissa projektiryhmän jäsenistä jokainen vuorollaan on puheenjohtaja. Puheenjohtaja avaa kokouksen ja johdattaa keskustelua. Lopuksi puheenjohtaja päättää kokouksen. Sihteerinä toimivat kukin projektiryhmän jäsen vuorollaan.
Projektiryhmä laatii esityslistan ennen seuraavaa projektipalaveria. Esitylista julkaistaan viimeistään palaveria edeltävänä päivänä. Tällöin kaikki organisaation jäsenet voivat valmistautua palaveriin hyvin.
Palavereista laaditaan projektiryhmän toimesta pöytäkirjat heti palaverin jälkeen, jotta käsitellyt asiat, päätökset ja sovitut tehtävät eivät unohdu. Luodut pöytäkirjat lähetetään sähköpostilla koko projektiorganisaatiolle. Pöytäkirjat ovat saatavilla kotisivulta.
9	Projektin päättäminen
Luvussa kuvataan projektin päättämiseen liittyviä tehtäviä.
9.1	Lopputuotteen luovutus
Projektiryhmän toteuttamat tulokset luovutetaan tilaajalle lopputuotteen ollessa täysin valmis. Tulokset sisältävät kaikki dokumentit, lähdekoodit ja materiaalit.
Luovutuspäivämäärä on viimeistään tammikuun 15. päivä. Aiemminkin lopputuote voidaan luovuttaa, mikäli tuote on luovutettavassa kunnossa. Koko projektiorganisaation on kuitenkin hyväksyttävä tuote ennen luovutusta.
9.2	Projektin tuottaman aineiston taltiointi ja arkistointi
Kokonaisuudessaan projektin tuottama aineisto on nähtävillä projektikansiossa. Kansio sisältää paperiversiot kaikista tuotetuista dokumenteista, lähdekoodista ja muista materiaaleista, sekä niiden CD-ROMille tallennetut versiot. 
Projektikansio löytyy projektin ajan projektihuoneesta AgC222.2. Kansion avulla tärkeät dokumentit pysyvät järjestyksessä ja tallessa.
Kansio arkistoidaan projektin päätyttyä sovellusprojektien yhteistilaan AgC223.1, aikaisempien projektien kansioiden viereen. Näin ollen mahdollinen sovellusta jatkokehittävä ryhmä saa kaiken tiedon edeltäneen projektin tuloksista ja ratkaisuista käyttöönsä. 
10	Yhteenveto
Projektiryhmä jatkokehittää WWW-pohjaista kyselysovellusta. Sovelluksen keskeisiä osia ovat vastausten analysointi, niistä tehtävät raportit, sekä kyselyiden uudelleen koostaminen vanhoista kyselyistä. 
Projektisuunnitelma kuvaa oleelliset asiat projektin järkevän läpiviennin kannalta. Keskeisimmät asiat liittyvät aikatauluun, tehtäviin ja tehtävien jakautumiseen sekä laadunvarmistukseen.

Lähteet

Lesonen Minna, Pekkanen Hannu, Tawast Tuukka ja Uuksulainen Heikki, ”Korppi-projektin projektikansio”, Jyväskylän yliopisto, tietotekniikan laitos, 2000.

Santanen Jukka-Pekka, ”Tietotekniikan Sovellusprojektien ohje”, Jyväskylän yliopisto, tietotekniikan laitos, 2003.

Santanen Jukka-Pekka, ”Opinnäytteiden kirjoittaminen, lyhyt oppimäärä”, Jyväskylän yliopisto, tietotekniikan laitos, 2000.

Lintunen Sampsa, Pöyhönen Tiina, Vähä-Ruka Teemu ja Ylönen Timo, ”Kottarainen-projektin projektikansio”, Jyväskylän yliopisto, tietotekniikan laitos, 2003.

Ruuska Kai, ”Projekti hallintaan”, Talentum ,1999.

Liite. Projektin aikataulu