Kottarainen-projekti

Sampsa Lintunen
Tiina Pöyhönen
Teemu Vähä-Ruka
Timo Ylönen

Projektisuunnitelma 4.4.2003

Jyväskylän yliopisto 
Tietotekniikan laitos

Kottarainen-projektin tietoja
Tekijät: 	Sampsa Lintunen (sampsa@cc.jyu.fi)
Tiina Pöyhönen (tmpoyhon@cc.jyu.fi)
Teemu Vähä-Ruka (teemuvr@cc.jyu.fi)
Timo Ylönen (tylonen@cc.jyu.fi)

Yhteystiedot: Agora, huone C223.2, puh.nro. 014-260 49 64 projektiorganisaation sähköpostilista on kottarainen@korppi.jyu.fi. Sen keskustelua voi seurata osoitteessa http://korppi.it.jyu.fi/list-archive/kottarainen/. Kotisivu löytyy osoitteesta: http://kotka.it.jyu.fi/kottarainen/.
Työn nimi: Kottarainen-projekti, projektisuunnitelma
Työ: Projektisuunnitelma tietotekniikan sovellusprojektiin
Tiivistelmä: Kottarainen-projekti toteuttaa WWW-pohjaisen kyselysovelluksen, jonka osiot mahdollistavat kyselyiden luomisen WWW-ympäristöön, vastausten hallinnan sekä tulosten muodostamisen ja esittämisen. Kottarainen-sovellus tulee olemaan yksi aiemmin toteutetun Korppi-järjestelmän moduuleista. Projektisuunnitelmassa kuvataan projektin taustoja ja tavoitteita, projektiorganisaatiota sekä työnjakoa ja suunniteltua aikataulua.
Avainsanat: Tiedonkeruu, kyselyt, palaute, WWW-lomakkeet, WWW-sovellus, Korppi-järjestelmä

Versionhallinta
Versio	Päiväys	Tehnyt	Muutokset	
0.1	26.2.	Timo Ylönen		
0.11
	27.2.	Timo Ylönen	Pieniä lisäyksiä ryhmän palautteen pohjalta.	
0.12	3.3.	Timo Ylönen	Aikataulun tarkentamista, pieniä muutoksia.	
0.2	10.3.	Timo Ylönen	Korjauksia Santasen kommenttien pohjalta.	
0.21	14.3.	Timo Ylönen	Korjailtu ulkoasua, lisätty Korppi-järjestelmän taustan kuvaamista.	
0.22	16.3.	Timo Ylönen	Korjauksia Santasen kommenttien perusteella.	
0.23	18.3.	Timo Ylönen	Dokumentointi- ja kokouskäytäntöjen lisäys.	
0.24	19.3.	Tiina Pöyhönen	Lisätty kaavio Kottarainen-projektin suhteesta muihin järjestelmiin.	
0.3	19.3.	Timo Ylönen	Ulkoasun muokkaamista, pieniä lisäyksiä.	
0.4	19.3.	Tiina Pöyhönen	Ulkoasun muokkaamista, pieniä lisäyksiä, kuvan lisääminen.	
0.41	25.3.	Timo Ylönen	Korjauksia Santasen kommenttien perusteella.	
0.42	26.3.	Timo Ylönen ja Tiina Pöyhönen	Hiomista.	
0.5	1.4.	Tiina Pöyhönen	Korjauksia Santasen kommenttien perusteella.	
1.0	4.4	Timo Ylönen	Hiomista.	

Sisällysluettelo
1. Johdanto
2. Termejä
3. Projektin taustaa
3.1 Kyselyprosessi
3.2 Korppi-järjestelmä
3.3 Muita järjestelmiä
4. Projektin tavoitteet
4.1 Tavoitteet sovelluksen osalta
4.2 Oppimistavoitteet
5. Projektin resurssit ja organisaatio
5.1 Henkilöt ja yhteystiedot
5.2 Laitteet ja ohjelmistot
6. Projektin tehtävät ja niiden jakautuminen
7. Projektin aikataulu
8. Riskien arviointi ja hallinta
8.1 Eriävät näkemykset toteutettavasta järjestelmästä
8.2 Yhtenäisyys olemassaolevan järjestelmän kanssa
8.3 Ohjelmointi
8.4 Muut riskit
9. Dokumentointi- ja kokouskäytännöt
9.1 Dokumentointikäytännöt
9.2 Lähdekoodien kommentointi ja muuttujien nimeäminen
9.3 Kokouskäytännöt
10. Yhteenveto
Lähteet
Liite. Projektin aikataulusuunnitelma

1. Johdanto
Kottarainen-niminen tietotekniikan Sovellusprojekti toteuttaa WWW-pohjaisen kyselyjen laatimis-, hallinta- ja analysointisovelluksen Jyväskylän yliopiston käyttöön. Sovelluksen osia ovat kyselyiden luominen WWW-ympäristöön, vastausten hallinta sekä tulosten muodostaminen ja esittäminen. Kottarainen tulee toimimaan yhdessä jo olemassaolevan, Korppi-nimisen, opetushallintajärjestelmän kanssa. Tämän järjestelmän edeltäjä, Kurki, toteutettiin sovellusprojektina vuonna 1998. Sitä ovat seuranneet Kotka-, Korppi-, Halko-, Kolibri-, Koppelo- ja Kiuru-projektit. 
Dokumentissa kuvataan Kottarainen-projektin läpivientiä. Sovellukselta vaadittavat ominaisuudet on selvitetty Vaatimusmäärittelyssä. Tarkempi suunnitelma sovelluksen rakenteesta ja toteutusratkaisuista käy ilmi Sovellussuunnitelmasta.
Luvussa 2 esitellään aiheeseen liittyviä käsitteitä. Projektin taustoja ja tavoitteita kuvataan tarkemmin luvuissa 3 ja 4. Luvussa 5 kuvataan projektin organisaatio ja resurssit. Luvussa 6 käsitellään projektin tehtäviä ja niiden jakautumista projektin jäsenten kesken. Luku 7 kuvaa projektin suunnitellun aikataulun, luvussa 8 arvioidaan projektiin liittyviä riskejä sekä luvussa 9 esitellään dokumentointi- ja kokouskäytännöt.
2. Termejä
Luvussa on selvennetty Kottarainen-projektissa käytettävää termistöä.
Kottarainen-projektin aihealueeseen ja Korppi-järjestelmään liittyviä termejä ovat seuraavat: 
Korppi	on Jyväskylän yliopistossa kehitetty opetushallintajärjestelmä.
Kotka	on Korppi-järjestelmän tietokanta ja henkilötietojen hallintaosio.
Kysely 	käsittää koko kyselyn ja voi koostua yhdestä tai useasta kysymysryhmästä.
Kysymyspankki	on kokoelma kysymyssarjoja, joista voi valita uuden kyselynsä pohjaksi kokonaisia sarjoja, kysymysryhmiä tai yksittäisiä kysymyksiä.
Kysymysryhmä	käsittää yhden tai useampia samaan aihepiiriin liittyviä kysymyksiä.
Kysymyssarja	on kysymyspankkiin saataville sijoitettu kysely.
SAS	on tilastollinen ohjelma.
SPSS	on yliopistolla laajasti käytetty tilastollinen analysointi-ohjelma.
SPSS Data Entry	on WWW-kyselyiden tekemiseen tarkoitettu ohjelma.
Survo	on käyttöympäristö tekstin ja numeerisen tiedon luovaan käsittelyyn.

Projektin toteutusympäristöön sekä  käytettäviin työkaluihin ja tekniikoihin liittyviä termejä ovat seuraavat:
Apache	on ilmainen HTTP-palvelinohjelmisto.
CSS	eli Cascading Style Sheets on WWW-sivujen ulkoasua kuvaava kieli.
CSV	eli Comma Separated Values on tiedon esitysmuoto, jossa eri arvot erotetaan toisistaan pilkulla.
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.
JDBC	eli Java Database Connectivity on Java-teknologian käyttämä tietosilta erilaisiin tietokantoihin.
JSP	eli JavaServer Pages on ohjelmointikieli, jossa HTML-koodin sekaan mahdollista lisätä Java-koodia.
PostgreSQL		on ilmainen tietokannanhallintajärjestelmä.
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 rakenteinen dokumenttien määrittely- ja kuvauskieli.

3. Projektin taustaa
Luvussa käsitellään projektin lähtökohtia. Sekä OPLAA!- että virtuaaliyliopisto-hankkeen tavoitteena on luoda pysyviä rakenteita. Yksi tällainen rakenne on jatkuvan arvioinnin mahdollistava järjestelmä. Järjestelmän tueksi tarvitaan WWW-selaimella toimiva kyselytiedon keruun ja hallinnan järjestelmä.
Yliopiston eri laitoksilla on muitakin tarpeita laatia lomakkeita ja koota tietoa verkon kautta. Avoimella yliopistolla on 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 tekeminen automatisoitua. Samalla kerätty tieto saadaan koottua tietokantaan mahdollista myöhempää käsittelyä varten.
3.1 Kyselyprosessi
Kyselyprosessi koostuu seuraavista vaiheista:
•	kyselyn suunnittelu,
•	kyselyn laatiminen,
•	kyselyyn vastaaminen,
•	vastausten hallinta ja tarkastelu,
•	yksinkertaisten tunnuslukujen laskeminen ja esittäminen sekä
•	yksityiskohtaisemman analyysin tekeminen.

Kyselyn suunnittelun tekee joko kyselyn laatija tai joku muu henkilö. Apuna suunnittelussa voi käyttää Kottarainen-sovellusta, mutta suunnitelman voi tehdä myös muilla työkaluilla, kuten kynällä ja paperilla. Tämän jälkeen suunnittelija tai hänen valtuuttamansa henkilö laatii kyselyn Kottarainen-sovelluksen avulla. Kun kysely on saatu valmiiksi, halutut henkilöt voivat vastata siihen. Vastaamisen jälkeen kyselystä laaditaan automaattisesti yhteenveto, johon kuuluu yksinkertaisten tunnuslukujen laskeminen ja niiden esittäminen graafisessa muodossa. Sovellus myös tekee kerätystä aineistosta SPSS-yhteensopivan tiedoston, josta on tilastollisten ohjelmistojen avulla mahdollista tehdä kattavampia analyysejä.
3.2 Korppi-järjestelmä
Ensimmäinen Jyväskylän yliopistossa yleiseen käyttöön toteutettu WWW-pohjainen kurssikirjanpitosovellus, Kurki, toteutettiin matematiikan laitokselle tietotekniikan cum laude -työprojektina keväällä 1998. Sen tarkoituksena oli yhdenmukaistaa laitoksella käytetyt kurssikirjanpitojärjestelmät ja laajentaa niiden käytettävyys verkkoon. Kurki huomattiin ideana hyväksi ja sen käyttöä haluttiin laajentaa, jonka vuoksi päätettiin aloittaa sen seuraajan toteuttaminen. 
Uuden Korppi-nimisen opetushallintajärjestelmän ensimmäinen kehittäjä oli syksyn 2000 cum laude -työprojekti Kotka. Kotka-projekti määritteli uuden järjestelmän ominaisuudet, suunnitteli sille tietokannan, vertaili mahdollisia ohjelmistoja ja valitsi niistä järjestelmässä käytettävät sekä toteutti henkilötieto-osuuden. Keväällä 2001 Korppi-projekti jatkoi järjestelmän kehitystä toteuttamalla järjestelmän kurssikirjanpito-osion.
Kevään 2001 Halko-projekti toteutti Heinolan kansalaisopistolle prototyypin opetuksenhallintajärjestelmästä. Toteutuksessa tehtiin läheistä yhteistyötä Korppi-projektin kanssa, joka teki vastaavan kaltaista sovellusta yliopiston tarpeisiin.
Kolibri-projekti toteutti WWW-pohjaisen päivyri- ja ajanvarausosion Jyväskylän yliopiston tietotekniikan laitoksella olemassa olevaan Kotka-järjestelmään.
Koppelo-projekti kehitti Jyväskylän yliopiston tietotekniikan laitokselle WWW-pohjaisen opinnäytteiden hallintasovelluksen.
Kiuru toteutti WWW-pohjaisen salivaraussovelluksen Korppi-järjestelmään. Projektin työhön sisältyi myös rajapinnan määrittely ja toteuttaminen ulkopuoliseen salivarausjärjestelmään salivarausten synkronointia varten.
Korppi-opetuksenhallintajärjestelmässä on olemassa jo lomakkeenluonti- ja raportointiosio, joka on kehitetty kurssiarvostelun antamiseen ja kurssipalautteen keräämiseen. Osio ei kuitenkaan vastaa tilaajien tarpeita, koska sen ominaisuudet ovat varsin rajoittuneet. Kottarainen-projektin tarkoitus on luoda uusi, paremmin tarpeita vastaava sovellus.
Lisätietoa Korppi-järjestelmästä ja Kotka-tietokannasta ja niiden dokumentaatiosta löytyy WWW:stä osoitteesta: http://kotka.it.jyu.fi/.
3.3 Muita järjestelmiä
Muiden kyselyjen laatimiseen ja vastausten analysointiin kehitettyjen järjestelmien pääasiallisia ongelmia ovat hinta, analysoinnin hankaluus ja heikko muokattavuus yliopiston tarpeisiin. Kottarainen-projekti pyrkii vastaamaan tähän haasteeseen.
Yliopistolla on jo SPSS Data Entry -niminen kaupallinen työasemasovellus, jolla voidaan luoda erilaisia kyselyitä melko helposti. Tätä käytettäessä tarvitaan kuitenkin teknistä osaamista ja korkeat käyttöoikeudet valmiin kyselyn saattamiseksi verkkoon. Käytännössä kyselyt onkin hoidettu verkkoon lähettämällä ne ylläpitäjälle, joka sitten on laittanut kyselyt vastaajien ulottuville. Toinen ongelma Data Entryn käytössä on se, että vastaukset pitää analysoida itse SPSS:ää käyttäen. Lisäksi lomakkeiden luonti on myös sidottu vain niihin työasemiin, joille ohjelma on asennettu. Lisäksi SPSS:stä ei ole Linux-versiota, joten sen yhteiskäyttö Korppi-järjestelmän kanssa olisi vaikeaa. 
Optima on Discendumin kehittämä Jyväskylän yliopiston ja monen muunkin organisaation käyttämä kaupallinen verkko-oppimisympäristö. Sen avulla pystytään toteuttamaan verkkokursseja. Optiman pääasiallinen tarkoitus ei ole kyselyiden luominen ja niistä saatavan tiedon hallinta ja esittäminen. Tämän vuoksi on olemassa tarve sopivamman sovelluksen kehittämiselle.
4. Projektin tavoitteet
Luvussa kuvataan Projektin tavoitteet toteutettavan sovelluksen sekä jäsenten henkilökohtaisen oppimisen suhteen.
4.1 Tavoitteet sovelluksen osalta
Projektissa toteutettava uusi sovellus on selkeä parannus luvussa 3 mainittuihin ongelmiin. Sen avulla lomakkeet luodaan suoraan WWW-selaimella, jolloin kyselyn laatijat eivät ole riippuvaisia käyttöjärjestelmästä, ajasta eikä paikasta. Sovellus esittää myös valitut yksinkertaiset tunnusluvut saadusta datasta ottaen huomioon, että tiedon jatkokäsittelyn on oltava mahdollista vaativampaakin analyysiä varten.
Kottarainen-projekti toteuttaa helppokäyttöisen ohjelmiston, jolla voi luoda kysely- ja palautelomakkeita, suorittaa kyselyn ja hallita vastauksia sekä analysoida kyselyiden tuloksia. Lisäksi kyselyitä ja niiden tuloksia voi siirtää muihin sovelluksiin, lähinnä SPSS:ään ja Optimaan. Kottarainen-sovelluksen suhde edellä mainittuihin sekä muihin järjestelmiin näkyy kuvasta 1.
Lomakkeita on voitava laatia dynaamisesti siten, että niitä voi käyttää esimerkiksi kurssipalautteen keräämiseen. Lomakkeiden täyttö tapahtuu Internetin kautta WWW-sovellusta käyttäen. Kyselylomakkeella kerätty tieto tallentuu tietokantaan myöhempää käyttöä varten. Tarkoitus on kerätä tieto sellaiseen muotoon, että sitä voidaan käyttää sellaisenaan tai muokattuna muissa ohjelmissa. Yksityiskohtaisemmat sovellukselle asetetut tavoitteet, niiden priorisointi ja jatkokehityksen osalle sovitut ideat on esitetty Vaatimusmäärittelyssä ja Sovellussuunnitelmassa.

Kuva 1: Kottarainen-sovelluksen suhde muihin järjestelmiin.
4.2 Oppimistavoitteet
Projektiryhmän jäsenten oppimisen tavoitteina on hankkia käsitys ja kokemusta luentokursseja suuremman ohjelmistoprojektin läpiviennistä sekä yleensäkin perehdyttää projektimuotoiseen ryhmätyöskentelyyn. Jokainen ryhmän jäsen toimii jonkin aikaa myös projektipäällikön tehtävissä saaden näin arvokasta kokemusta työelämää silmälläpitäen. Myös tutustuminen uusiin tekniikoihin ja ohjelmointityökaluihin sekä niillä ohjelmointiin on yhtenä tavoitteena.
5. Projektin resurssit ja organisaatio
Luvussa kuvataan projektin käytössä olevia resursseja sekä organisaatioon kuuluvat henkilöt ja heidän suhteensa projektiin.
5.1 Henkilöt ja yhteystiedot
Projektiryhmään kuuluvat tietotekniikan opiskelijat Sampsa Lintunen, Tiina Pöyhönen, Teemu Vähä-Ruka ja Timo Ylönen. Tilaajina toimivat Jyväskylän yliopistosta avoin yliopisto edustajanaan Eija Ihanainen, opetuksen laatuhanke OPLAA! edustajanaan Jari Rantamäki, virtuaaliyliopisto edustajanaan Antti Auer sekä yliopiston hallinto, jota edustaa Mauno Väisänen.
Kottarainen-projektin vastaavana ohjaajana toimii Jukka-Pekka Santanen. Tietotekniikan laitokselta ryhmän ohjaukseen osallistuu Vesa Lappalaisen lisäksi Jussi Mäkinen ryhmän teknisenä ohjaajana. Myös muita asiantuntijoita tullaan konsultoimaan projektin edetessä.
Projektin dokumentointi on luettavissa projektin kotisivuilla http://kotka.it.jyu.fi/kottarainen/. Projektilla on käytössä sähköpostilista kottarainen@korppi.jyu.fi, jonka viestejä pääsee selaamaan WWW-osoitteesta http://korppi.it.jyu.fi/list-archive/kottarainen.
5.2 Laitteet ja ohjelmistot
Projektiryhmä sai käyttöönsä Agorasta huoneen C223.2, jossa on asennettuina kaksi Linux-konetta ja kaksi Windows 2000 -konetta. Linux-koneille on asennettu Netbeans-ohjelmointiympäristöstä versio 3.4.1 JSP-sivujen ja Java-papujen toteuttamiseen. Windows-koneille on asennettu Borland JBuilder -ohjelmointiympäristöEnterprise-versio 7.0.154.0 vastaavaan tarkoitukseen. CVS-versionhallinnassa käytetään NetBeansien ja JBuilderien sisäänrakennettuja CVS-ominaisuuksia. 
Hyperion-koneelle on asennettu Tomcatin versio 4 kehitysvaiheen palvelinkäyttöön. Samoin Hyperionilla on asennettuna Apache-HTTP-palvelin, jonka avulla saadaan käyttöön SSL-salaus. Lisäksi samalla koneella on kopio Kotka-tietokannasta sekä Korppi-järjestelmän kehitysversio. 
Windows-koneilla on MS Office 2000 -ohjelmistopakettis ja MS Visio sekä muita projektin tarvitsemia ohjelmistoja. Linux-koneilla on vastaavasti Staroffice sekä muita ohjelmistoja. Torrance-koneella on myös SPSS- ja SPSS Data Entry -ohjelmistojen versiot 11.0 ja 3.0.3. 
6. Projektin tehtävät ja niiden jakautuminen
Projektin alussa projektiryhmän jäsenet tutustuivat yhdessä aihealueeseen, työkaluihin sekä XML-standardeihin. Lisäksi haastateltiin useita ihmisiä ja perehdyttiin dokumentointiin.
Tästä eteenpäin ryhmän jäsenille sovitaan tarkempia perehtymisalueita. Teemu Vähä-Ruka keskittyy sovelluksen visuaalisen ilmeen suunnitteluun ja tiedon visuaaliseen esittämiseen. Sampsa Lintunen tutustuu Korppi-järjestelmän tietokantaan ja suunnittelee Kottarainen-sovelluksen tiedon tallennusrakenteen ja kysymyspankin. Tiina Pöyhösen vastuualueena on dokumentoinnin koordinointi ja JSP-tekniikkaan tutustuminen. Timo Ylönen tutustuu Java-papuihin ja JSP-tekniikkaan. 
Määritellyt tehtävät on jaettu vastuualueittain siten, että nimetyt henkilöt perehtyvät omaan osa-alueeseensa tarkemmin kuin muihin projektin osa-alueisiin. Kuitenkin jokaisen projektilaisen tulee olla perillä myös toisten osuuksista. Näin jokainen tulee tutuksi järjestelmän kehityksessä tarvittavien ohjelmien, tekniikoiden ja ohjelmointikielten kanssa sekä pystyy lisäksi opettamaan muille oman osa-alueensa erityispiirteet. Vastuualueet eivät rajoita ketään toimimaan ainostaan kyseisissä tehtävissä, vaan varsinkin ohjelmointitehtävät pyritään jakamaan mahdollisimman tasapuolisesti kaikkien ryhmän jäsenten kesken. 
Seuraavaksi tehtäviä tarkennetaan siten, että sovelluksen toteutusvaihe jaetaan loogisiin osakokonaisuuksiin. Niitä ovat kyselyn luominen ja muokkaaminen, kyselyyn vastaaminen, vastausten muokkaaminen ja analysointi tuloksiksi sekä tulosten esittäminen. Näitä kokonaisuuksia aletaan toteuttaa koko ryhmän voimin.
Projektipäällikön tehtävä on jaettu siten, että jokainen ryhmän jäsen saa toimia tehtävässä hieman yli kolme viikkoa. Projektipäällikkö on selvillä meneillään olevista ja tulevista tehtävistä, mahdollisista ongelmista ja projektin yleiskuvasta. Projektipäällikkö suunnittelee työnjaon ja valvoo töiden edistymistä sekä tarvittaessa tekee uudelleenjärjestelyitä. Hänen vastuullaan on myös asioista tiedottaminen niin, että kaikki ovat ajan tasalla. Tehtävän vaihtoajankohdat käyvät ilmi liitteenä olevasta kaaviosta. Lisäksi projektipäällikön vaihtumisesta tiedotetaan projektin sähköpostilistan kautta.
7. Projektin aikataulu
Luvussa määritellään projektin aikataulu, johon on merkitty eri toteutusvaiheille varattu aika ja vastaavat tarkastuspistepäivämäärät. Projektin aikataulu tehtäviksi jaettuna on esitetty liitteenä olevassa janakaaviossa. 
Projektin tarkastuspisteet ovat seuraavat:
31.1.2003 Projektin aloitusvaihe alkaa:
•	Projekti aloitetaan sovellusprojektien aloitusluennolla.
•	Hahmotellaan projektin toteutusta yleisellä tasolla.
•	Tutustutaan projektiin ja toteutusratkaisuihin.
•	Tutustutaan edellisten projektien tuotoksiin.
4.2.2003 Aloitusvaihe päättyy:
•	Alustava kuva projektista on saatu.
4.2.2003 Tiedonkeruu- ja perehtymisvaihe alkaa:
•	Kerätään tietoa.
•	Tutustutaan aihepiiriin.
•	Valitaan työkalut.
•	Haastatellaan sovelluksen tulevia käyttäjiä.
•	Tutustutaan muihin vastaaviin sovelluksiin.
27.2.2003 Tiedonkeruu- ja perehtymisvaihe päättyy, vaatimusmäärittely alkaa
•	Projektin tavoitteet ja vaatimukset ovat selkiintyneet.
•	Tutustutaan Kotka-tietokantaan ja Korppi-järjestelmän toteutustekniikkaan.
•	Tutustutaan ohjelmistotyökaluihin.
•	Laaditaan projektisopimus.
•	Projektisuunnitelman ja Vaatimusmäärittelyn laatiminen aloitetaan.
•	Valmistellaan ohjelmoinnin aloittamista.
13.3.2003 Vaatimusmäärittelyvaiheen tarkastuspiste, toteutusvaiheen aloitus:
•	Projektisopimus on allekirjoitettu.
•	Projektisuunnitelma on laadittu.
•	Sovellussuunnitelman laatiminen on aloitettu.
•	Käyttöliittymädemon laatiminen on aloitettu.
•	Tilakaavio/sivustokartta on laadittu.
•	Ryhmän tietokoneilla on tarvittavat ohjelmistot käyttökunnossa.
•	Aloitetaan ohjelmointi.
•	Tarkennetaan ryhmän jäsenten vastuualueita.
27.3.2003 Vaatimusmäärittelyvaihe loppuu
•	Projektisuunnitelma on hyväksytty.
•	Vaatimusmäärittely on hyväksytty.
•	Sovellussuunnitelma on laadittu.
4.4.2003 Toteutusvaiheen tarkistuspiste:
•	Sovellussuunnitelma hyväksytty.
•	Alustava prototyyppi (demo) on valmis.
10.4.2003 Kyselyiden luontityökalu valmis
17.4.2003 Vastausten kerääminen valmis
17.4.2003 Vastausten analysointi valmis
25.4.2003 Tulosten esittäminen valmis
25.4.2003 Toteutusvaihe päättyy, testausvaihe alkaa:
•	Järjestelmä on toiminnallisesti valmis.
•	Modulit testatataan erikseen.
•	Kaikki projektilaiset testaavat koko sovellusta.
•	Tilaajan edustajat ja ohjaajat testaavat sovellusta.
•	Loppuraporttien laatiminen aloitettu.
9.5.2003 Testausvaihe päättyy:
•	Sovellus on saatu projektin osalta päätökseen.
16.5.2003 Projekti päättyy:
•	Dokumentointi viimeistelty.
•	Sovellus dokumentteineen on luovutettu tilaajalle.
29.5.2003 Ehdoton projektin päättymispäivä
8. Riskien arviointi ja hallinta
Luvussa kuvataan projektin toteutukseen liittyvät riskit ja niiden hallintakeinot.
8.1 Eriävät näkemykset toteutettavasta järjestelmästä
Mahdolliset tilaajan edustajien, ohjaajien ja projektin jäsenten eriävät näkemykset toteutettavasta järjestelmästä tuovat mukanaan omat riskinsä. Aikataulun tiukkuudesta ja työmäärän rajallisuudesta johtuen kaikkien ideoita ja vaatimuksia ei pystytä toteuttamaan tämän projektin puitteissa.
Riittävän tarkka vaatimusten rajaus suunnitteluvaiheessa on edellytys sille, että luvatut ominaisuudet pystytään myös toteuttamaan. Syvällinen aiheeseen perehtyminen mahdollistaa järjestelmän suunnittelun sellaiseksi, että mahdolliset jatkokehittäjät saavat lisättyä ominaisuuksia kohtuullisella vaivalla. 
8.2 Yhtenäisyys olemassaolevan järjestelmän kanssa
Kottarainen-sovellus tulee toimimaan osana Korppi-järjestelmää kanssa. Tähän liittyen joitakin asioita ei ehkä voida toteuttaa täysin halutulla tavalla, vaan toteutuksessa on otettava huomioon yhtenäisyys olemassa olevan järjestelmän kanssa. 
Sovelluksen tulee toimia myös siten, ettei se tarvitse koko Korppi-järjestelmää tuekseen, vaan ainoastaan joitakin kriittisiä osia. Ensi vaiheessa projektin tarkoitus on kuitenkin saada Korppi-järjestelmän yhteyteen toimiva sovellus. Vasta sen jälkeen aikataulun puitteissa tehdään tarpeelliset toimenpiteet Kottarainen-osion irrottamiseksi Korppi-järjestelmästä. Käytännössä tämä jäänee kuitenkin Kottarainen-projektin ulkopuolelle.
8.3 Ohjelmointi
Lähes kaikki sovelluskehityksessä käytettävät ohjelmistot ovat ainakin osalle projektilaisista aivan uusia ja outoja. Tämä hidastaa kehitystyötä alkuvaiheessa, kun suuri osa ajasta menee aihealueen lisäksi myös työkaluihin ja -tapoihin perehtymiseen. 
Kaikilla on kuitenkin ohjelmointikokemusta useamman kurssin verran sekä yhdellä jopa vastaavan kaltaista työkokemusta,  joten tutustumisvaiheen jälkeen kehittämisen pitäisi sujua hyvin. Lisäksi työkalujen ja -tapojen omaksumista pyritään nopeuttamaan yhteisillä perehdyttämistilaisuuksilla.
8.4 Muut riskit
Muita uhkia projektille ovat jäsenten sairastuminen, ryhmän sisäiset suhteet, ryhmän suhteet tilaajiin ja ohjaajiin sekä muut menot. 
Sovellusprojekti vaatii paljon aikaa. Siitä saatavat opintoviikot eivät kuitenkaan läheskään riitä opintojen etenemiseksi normaalissa tahdissa, vaan projektiryhmän jäsenten on käytävä muitakin kursseja samanaikaisesti. Muiden opintojen lisäksi ryhmän jäsenillä saattaa olla aikaa vieviä harrastuksia. Esimerkiksi Lintunen on suunnistusharrastuksensa vuoksi huhtikuussa kahdeksan päivää erilaisilla leireillä tai kilpailuissa. 
Sairastuminen kriittisellä hetkellä voi lisätä muiden työtaakkaa huomattavasti ja saattaa viivästyttää projektia. Ihmissuhteiden merkitys on luonnollisesti suuri, koska ryhmän jäsenten on pystyttävä toimimaan intensiivisesti tiiminä ja voitava luottaa toisiinsa sovittujen tehtävien suhteen. 
Ohjelmointivaiheeseen on päästävä mahdollisimman pian, jotta saadaan aikaa testausvaiheelle. Riittävällä testaamisella saadaan karsittua järjestelmän ongelmat pois ennen sen luovuttamista tilaajille.
Eräs riski on odottamattomat ongelmat. Sellaisten sattuessa toimitaan tilanteen edellyttämällä tavalla.
Muita riskejä pyritään minimoimaan siten, että tehtävien jaossa otetaan huomioon kunkin sen hetken henkilökohtaiset menot. Ryhmän jäsenet ovat koko ajan perillä myös siitä, mitä muut tekevät. Näin projektipäällikkö pystyy tarpeen vaatiessa jakamaan tehtäviä uudelleen, jos jokin tehtävä vie odotettua kauemmin aikaa tai jos jollekin ryhmän jäsenelle tulee yllättäviä menoja. 
Aikataulun pettäessä sovelluksen toteutettavista ominaisuuksista neuvotellaan tilaajien ja ohjaajien kanssa. Jos sovellus ei ole luovutuskunnossa 16.5. mennessä ja ryhmän jäsenten työtunnit eivät ylitä 320:n rajaa, voidaan sovelluksen toteutusta jatkaa enintään 29.5. saakka.
9. Dokumentointi- ja kokouskäytännöt
Luvussa kuvataan laadittavat dokumentit, dokumentointiin käytettävät työkalut sekä dokumenttien ja lähdekoodin ulkoasuun liittyviä seikkoja ja kokouskäytännöt.
9.1 Dokumentointikäytännöt
Tiina Pöyhönen koordinoi dokumentointia Kottarainen-projektissa. Teemu Vähä-Ruka on suunnitellut Word-mallipohjat, joiden pohjalta uudet dokumentit laaditaan. Käytetty tiedostomuoto on RTF (rich text format). Projektin alkuvaiheessa dokumentointikäytäntöä ei ollut lyöty lukkoon, joten myöhemmin on jouduttu käyttämään aikaa dokumenttien yhdenmukaistamiseen. RTF-muotoiset dokumentit muutetaan HTML-muotoon rtf2html-nimisellä shareware-ohjelmalla. 
Pöytäkirjojen laatiminen hoidetaan siten, että sihteeri kirjoittaa tarkat muistiinpanot ja laatii niiden pohjalta pöytäkirjan. Tässä vaiheessa hän voi tarvittaessa kysyä muilta projektiryhmän jäseniltä tarkennusta asioihin, jotka ovat jääneet epäselviksi. Kun tämä ensimmäinen versio on saatu valmiiksi, se annetaan seuraavan viikon sihteerivuorossa olevalle henkilölle tarkastettavaksi. Hän käy sen tarkasti läpi ja korjaa huomaamansa virheet sekä täsmentää tarvittaessa joitakin kohtia. Tämän jälkeen pöytäkirja lähetetään projektin sähköpostilistalle ja muutetaan HTML-muotoon ja laitetaan myös WWW-sivuille nähtäväksi. 
Muut dokumentit, kuten haastatteluraportit, projekti-, sovellus- ja testaussuunnitelmat sekä loppuraportit, laaditaan yhteistyönä. Kaikki dokumentit kerätään projektikansioon ja projektin WWW-sivuille nähtäviksi. 
9.2 Lähdekoodien kommentointi ja muuttujien nimeäminen
Lähdekoodin kommentoinnissa noudatetaan edeltävien projektin (katso luku 3.2) kanssa yhtenäistä kommentointityyliä. Jokaisen tiedoston alussa on tiedoston sisältöä kuvaava kommenttilohko. Lähdekoodin muotoilussa noudatetaan yhtenäistä käytäntöä. Ennen jokaisen funktion alkua kuvataan ko. funktion tehtävä ja toimintatapa. Lisäksi hankalasti ymmärrettäviin kohtiin lisätään selventäviä kommentteja.
Jatkokehityksen helpottamiseksi lähdekoodi ja kommentit kirjoitetaan englanniksi, vaikka muu dokumentointi onkin suomenkielistä. Luokan nimet kirjoitetaan isolla alkukirjaimella, metodien ja funktioiden nimet pienellä alkukirjaimella samoin kuin olioiden ja muuttujienkin, esim. class Survey, getQuestion(), String firstName, Survey surv.
Kommentointikäytännöt kuvataan tarkemmin Sovellussuunnitelmassa.
9.3 Kokouskäytännöt
Kokouskäytännön mukaisesti puheenjohtajan ja sihteerin tehtävät kiertävät ryhmän sisällä. Pöytäkirjan laatiminen ja tarkkojen muistiinpanojen tekeminen on sihteerin vastuulla. Puheenjohtajan tulee viedä kokous jouhevasti ja esityslistan mukaisessa järjestyksessä läpi. 
Kokouksen alussa esitetään ryhmän jäsenten tuntikirjat tarkistettaviksi. Sen jälkeen hyväksytään edellisen palaverin pöytäkirja. Tähän voidaan vaatia muutoksia, jos on tarvetta. Seuraavaksi käydään läpi edellisen pöytäkirjan tehtävälista ja saatetaan muut ajan tasalle omien tehtävien meneillään olevasta vaiheesta. Tämän jälkeen käydään läpi asiat esityslistan mukaisessa järjestyksessä ja päätetään kokous.
10. Yhteenveto
Projektiryhmä toteuttaa WWW-pohjaisen kyselyjen laatimis-, hallinta- ja analysointisovelluksen Jyväskylän yliopiston käyttöön. Sovelluksen osia ovat kyselyiden luominen WWW-ympäristöön, vastausten hallinta sekä tulosten muodostaminen ja esittäminen.
Projektin läpivienti on vaativaa työtä varsinkin, kun useammalla projektin jäsenistä ei ole kokemusta suurten järjestelmien kehittämisestä. Projektiryhmä tekee parhaansa ja uskoo pääsevänsä hyvään lopputulokseen. Projektin jälkeen kaikki jäsenet ovat oppineet ryhmätyöskentelyä, projektin läpivientiä ja useiden uusien työkalujen käyttöä. 

Lähteet
[1] Hillebrand Minna, Silván Markus, Vanhanen Antti ja Ylitalo Marko, ”Koppelo-projektin projektikansio”, Jyväskylän yliopisto, tietotekniikan laitos, 2002.
[2] Jaakkola Mia, Juutinen Sanna, Lupari Matti ja Nieminen Mikko, ”Kolibri-projektin projektikansio”, Jyväskylän yliopisto, tietotekniikan laitos, 2001.
[3] Lesonen Minna, Pekkanen Hannu, Tawast Tuukka ja Uuksulainen Heikki, ”Korppi-projektin projektikansio”, Jyväskylän yliopisto, tietotekniikan laitos, 2001.
[4] Horppu Ismo, Mielityinen Markku ja Vire Markku, ”Kotka-projektin projektikansio”, Jyväskylän yliopisto, tietotekniikan laitos, 2000.
[5] Hilpinen Toni, Koivuniemi Marko, Mäkinen Jussi, Nurminen Miika, ”Kiuru-projektin projektikansio”, Jyväskylän yliopisto, tietotekniikan laitos 2002.
[6] Santanen Jukka-Pekka, ”Tietotekniikan Sovellusprojektien ohje”, Jyväskylän yliopisto, tietotekniikan laitos, 2002.
[7] Santanen Jukka-Pekka, ”Opinnäytteiden kirjoittaminen, lyhyt oppimäärä”, Jyväskylän yliopisto, tietotekniikan laitos, 2000.
[8] Antti Auerin, Eija Ihanaisen ja Jari Rantamäen toimittamat esimerkit heidän tarpeistaan kyselyn osalta.

Liite. Projektin aikataulusuunnitelma