Loppuraportti. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Samankaltaiset tiedostot
Loppuraportti. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Loppuraportti. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Loppuraportti. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

PS-vaiheen edistymisraportti Kuopio

Verkkopokerijärjestelmä. Loppuraportti Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

Playoff kokouspöytäkirja 4

Projektisuunnitelma. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma Labra

LOPPURAPORTTI Paperikonekilta Versio 1.0

Osallistuin luennoille, n=16

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Lohtu-projekti. Testaussuunnitelma

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

Yhteenvetodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Käyttöohje. Aija. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Automaattinen yksikkötestaus

Ylläpitodokumentti Mooan

58160 Ohjelmoinnin harjoitustyö

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Yhteenvetodokumentti. PLAYOFF Jari Anttila Sanna Fröblom Aarno Sandvik Tommi Paavilainen Miikka Kohijoki. Päivi Pääkkö, ohjaaja

Matematiikan oppifoorumi Projektisuunnitelma

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

MINNO Metropolia Loppukatselmus. Kotisatama Järjestelmät

Testaussuunnitelma. Ohjelmistotuotantoprojekti Nero. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Alkukartoitus Opiskeluvalmiudet

Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Sami Hirvonen. Ulkoasut Media Works sivustolle

Hän oli myös koulullamme muutaman sunnuntain ohjeistamassa meitä. Pyynnöstämme hän myös naksautti niskamme

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

ENE-C2001 Käytännön energiatekniikkaa ( )

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

SOVELLUSPROJEKTIN ARVIOINTILOMAKE

Asiakas ja tavoite. Tekninen toteutus

Projektisuunnitelma Nero-ryhmä

Lohtu-projekti. Testiraportti. Versiohistoria: syklin toteutuksen testit. 1. ajo Virve

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti

A4.1 Projektityö, 5 ov.

SALAKIRJOITUKSEN VAIKUTUS SUORITUSKYKYYN UBUNTU käyttöjärjestelmässä -projekti

TITANIC TEMPPU, vaan ei karille

Testaussuunnitelma. Opeapuri. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Käyttöohje. Versiohistoria: versio Mari Kommenttien perusteella korjattu versio

Toteutusvaihe T3 Digi-tv: Edistymisraportti

Ohjelmistotuotantoprojekti

Menetelmäraportti - Konfiguraationhallinta

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Test-Driven Development

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

Moniasiakkuus ja osallisuus palveluissa -seminaari Moniammatillinen yhteistyö ja asiakaskokemukset

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework

T Tietojenkäsittelyopin ohjelmatyö Hirviöryhmä loppukatselmointi. Hirviö. Projektikatselmointi

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testausraportti v.1.3

dokumentin aihe Dokumentti: Testausraportti_I1.doc Päiväys: Projekti : AgileElephant

Testaussuunnitelma. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

T Testiraportti - järjestelmätestaus

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

EDISTYMISRAPORTTI - PS Virtuaaliyhteisöjen muodostaminen Versio 1.0

Testaussuunnitelma. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Versio Päiväys Tekijä Kuvaus Tikkanen varsinainen versio

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

opiskelun suunnittelujärjestelmä, kurki ja ilmo käyttävät kaikki samaa tietokantaa, ja uusi järjestelmä tulee osaksi tätä.

LAATURAPORTTI Iteraatio 1

Projektinhallintaa paikkatiedon avulla

Kurssin tavoitteista uennot. 4.1 Projektityö, 5 ov. Esitietovaatimukset

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

SEPA päiväkirja. BetaTeam. Juho Mäkinen, 57796V, Jari Leppä, 42710V, Versio Pvm Tekijä Kuvaus

Oy Karltek Ltd internet-sivujen uusiminen. Eveliina Aaltonen

Newsletter Manager Extensions - Loppuraportin tiivistelmä

Loppuraportti. Kaapo - Kaavioiden piirto-ohjelma. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Test-Driven Development

TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

EDISTYMISRAPORTTI - T4 Virtuaaliyhteisöjen muodostaminen Versio 1.0

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

T Testiraportti - integraatiotestaus

UCOT-Sovellusprojekti. Testausraportti

17/20: Keittokirja IV

Ohjelmistotuotantoprojekti

Projektityö

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

Kysely lähetettiin Helmen kautta toukokuun lopussa 2018 Vastausaika kaksi viikkoa Vastauksia tuli 548 suomenkielistä ( peruskoululaisia n 4000) ja

VARHAISEN PUUTTUMISEN MERKIT KYSELYN TULOKSET MINNA IIVONEN SUSANNA VILAMAA HEIDI VIRTANEN NUVAV14S

oppilaan kiusaamista kotitehtävillä vai oppimisen työkalu?

Loppuraportti. Kohahdus. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Project group Tete Work-time Attendance Software

Toteutus. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Versiohistoria: Versio Päivämäärä Kuvaus Tekijä Virallinen versio Janne Piippo

S11-09 Control System for an. Autonomous Household Robot Platform

Määrittelydokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Tanja-kälidemo

Ohjelmiston toteutussuunnitelma

Transkriptio:

Loppuraportti Sahara-ryhmä Helsinki 2.9.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Sanna Keskioja Sampo Lehtinen Hanna Liedenpohja Seppo Syrjänen Asiakas Joni Salmi Johtoryhmä Juha Taina Kimmo Simola Kotisivu http://www.cs.helsinki.fi/group/sahara Versiohistoria Versio Päiväys Tehdyt muutokset 0.11 25.8.2005 Ensimmäinen parannettu versio./ss 0.3 31.8.2005 Sovelluksen kuvaukset alkavat valmistua. 0.4 31.8.2005 Lähes lopullinen (paitsi työlistat) 0.5 1.9.2005 Enemmän vaihdosta PHP-kieleen./SL 0.51 1.9.2005 Lisätty henkilökohtainen osa./sl 0.52 1.9.2005 Lisätty hlokoht osat Hannalle ja Sannalle./SL 0.53 1.9.2005 Sampon hlokoht osio valmis./sl 0.54 1.9.2005 Sampon hlokoht osio valmis + pieni lisäys/sl 0.6 1.9.2005 Sannan hlokoht osiot/sk 0.7 1.9.2005 Hannan osio valmis/hl 0.8 2.9.2005 Lisätty tuntipohjat ja Sepon tunnit/ss 0.91 2.9.2005 Sampon tunnit/sl 1.0 2.9.2005 Lopullinen versio ja tuntitaulukot/ss

Sisältö i 1 Johdanto 1 2 Sovellus 1 2.1 Sovelluksen synty.............................. 1 2.2 Sovelluksen kehittäminen.......................... 1 2.2.1 Tunnettujen vikojen lista...................... 1 2.2.2 Toiminnallisuus........................... 1 2.2.3 Käyttöliittymä........................... 2 2.2.4 Tietokanta.............................. 2 3 Projektityöskentely 2 4 Käytetyt työkalut 3 5 Henkilökohtaiset kokemukset 5 5.1 Sanna Keskioja............................... 5 5.1.1 Yli esteiden............................. 5 5.1.2 Ojasta allikkoon...?......................... 5 5.1.3 Sokea projektikin suunnan löytää................. 5 5.1.4 Lopussa kiitos... jne........................ 6 5.2 Sampo Lehtinen............................... 7 5.2.1 kurssin aluku............................ 7 5.2.2 jossittelua ryhmäkoon vaikutuksista................ 7 5.2.3 ohjelmiston tuottamisen sietämätön vaikeus............ 7 5.2.4 Mitä tapahtui, miksi. Opinko mitään................ 8 5.2.5 Lopuksi............................... 9 5.2.6 Mitä jatkossa............................ 9 5.2.7 Kiitokset.............................. 9 5.3 Hanna Liedenpohja............................. 10 5.3.1 Projektin kulusta.......................... 10 5.3.2 Kurssin järjestelyistä........................ 11 5.4 Seppo Syrjänen............................... 12 5.4.1 Omat kokemukset......................... 12

ii 5.4.2 Projektityön ongelmista...................... 12 6 Jälkisanat 14 7 Työtunnit 15

1 Johdanto 1 Tämä dokumentti kertoo Sahara-ohjelmistotuotantoprojektin (kesä 2005) keräämät kokemukset. Dokumentin alussa kuvataan Tanja-järjestelmän tunnetut viat ja tunnetut ominaisuudet, jotka olisi hyvä jatkossa korjata tai muuttaa paremmin toimiviksi. 2 Sovellus 2.1 Sovelluksen synty Tanja-sovellus syntyi varsin nopealla aikataululla lähes XP-hengessä pari- ja ryhmätyöskentelynä. Kun yhdellä tuli ongelmia, toiset pystyivät auttamaan. Olemme lopputulokseen tyytyväisiä seuraavassa luvussa esitettyjä suhteellisen triviaaleja parannusehdotuksia lukuunottamatta. Projektin loppuvaiheessa päätimme mielestämme viisaasti olla lisäämättä tai jopa korjaamatta alla mainittuja asioita, jotta saamme tärkeämmät asiat ajoissa hyvälle mallille. 2.2 Sovelluksen kehittäminen Yleisenä huomiona sovelluksen koodia ja rakennetta voisi refaktoroida siistimmäksi. Nykyiselläänkin se on kuitenkin varsin hyvin ylläpidettävää ja laajennettavaa. 2.2.1 Tunnettujen vikojen lista Kutsuja voi vaihtaa osallistujana olevan toisen kutsujan tietoja Järjestelmä käyttää yhtä käyttäjätaulua, jossa tietty sähköpostiosoite on vain yhden kerran. Tästä on se seuraus, että ryhmän kutsuja voi muuttaa osallistujana olevan sähköpostiosoitteen tietoja (nimet, sähköpostiosoite) silloinkin kun ko. osoite on myös kutsujana. Saman sähköpostiosoitteen esiintymistä eri rooleissa on selkeytettävä kun järjestelmää kehitetään hajautetun sopivuuksien syöttämisen suuntaan. 2.2.2 Toiminnallisuus Osallistujat itse antamaan sopivuutensa (ns. versio 2). aikataulu.php paremmin osaksi sovelluksen normaalilogiikkaa (toimintojen siirto yleiset.php-moduuliin). Nykytoteutuksella isot aikataulun laskentamoduulit ladataan mukaan vain tarvittaessa. Näin pienissä sovelluksissa tällaista asiaa ei kuitenkaan tarvitsisi optimoida näin pitkälle.

2 2.2.3 Käyttöliittymä Tarjottujen aikojen ja sopivuuksien muistaminen käyttöliittymässä niin, että niitä ei poisteta tietokannasta kun sivu luodaan. Nykyinen käytäntö estää hyödyllisten triggereiden toteuttamisen. Viikkojakson valinta (kuukausi)kalenterista. Hiukan intuitiivisempi aikataulujen muokkaus. JavaScriptillä voisi korostaa muokkauksen kannalta sopivia sarakkeita, kun hiiri tuodaan taulukon soluun. Osallistujaluetteloon merkintä, jos osallistujalle ei ole annettu sopivuuksia. Mahdollisuus merkata sopivuusnäytöllä kerralla kaikki tarjotut ajat tietyllä sopivuusarvolla. Tämä tukisi osallistujia, joilla esimerkiksi suurin osa ajoista sopii hyvin ja muutama huonosti. 2.2.4 Tietokanta Tietokantaan cascade-triggerit tietojen poistoon (sovellus vähän yksinkertaistuisi). Monipuolisemmat triggerit viimkaytto-kentän päivittämiseen, kunhan käyttöliittymä osaa asettaa tarjottuja aikoja ja sopivuuksia poistamatta niitä kaikkia aluksi. Vanhojen tietojen poiston parempi ohjeistaminen/automatisointi. Tähän on prototyökalu asennus/poista-vanhentuneet.sh, josta voisi muokata tarvittavat SQL-lauseet ajettavaksi esim. silloin kun käyttäjä loggaa ulos. aikataulut.php:n funktiossa varaaaika() ajetaan konepellin alta ($tk->conn->exec()) SQL-lause, jolla poistetaan osallistujan edelliset varaukset annetut-taulukossa. Asia olisi kauniimpi tehdä hakemalla annetut-taulu sopimuksen mukaan ja siivota kohdalle osuvat ko. käyttäjän varaukset. Toinen vaihtoehto on laajentaa tietokantataulujen apumoduulia sisältämään jotain vastaavaa. 3 Projektityöskentely Projektiryhmä Sahara koottiin Ohjelmistotuotantoprojekti -kurssia kesäksi 2005 suorittamaan ilmoittautuneista opiskelijoista. Emme tiedä, millä perustein kurssille osallistujat eri ryhmiin sijoitettiin. Tässä sijoittelussa Sahara-ryhmään osui hieman vanhempaa ja työelämää nähnyttä porukkaa. Projektityöskentely oli mukavaa ja sujui hyvin, vaikka matkalle joitain mutkia mahtuikin. Ryhmässä oli alun perin viisi jäsentä, mutta yksi joutui valitettavasti keskeyttämään jo varsin aikaisessa vaiheessa. Neljän hengen ryhmä tuntui hieman pieneltä tämän kokoisen projektin läpi saattamiseen. Projektiryhmän pienuus ei olisi ehkä haitannut, mikäli alusta

lähtien tavoitteet olisi asetettu vähemmän kunnianhimoisesti. Suoriutumista eivät myöskään helpottaneet projektipäällikköä kesällä vaivanneet asennevammat. Kaiken kaikkiaan lähtökohdat huomioiden työskentely sujui hyvin. Ryhmän kesken päätettiin pitää kaksi kokousta viikossa. Maanantain kokouksessa tarkasteltiin rutiinin omaisesti riskien toteutumista ja listattiin viisi uhkaavinta riskiä sekä tarkasteltiin projektin etenemistä suhteessa löysästi suunniteltuun, lähinnä mielissä siintäneeseen aikatauluun. Käyttöliittymän suunnittelu jäi pääasiassa Hannan ja Sannan harteille, Seppo vastasi tietokannan käytöstä ja sisällöstä sekä aikataulujen laskentapuolesta. Hanna toteutti alkuperäisen PHP-kielellä tehdyn sovelluksen sivustorungon sekä tapahtumakäsittelijät, joihin varsinainen toiminnallisuus sitten kirjoitettiin. Vaikka prosessimallina oli vesiputous, muodostui projektin toteutus lähinnä keveitä malleja muistuttavaksi. Johtuen toteutuskielestä ei perinteistä yksikkötestausta toteutettu täydessä laajuudessaan. Toisaalta, koska toteutusta ei lähdetty tekemään yksittäisistä osista, jotka myöhemmin integroitaisiin, toteutettava sovellus oli käytännössä jatkuvasti toimintakuntoinen ja suhteellisen virheetön jo toteutettujen ominaisuuksien ja toiminnallisuuksien osalta. Koodia pidettiin kaikkien yhteisenä vaikka yksittäisen tiedoston tai toiminnallisuuden parissa työskentelikin kerrallaan yleensä vain yksi projektiryhmän jäsen. Toteutettavan sovelluksen alkuperäinen määrittely olisi mahdollistanut kätevästi myös iteratiivisen kahdessa osassa sovelluksen toteuttamiseen tähtäävän mallin käyttämisen. 3 4 Käytetyt työkalut Saimme tarvittavat työkalut suhteellisen helposti käyttöömme, joskus vimmatulla googlettamisella, joskus suoraan laitoksen ohjeita seuraten. LaTeXin kanssa tappelimme säännöllisesti, mutta olimme siihen kuitenkin koko ajan tyytyväisiä. Kuvat olivat kyllä painajainen. OpenOfficen EPS-vienti tuotti puutteellisia kuvia (fontit vinossa, viivoja tai elementtejä puuttui). Useiden tuntien taistelun jälkeen kuvat tehtiin lopulta sivun http://vv.cs.byu.edu/~jones/blog/archives/ 2003/09/importing\_power.html ohjeiden mukaan asentamalla Windows-koneeseen tiedostoon tulostava virtuaalinen PS-tulostin, jonka asetuksista valittiin tulostusmuodoksi EPS. Tämän jälkeen kuvat olivat kunnossa. Ratkaisua voi (varauksin) suositella muillekin. Olisimme kaivannneet käyttöön LaTeX-paketteja, joilla kuvat olisivat voineet olla PDF-muodossa, mutta ohtu- ja tiki-pohjat käyttivät vain EPS-kykyisiä työkaluja. Ehkä temppu ei olisi ollut vaikea, mutta LaTeX-dokumetteja työstettiin myös erilaisilla Perl-scripteillä: esim. vaatimuslistoja pidettiin omissa määrämuotoisissa tiedostoissaan, joista scriptillä tehtiin halutut tex-tiedostot Makefileen avulla. Makefileen lisättiin myös toiminto make www, joka julkaisi dokumentin päiväkohtaisen vedoksen sekä versionumeron avulla nimetyn vedoksen pdf-muodossa projektin kotisivulla. Tällä tavalla dokumentteja pystyi työstämään pelkän ssh-yhteyden ja www-selaimen varassa (ilman X- ympäristöä). Käytetty Makefile on mukana dokumenttihakemistossa.

CVS osoittautui pidetyksi ja hyödylliseksi tavaksi tehdä asioita ryhmätyönä. Sen aikakoneominaisuuksia päästiin käyttämäänkin kerran, kun viimeiset koodimuutokset rikkoivat liian monta vanhaa asiaa ja testausryhmä halusi alleen toimivan sovelluksen. Projektin alkuvaiheissa graafisen Java-sovelluksen tekoon suunniteltiin Eclipsen Visual Editor -kehitintä, mutta se oli niin iso möhkäle, että protosovellukset koodatiin käsin. UML-kaavioita tehtiin Poseidon-ohjelmalla. Kuvat tehtiin PowerPointilla tai OpenOfficella. PHP-kielen rajoittuneisuus näkyi hyvin jo näinkin pienessä projektissa. Olisimme alkuvaiheessa kaivanneet tulkilta tiukempia varoituksia ja virheilmoituksia (jotka sitten kyllä saimme esille). Ripeästä alusta olisi kannattanut laittaa päivä hiukan parempien debug- ja lokitustyökalujen tekemiseen. Kokonaisuutena koodaus pysyi kuitenkin hyvin käsissä. Tietokannan selailuun ja muokkaukseen käytimme Sepon tekemää dbtesti.php-työkalua (ei ole Tanjan jakelussa mukana), jolla kannan tauluja pystyi muokkaamaan WWW-selaimella. Asian olisi voinut toki hoitaa psql-työkalullakin. Ryhmän kokemukset yksikkötestauksesta ja siihen tehtyjen testaustyökalujen käytöstä olivat varsin pienet. Kokemattomuus yksikkötestien tekemisestä ja testausluennon myöhäinen ajankohta luultavasti aiheuttivat sen, että koodista tuli käytännössä vaikeasti testattavaa eikä yksikkötestien tekeminen jälkikäteen onnistunut. PHP-kielellä toteutettujen ohjelmapalasten yksikkötestaukseen löytyi työkalu, joka olisi sinäällän kelvannut käytettäväksi, mikäli koodi olisi muutamaa poikkeusta lukuunottamatta soveltunut näin testattavaksi. Nyt koodissa on muutama yksikkötestattavaksi soveltuva poikkeus, jotka vahvistavat säännön yksikkötestaukseen sopimattomuudesta. Toteutusympäristön vaihtaminen graafisesta oikeasta itsenäisestä sovelluksesta www-ympäristössä toimivaan ja samalla toteutuskielen vaihtaminen Javasta PHP-kieleen tapahtui vasta niinkin myöhään kuin 2.8. Toteutus käynnistyi tämän jälkeen välittömästi. Käyttöliittymäsuunnitelma toimi hyvin näistä toteutukseen liittyvistä vaihdoksista huolimatta. Toisaalta, miksi se ei olisi toiminut, olihan se tehty sinäällään ympäristöstä riippumattomaksi. Alkuun näytti, että käyttöliittymään muodostuisi pienehköjä synkronointiongelmia, mutta näistä hankkiuduttiin lopulta eroon laittamalla kaikki tiedot yhteen HTML-lomakkeeseen ja kertomalla piilotetuissa parametreissa, mille kaikille tapahtumakäsittelijöille kaikki parametrit oli välitettävä tallennusta varten. Toteutusta olisi helpottanut koodistandardin suunnittelu ja käyttäminen. Ilman tätä ohjeistusta jokainen kirjoitti koodinsa miten kirjoitti. Tästä johtuen tiedostot ovat sisennetty miten mistäkin kohdasta, muuttujien nimentä on sitä sun tätä, eikä toteutuskieli ainakaan helpota näitä ongelmia kokemattomien käyttäjien käsissä. Java-kielisen toteutuksen kirjoittamiseen oli ajateltu käytettäväksi Eclipse-nimistä integroitua kehitysympäristöä. Vaihdettuamme PHP:hen, emme kuitenkaan nopeasti löytäneet korvaavaa tuotetta, joka olisi huolehtinut sisennyksistä, lohkojen aloittamisesta jne. automaattisesti puolestamme. 4

5 Henkilökohtaiset kokemukset 5 5.1 Sanna Keskioja 5.1.1 Yli esteiden Jotenkin koko aiemman opiskeluajan mielessäni oli siintänyt jonkin asteinen kauhukuva ohtu-projektista sinä kynnyksenä, jota en ikinä pysty ylittämään, ja johon nämä opinnot sitten kuitenkin lopuksi karahtavat... Tosiasiassa kurssin suorittaminen oli kaukana kehittämästäni kauhu-skenaariosta :) Kiitos siitä lankeaa mukavalle ja yhteistyökykyiselle ryhmällemme. Kurssin suorittaminen on ollut antoisaa ja opettavaista, vaikkakin välillä myös raskasta kun on pitänyt sovitella työhön ja projektiin käytettävää aikaa. Kun vapaapäiviä ei pariin viikkoon ollut lainkaan, niin alkoi jo tuntua... Projektin ohjeistuksessakin mainittu ehdotus täydellisen työrauhan järjestämisestä projektille on siis todettu validiksi, mutta ehkä käytännössä monelle hankalaksi toteuttaa. 5.1.2 Ojasta allikkoon...? Mutta palataanpas taas projektin alkuvaiheisiin... Meitä oli tosiaan ensimmäisessä palaverissa koolla neljä opiskelijaa (Sanna, Sampo, Hanna ja Raakel). Jo silloin meitä jännitti kuinkahan projektista voi suoritua neljän hengen voimin. Kaikki olivat varmasti tyytyväisiä kun Kimmo kertoi hyviä uutisia, että saisimme lisävahvistukseksi mukaan vielä Sepon. Viiden hengen ryhmässä emme kuitenkaan toimineet pitkään, sillä Raakel joutui valitettavasti keskeyttämään projektin. Siinä sitä taas oltiin neljän hengen voimin. 5.1.3 Sokea projektikin suunnan löytää Projektin alussa kiusana oli päämäärättömyys, kun ei kenelläkään ollut oikein kuvaa siitä, miten tällaisessa projektissa oikeasti toimitaan. Itse olin juuri käynyt vaatimusmäärittelykurssin ja halusin päästä kokeilemaan käytännössä miten kurssilla opetetut asiat soveltuisivat käytäntöön. Myös käyttöliittymäkurssin opit odottivat käytännön kokeilua, joten olin varmasti äänekkäimmin viemässä projektia todella graafisen kälin suuntaan (Hupaisaa sinänsä, varsinkin kun minulla ei ollut aavistustakaan miten sellainen toteutettaisiin käytännössä - pienestä java nelilaskin-harjoituksen tekemisestä kun ei tässä ollut hirveästi apua...). Luottamukseni muuhun projektiryhmään oli kuitenkin suuri, enkä tässä joutunut muuttamaan mielipidettäni, sillä Hanna, Seppo ja Sampo toteuttivatkin todella hienon ohjelmiston. Tässä asiassa näkyikin erityisesti ryhmän pienuuden hyvät ja huonot puolet. Toisaalta kolmikko pystyi hyvinkin keveästi tekemään ohjelmointityötä (vesiputous oli kyllä todella kaukana tästä projektityöstä...). Kokemattomimpana ja ohjelmointitaidoiltani heikoimpana olisin tarvinnut apua alkuun pääsemiseksi, mutta nyt kukaan ei ehtinyt auttaa. Minulta jäi siis kokematta tämän projektin osalta koodin tuottamisen riemu, mutta sen sijaan

6 ahkeroin käyttöliittymäsuunnitelman ja dokumenttien parissa. 5.1.4 Lopussa kiitos... jne Kaiken kaikkiaan projekti oli erinomainen kokemus ja hyvän ryhmän ansiosta tästä tuli ehkä mukavin ja varmasti ikimuistoisin kokemus tältä laitokselta. Projektin ohjauksen puolesta mielestäni kehittämisen varaa on erityisesti tuotettavien dokumenttien ohjeistamisessa. Ymmärrän hyvin, että...tämä on yliopisto ja opiskelijoiden pitää pystyä tuottamaan asioita itse... MUTTA: tämän projektin työmäärä on mitoitettu suuremmille ryhmille. Neljän hengen voimin on suorastaan turhauttavaa kahlata läpi Google-suota etsimässä juuri tämän laajuiselle projektille sopivaa formaattia. Kun laitoksella kerran on alan tutkimusta, niin eikö niitä tuotoksia voisi hyödyntää myös tällaisilla kursseilla? Kyllä ihan hyvin voisi olla joku konventio esim. siitä millä termeillä asioista puhutaan. Esimerkiksi vaatimusdokumenttia laatiessa (kurssin käymisen jälkeenkin) oli ihmeissään kun alan kaksi oppi-kirjan kirjoittajaa (Sommerville/Bray) puhuvat vaatimuksista eri termeillä ja luokittelevatkin niitä eri tavoin. Siinä on pieni ohtu-projektilainen ihmeissään kun yrittää löytää oikeaa ilmaisua. Ei siinä mitään, mutta kun aika kaiken muun tekemisen yhteydessä ei riitä tällaiseen säätämiseen... Onko siinä sitten järkeä, että yritetään tehdä tosi hyvää, mutta joudutaan kuitenkin loppupeleissä oikomaan...???? No, tätä pohdiskelua voisi jatkaa loputtomiin, mutta päätoiveeni tulevia kurssilaisia ajatellen on se, että jonkinlaista sapluunaa voisi tarjota. Itse tutustuin testauksen kohdalla ko.ieee standardiin (eli kyllä niitä sapluunoita löytyy sekä rahalla että ilmaiseksi), mutta ihan oikeaan bisnes-maailmaan kehitetyt mallit kun ovat vähän turhan työläitä suoraan siirrettäväksi ohtu-projektin käyttöön... Tästä jupinasta huolimatta voin sanoa olevani oikein tyytyväinen, että laitos tarjoaa mahdollisuuden tällaiseen projektityön harjoitteluun. Uskon, että tästä kokemuksesta on varmasti hyötyä tulevaisuudessa. Ainakin sen suhteen, että gradu-aiheen valinnan tunnelin päässä on syttynyt valo ;)

7 5.2 Sampo Lehtinen VAROITUS: Seuraava teksti on suht summittaista ajatuksen virtaa. Siitä ei välttämättä muodostu lukijalle järjellistä kokonaisuutta, mutta sen kirjoittaminen puhdisti mukavasti mieltä. Vuodatus noudattelee jotakinkin tuntemuksia projektin ajalta hieman aikajärjestystä muistuttavana ajatuksen virtana. Otsikot on ympätty pötkönä kirjoitettuun tuubaan jälkikäteen. 5.2.1 kurssin aluku Halusin projektipäälliköksi. Jälkikäteen arvioituna ihan liiaksi. Mikäli projektia olisi toteutettu oikeina töinä oikeassa firmassa ja olisin ollut vastuussa ryhmän henkilöresurssoinnista, olisin antanut ensimmäisenä kenkää itselleni. Varsinkin, jos ryhmä olisi ollut suurempi, potkujen antaminen itselleni olisi ollut helpompaa. Olin yksinkertaisesti järjestänyt itselleni liiaksi tekemistä ehtiäkseni ja jaksaakseni hoitaa hommaa kunnolla. 5.2.2 jossittelua ryhmäkoon vaikutuksista Suurempi ryhmä on kuitenkin jossittelua. Voi olla, että projektia olisi viety eteenpäin toisella tavalla, mikäli ryhmä olisi ollut suurempi, voi olla, että oikea päivätyö ja ohjelmistotuotantoprojektin suorittaminen eivät olisi törmänneet niin pahasti. Koen henkilökohtaisesti suhteellisen pahaksi miinukseksi sen, että en saanut projektisuunnitelmaa valmiiksi ajallaan. Mikäli projektiryhmä olisi ollut suurempi, tästä olisi aiheutunut todella pahoja ongelmia. 5.2.3 ohjelmiston tuottamisen sietämätön vaikeus Ohjelmiston tuottaminen tuntui alkukesästä vaikealta, suorastaan mahdottomalta. Syksyä kohti helpotti, sillä sovin kahteen otteeseen päivätyöhön käytettävän ajan lyhentämisestä (kiitokset joustavuudesta Helsingin yliopiston opiskelijarekisterille). Pahimmillaan tilanne oli hieman ennen lomaa, lomani aikana ja kaksi loman jälkeistä viikkoa. Tällä ajanjaksolla en jaksanut, pystynyt tai yksinkertaisesti kyennyt tekemään projektille käytännössä katsoen tuntiakaan kokouksissa käymistä lukuunottamatta. Ajanjakson kahdella viimeisellä viikolla kokouksia ei järjestetty ja kaksi viikkoa tätä ennen olin niistä pois. Tässä vaiheessa myös tuntikirjanpito meni ketuiksi. Onnistuin hävittämään osan tunneista jonnekin. Onnistuin myös olemaan kirjaamatta tunteja kirjanpitojärjestelmään sekä tilanteen parannuttua olemaan kirjaamatta tunteja kunnolla ylös. Myös graafisen itsenäisen javasovelluksen suunnittelu ja varsinkin teknisen puolen miettiminen tuntui raskaalta taakalta. Kellään ryhmästä ei ollut vähäistäkään kokemusta graafisten käyttöliittymien ohjelmoinnista. Graafisen käyttöliittymän toteutus olisi hyvinkin saattanut onnistua, jos aikaa olisi ollut rutkasti enemmän tai ryhmässä edes yksi, jolla olisi ollut kokemusta riittävästi auttaakseen muut alkuun. Uuden, tämän kaltaisen asian oppiminen ei sinäällään todennäköisesti ole vaikeaa, onhan graafisen käyttöliittymän ohjel-

mointia luonnehdittu helpoksi. Käytännössä pitäisi kuitenkin osata perusteet voidakseen oppia itse lisää. Kynnys tyhjästä aloittaessa on liian suuri. Eikä asiaa opeteta laitoksella. Noh sama suutarin lapsilla ei ole varpaita ongelma näkyy tietokantasovellus-kurssin kohdalla. Kahden tunnin tekniikkaluento ei riitä. Ohjelmoinnin harjoitustyössä vaaditaan testaukselta lausekattavuutta, mutta ei kerrota koodin instrumentoinnista tai muustakaan, millä kattavuutta voisi mitata. Liioin testausta ei ole opetettu juuri yhtään harjoitustyön suorittamiseen mennessä. Koska laitoksella vaaditaan ties minkä asian osaamista opettamatta, on tietorakenteiden harjoitustyö näistä helpoin. Siinä ei tarvitse osata mitään, minkä perusteita ei olisi opetettu. Tietokannoista kyllä opetetaan perusteet, mutta ei perusteita tietokantasovelluksen tekemisen välineistä. 8 5.2.4 Mitä tapahtui, miksi. Opinko mitään Kysymys siitä, miksi näin kävi, on suurempi kuin kysymys miksi näin kävi ohjelmistotuotantoprojektin kohdalla. Projektin suorittaminen on ollut hyödyllistä. Suurimmat hyödyt tästä tuntuvat tällä hetkellä olevan kolme yksittäistä seikkaa. Opin, että jonkinmoista koodia pystyy sisuksistaan oksentamaan myös välineillä, joita ei tunne, ja että tämän kaltainen tekeminen opettaa välineen (tässä tapauksessa PHP-kielen) käyttöä suhteellisen nopeasti. Mielestäni parhaiten tämä tulee esin verratessa ensimmäistä projektiin tekemääni osaa viimeiseen. lukujarjestys.php on se ensimmäinen ja sahkoposti.php on se viimeinen. Toki sähköpostista huolehtiva osuus on kaiken kaikkiaan yksinkertaisempi, mutta mielestäni myös laatu on parantunut eikä vain tehtävän yksinkertaistumisen vuoksi. Toteutusympäristön vaihdos olisi pitänyt tehdä aiemmin, mutta ryhmä uskoi liiaksi mahdollisuuksiinsa selvitä. Projektin puitteissa, vaikka kehitysmalli pitkälti jotain keveää prosessia muistuttikin, ei valitettavasti ollut aikaa refaktoroida tuotoksiaan. Tuntuu siltä, että tässä vaiheessa lukujarjestys.php ei ehkä syntyisi sinäällään helpommin, mutta siitä tulisi kauniimpi. Muuttujia ei väliteltäisi miten sattuu jne. Yleisemmällä tasolla tarkoitan tällä sitä, että saan aikaan asioita, jos ei muuten, niin väkisin yrittämällä. Toivon oppivani tästä olemaan antamatta periksi asioiden tuntuessa vaikealta. En tosin tiedä, miten olisi käynyt, mikäli hommaa olisi yritetty loppuun asti väkertää Javalla itsenäiseksi sovellukseksi. Javalla sinäällään olisi koodista todennäköisesti tullut laadukkaampaa, mutta muu projektiryhmä valitsi kieleksi PHP:n projektipäälliköltä kysymättä. Tulipahan sitten opittua sekin kieli ja että sillä voi tehdä asioita myös kauniisti. Suurin osa PHP:llä toteutettuja juttuja lienee kuitenkin rumia, sillä kielellä saa aikaan asioita ymmärtämättä mitä oikeasti tekee. Tavoitteiden asettaminen. Asettamalla liian kovat tavoitteet ja liian paljon tekemistä kalenteriin, tulee varmistaneeksi, ettei ainakaan kaikkea ehdi tehdä laadukkasti.vaikka tekemistä olisi liiaksi, se helpottaa, kun järjestää mahdollisuuden keskit-

tyä kerrallaan yhteen asiaan. Tämä ei tällä kerralla projektin alkutaipaleella onnistunut. Kongnitiivinen dissonanssi sen suhteen, mitä pitäisi tehdä, vaikeutti asioihin keskittymistä ja paneutumista. Lisäksi aloittaminen tuntui vaikealta, kun taakkaa oli liiaksi. Kun tehtävät kilpailevat ajasta, seuraa helposti näivettyminen. Tässä olisi paikka sille kolmannelle, se ei tule mieleen tätä kirjoittaessa. Tuskin se lopullisesti on unohtunut, mutta jää dokumentoimatta. Miten mielstäni ohtuprojektin saisi suoritettua parhaiten. Otetaan kymmenen viikon jakso. Käytetään näistä viisi. Tutustutetaan ryhmä toisilleen ensimmäisen viikon iltoina, valitaan tehtävät ja päästetään heput kotiin kolmeksi viikoksi. Testausvastaava harsii tuona aikana testaussuunnitelmaa itseksiin, projektipäällikkö omaa suunnitelmaansa, koodista vastaava koodaustandardia jne. Tuotokset annetaan muille nähtäviksi. Kolmen viikon kuluttua projekti hoidetaan loppuun siten, että kaikki ovat paikalla 5/7 klo 8-16. Järjestelyn voisi kuvitella sopivan täysipäiväisesti töissä käyville. Näin ei tarvitsisi yrittää jakaa niukkaa resurssia ja jaksamista kahden, usein tärkeän asian, eli töiden ja ohtuprojektin välillä. 9 5.2.5 Lopuksi Lopuksi on vielä todettava, että näin pienellä ryhmällä tiimimuotoinen organisaatio ilman varsinaista projektipäällikön mandaattia olisi saattanut toimia paremmin. Pienellä ryhmällä projektisuunnitelmakin voisi olla tarpeeton. 5.2.6 Mitä jatkossa Palkitsen itseni tästä raatamisesta päivittämällä b-luokan ajokorttini ab-luokan ajokortiksi. 5.2.7 Kiitokset Haluan kiittää kaikkia projektiin osallistuneita. Tuntuu jopa vähän herkältä kirjoittaa näin; ihan kuin pitäisi Oscar-gaalan kiitospuhetta. Hyvää jatkoa kaikille.

10 5.3 Hanna Liedenpohja Olin etukäteen odottanut ohjelmistotuotantoprojekti-kurssia kovasti, koska halusin päästä kokeilemaan ohtu-kurssin oppeja käytännössä. Aluksi motivaatio ei kuitenkaan ollut kovin korkealla, kun ilmeni, etten muutaman viivästyneen suorituskirjauksen takia päässytkään mihinkään alun perin ilmoitetuista ryhmistä, vaan jouduin myöhemmin perustettuun lisäryhmään, jonka aihe vaikutti aika tyhjänpäiväiseltä. Lisäksi ryhmä oli pieni, vain 4 henkeä, joten parikoodaukselle yms. työskentelylle saattoi siinä vaiheessa heittää hyvästit. 5.3.1 Projektin kulusta Projekti lähti kuitenkin liikkeelle vaatimusmäärittelyn merkeissä. Sannan kanssa alettiin työstää käyttöliittymää käli-kursseilla opituilla menetelmillä aina paperiprotoista alkaen, mikä olikin yllättävän hauskaa hommaa. Samalla listattiin ja ryhmiteltiin vaatimuksia, vaikka välillä oltiin vähän pihalla, kun eri lähteistä tuli ristiriitaista tietoa oikeasta vaatimusten lajittelusta. Käliproton tekeminen kyllä ihmeesti auttoi vaatimusten löytämisessä, kun oli olemassa jotain konkreettista ja näkyvää, jota käydä asiakkaan kanssa läpi. Itseäni kyllä vähän häiritsi, kun käliprotoon suunniteltiin elementtejä, kuten hiirellä siirtelyä, joiden käytännön toteuttamisesta kellään ei ollut mitään tietoa. Mutta jotenkin siinä vaiheessa vielä luotti siihen, että asiat hoituvat, kun ei tiennyt tarkkaan toisten osaamisista. Suunnitteluvaiheessa aloin miettimään, miten sovelluksen voisi jakaa luokkiin ja millaisia rajapintoja niillä voisi olla. Tein myös suunnitelmaa graafisen kälin toteutuksesta, mutta en saanut siihen juurikaan apua muilta eivätkä omat taitoni riittäneet kovin pitkälle. Loppujen lopuksi meillä oli suunniteltuna systeemi, joka siirtää tietoa palvelimelta applettiin, tietokanta, sovelluksen perusluokkien rajapintamäärittelyt sekä jonkinlainen suunnitelma kälielementtien sijoittelusta, mutta se, miten nämä palaset yhdistetään, jäi hämärän peittoon. Toteutusvaiheen alkaessa ihmeteltiin viikon verran, miten tästä päästään oikein eteenpäin. Yritetäänkö tehdä Javalla jotain, mistä kellään ei ollut oikein mitään kokonaiskuvaa vai tehdäänkö web-käyttöliittymällä edes jonkinlainen ja jotenkin toimiva sovellus, jotta testausvaihe ei mene täysin ohi? Koska jäljellä oli vielä 5 viikkoa, päätimme vaihtaa toteutustekniikan php:hen, josta ryhmässä oli ennestään kokemusta. Tämä olikin oikea toimenpide, koska projektisuunnitelmankin riskianalyysiinkin oli kirjattu, että jos toteutus osoittautuu liian vaikeaksi, riskistä toivutaan vaihtamalla tekniikka helpompaan. Web-kälin toteutus lähti vauhdilla käyntiin, koska aiemman koodauskokemukseni pohjalta sain käyttöliittymän perusrungon parissa päivässä tehtyä. Tästä ryhmään tuli uutta intoa ja tilanne alkoi näyttää paljon valoisammalta. Koodaustyöt jakaantuivat kuin itsestään minun, Sepon ja Sampon välillä. Itse tein kälin perustoiminnallisuuksia ja tallennuksia, Seppo hoiti tietokantapuolen ja uurasti ihailtavasti algoritmin parissa ja Sampo teki mainion lukujärjestyskomponentin ja lukuisia javascriptejä. Parissa viikossa sovellus oli jo lähes toimintakelpoinen, mutta koko ajan löytyi lisää ideoita, mitä voisi vielä lisätä ja parannella. Muiden koodatessa Sanna alkoi jo valmistella testausta perehtymällä testauss-

tandardeihin. Testausvaiheessa meni taas vähän aikaa ihmetellessä, miten testausluennon antia voisi soveltaa juuri tämän sovelluksen testaukseen. Sovelsin sitten luennolla esiteltyjä laajennettuja käyttötapauksia käyttöliittymän syötteiden testaukseen, ja tämä tapa osoittautuikin aika toimivaksi, kun lisäksi testattiin vielä pidempiä käyttötapaussekvenssejä. Loppuvaiheen dokumenttien kirjoitus vei yllättävän paljon aikaa, mutta ryhmä osoitti huomattavaa venymistä ja yhteishenkeä ja saimme kuin saimmekin kaikki tehtyä. Viimeiset viikot todella kirkastivat tämän projektin plussan puolelle, vaikka välillä jäivät yöunetkin vähiin miettiessä, että kuinkahan tässä lopulta käy... Ryhmän yhteishenki pysyi kuitenkin hyvänä lähes koko ajan, huumoria riitti ja monet kerrat naurettiin vedet silmissä pullakahvien ääressä :) Kiitokset yhteistyöstä! 11 5.3.2 Kurssin järjestelyistä Kuten muutkin jo ovat omissa osuuksissaan ovat maininneet, olin vähän pettynyt ohjauksen vähäisyyteen tällä kurssilla. Kun on työelämässä nähnyt aika monenlaista projektityöskentelyä, niin odotin, että nyt pääsee kerrankin tekemään asiat kunnolla. Tuntui kuitenkin, ettei aiempien ryhmien kokemuksista saanut oikein mitään tietoa vaan kaiken joutui tekemään lähes tyhjästä. Esimerkiksi LaTex-muotoisten taulukkopohjien tekoon vaatimusten määrittelyä varten sai kulumaan aika paljon aikaa, mikä oli pois oleellisesta eli vaatimusten analysoinnista. Suunnittelun epäonnistuminen jäi vähän harmittamaan. Ehkä olisi auttanut, jos suunnittelustakin olisi testauksen tapaan järjestetty luento, jossa olisi kerrottu, miten java/phpsovelluksen rakenne kannattaa tehdä ja mitä suunnittelumalleja tms. on aiemmin menestyksekkäästi käytetty ohtu-projekteissa. Tästä olisi hyötyä varsinkin, jos ryhmästä ei kovin syvällistä teknistä tietämystä satu löytymään. Yhdistelmä LaTex ja CVS osoittautui oivaksi välineeksi tehdä dokumentteja yhteistyönä ja sitä voisi suositella alusta alkaen. Meiltä meni ihan turhaan varmaan kuukausi, ennen kuin päätös LaTexin käyttöönotosta tehtiin.

12 5.4 Seppo Syrjänen 5.4.1 Omat kokemukset Olin pois aivan ensimmäisestä tapaamisesta, koska minut siirrettiin rinnakkaisryhmästä (Aija) Saharaan. Pääsin kuitenkin hyvin porukkaan ja projektiin mukaan ja huomasin olevani tekemässä mukavassa seurassa mielenkiintoista ohjelmistoa. Ryhmän pienennyttyä porukkamme alkoi olla tosin aika tukalan pieni. Halusin oppia projektin aikana mahdollisimman paljon kaikenlaista hyödyllistä tai ainakin mielenkiintoista (Javan käyttö suuremmissa sovelluksissa, graafisten käyttöliittymien teko Javalla, Eclipse, CVS, LaTEX jne.) Etenkin kiinnostus graafisen käyttöliittymien tekoon sai minut ajamaan projektia kyseiseen suuntaan, näin jälkiviisaasti, turhan pitkään ja turhan kunnianhimoisesti. Onneksi Hanna nosti kissan pöydälle ja päädyimme tekemään Tanjaa PHP-versiona. Tarkoitushan oli oppia ohjelmistotuotantoprojektityöskentelyä eikä hajautettujen XML-RPC-sovellusten ohjelmointia... Elokuun koodausviikot olivat projektin kannalta iloista ja onnellista aikaa: vihdoinkin pääsimme tekemään jotain "oikeaa"ja ohjelmistomme eteni huimaa vauhtia. Kahdessa viikossa suurin osa perustyöstä oli tehty ja jäljellä oli "vain"toinen mokoma käytettävyyden parantamista ja testausta. Pari- ja ryhmätyöskentely kakkoskerroksen käytävämikroilla oli hyvin toimiva tapa saada asioita eteenpäin. Henkilökohtaisesti hauskinta oli XML-RPC-protojen teko, Munkres-Kuhn-algoritmin porttaus Javasta PHP:ksi sekä PostgreSQL:n hienompien ominaisuuksien (triggerit jne.) opettelu. Myös kaikenlaisten apuvälineiden (perl-scriptit LaTeX-dokumenttien teossa, tietokannan selailutyökalu) virittäminen olivat hommia, joissa tunsi todella auttavansa projektia eteenpäin isolla vaihteella. Projektissa työskentelemisen mielekkyys aaltoili etenemisen tahtiin: suunnittelun takkuillessa pahasti heinäkuussa selvän etenemissuunnan puuttuessa oli motivaatiokin pohjalukemissa. Onneksi muu ryhmä osasi kammeta mukaan. Lopettaminen ei sinänsä olisi tullut kuuloonkaan; projektille oli tullut uhrattua jo niin monta hienoa kesäpäivää. Projektiin käytetyistä runsaista tunneista otan omaan piikkiini aika ison osan: tutkin ja selvittelin aiheen tienoilta kaikenlaista muutakin mielenkiintoista, kun kerrankin oli siihen lupa. Vastoinkäymisistä huolimatta projektin henki oli koko ajan hyvä ja osallistujien inhimillisiä puolia ymmärrettiin. Parhaimmillaan homma on ollut todella hauskaa ja meno hervotonta. Vastapainoksi toki itse kukin sai istua koneella yömyöhään vääntämässä dokumentteja tai koodia, yksin tai porukassa. 5.4.2 Projektityön ongelmista Projektin tuottamien dokumenttien suhteen olimme melkein koko ajan miten tämä tulisi tehtyä hyvin? -moodissa: koimme turhauttavaksi sen, että dokumenteista ei ollut tarjolla virallisia tai edes hyväksi koettuja esimerkkejä, vaan saimme tehdä kaiken miten halusimme. Tämä olisi ollut varmasti palkitsevampaa, jos edes jollakulla meistä olisi ollut selvä visio tai käytännön kokemusta toimivasta projektidokumentoinnista. Mutta koska olimme

kaikki liikkeellä koulupohjalta, emme olleet täysin tyytyväisiä mihinkään tuotokseemme. Hiukan samankaltaisia tuntemuksia koimme itse toteutuksen suhteen: projektiryhmät ovat vapaita maalaamaan itsensä nurkkaan valitsemalla tai suostumalla sellaisten tekniikoiden käyttöön tai sellaisten vaatimusten toteuttamiseen, joista he eivät millään voi kokemattomuuttaan selvitä. Meille kävi näin ajauduttuamme toteuttamaan todella hienoa graafista käyttöliittymää porukalla, jolla ei ollut siitä aikaisempaa kokemusta eikä mahdollisuuksia/resursseja (vain neljä henkeä, joista vain kolme riittävän ohjelmointitaitoista). Tekniikanvaihto tutumpaan sai projektin päättymään onnellisesti, mutta tällöinkin hyödynnettiin laajalti projektilaisten muualla hankkimaa osaamista. Laitoksen kurssien tiedoilla tällä porukalla homma olisi kyllä jäänyt tekemättä. Tässä olikin ehkä projektimme suurin dilemma: olimme kaikki valmiita opettelemaan paljon uutta, mutta valitsemallamme tiellä opeteltavien asioiden määrä olisi ylittänyt käytettävissä olevat resurssit. Asiantilan huomaaminen vei aikansa. Normaalitilanteessa todellisessa elämässä kumpaakaan edellä esitetyistä ongelmista ei juurikaan esiinny, vaan sekä hyväksi koetut toimintamallit että tekniset reunaehdot saadaan valmiina projektin ulkopuolelta yrityksen tietotaidon tai edellisten projektien kautta. Jos ohtuprojektien tarkoituksena on opettaa ohjelmistotuotantoprojekteissa toimimista, tuntuu em. matalan tason (dokumenttihallinnollisten ja etenkin teknisten) asioiden kanssa painiskelu suhteellisen tehottomasti käytetyltä ajalta. Yleisenä yliopistollisena oppimistapahtumana ja opinnäytetyönä projektin saldo jää onneksi reilusti plussalle. Ainakin meikäläinen tulee muistamaan tämän Saharassa vietetyn kesän yhtenä opiskelu-urani hienoimmista kokemuksista. Sahara opettaa, sanotaan silti meilläpäin nykyään... ;-) 13

6 Jälkisanat 14 Sahara-ohjelmistotuotantoprojektin toteuttamiseen tarvittiin: 26 kuppia lattea (koska Physicumin kahvila oli kiinni kesän!), 25 kuppia kahvia (maidolla ja kanelilla), 46 kuppia kahvia (maidolla), 108 kuppia kahvia (raakana), 34 kuppia teetä, 9 Frezza Mochaa, 26 litraa vettä, 2 pussia sipsejä, 7 litraa Colajuomia ja muita limuja 8 Finduksen mikroateriaa, 7 kg nektariineja, 10 pullaa, 2 viineriä, 11 kakunpalaa (porkkana-, aito-sacher-, vadelmakakkuja), 62 suklaapatukkaa (pääasiassa Dove, Snickers) 10 Fazerin sinisen perusyksikköä á 170g 16 karkkipussia, 20 olutta, 5 siideriä, 1/4 pulloa + 1 lasi viskiä, 5 pulloa kuohuviiniä 70 savuketta 19 taikakarkkia, 10 litraa 95 oktaanista bensaa 1 kokoillan elokuva nimeltä Sahara, 1 auton vasen etulamppu sekä polkupyörän rengasraudat.

7 Työtunnit Projektille tehdyt työtunnit viikottain. Jäsenet 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 Yhteensä Sanna Keskioja 9 24,5 24,5 17,5 32 15,5 12 13 10 12 18,5 15 18 24 25,5 271 Sampo Lehtinen 15,5 14,5 16,5 9 12 50 13 50 41 221,5 Hanna Liedenpohja 11,5 30,5 19,5 19,5 23 11,5 9,5 14 10,5 34 23 24,5 29,5 16,5 277 Seppo Syrjänen 2 20 15,5 18,5 32,5 9,5 6 32,5 1 6,5 31,5 44,5 15,5 27,5 31,5 29 323,5 Yhteensä 22,5 90,5 74 72 87,5 45,5 27,5 71,5 11 6,5 54 147 53,5 83 135 112 1093 Projektille tehdyt työtunnit vaiheittain. Jäsenet PROJ VAAT SUUN TOTE TEST MUTU KOKO TYOK TUTU MUUT KÄLI Yhteensä Sanna Keskioja 16 58,5 66 11 52 4 21 42,5 271 Sampo Lehtinen 16 15,5 7 64 49,5 38 12 11 8,5 221,5 Hanna Liedenpohja 5 26,5 15,5 83 32 7,5 41,5 3,5 14,5 12 36 277 Seppo Syrjänen 12,5 44 43,5 135,5 8 15 41,5 16 3 4,5 323,5 Yhteensä 49,5 144,5 66 282,5 106 83 173 31,5 32,5 41 83,5 1093 15

16 Sanna Keskioja #PVM LUOKKA TUNNIT TEHTÄVÄ 16.5.2005 KOKO 2 Projektiryhmän järjestäytyminen 19.5.2005 KOKO 2.5 Projektikokous 19.5.2005 VAAT 4.5 Vaatimusten kartutusta 23.5.2005 VAAT 1 Vaatimusten kartutusta 23.5.2005 KOKO 1 Projektipäällikkö koulutus 23.5.2005 VAAT 5 Vaatimusten kartoitusta 24.5.2005 KÄLI 3 Käyttöliittymän suunnittelua 25.5.2005 KÄLI 5 Käyttöliittymän suunnittelua 26.5.2005 KOKO 1 Projektikokous 26.5.2005 KÄLI 4 Käyttöliittymän suunnittelua 27.5.2005 KOKO 1 Asiakaspalaveri 27.5.2005 KÄLI 3.5 Käyttöliittymän suunnittelua 30.5.2005 KOKO 2 Projektipalaveri 30.5.2005 PROJ 2 Riskien analysointia 31.5.2005 KÄLI 4.5 Käyttöliittymän näyttökuvien piirtoa 31.5.2005 VAAT 2 Vaatimusten analysointia 1.6.2005 KÄLI 5 Käliproton piirtämistä 2.6.2005 KOKO 4.5 Projektikokous, asiakaspalaveri 2.6.2005 VAAT 0.5 Vaatimusten analysointia 2.6.2005 KÄLI 1 Värien selvitystä 3.6.2005 KÄLI 3 Käliproton muutostöitä 6.6.2005 VAAT 6.5 Vaatimusdokumentin suunnittelua 6.6.2005 KOKO 1.5 Projektikokous 9.6.2005 KOKO 1.5 Projektikokous 9.6.2005 KÄLI 2 Käliprotoilua 10.6.2005 KÄLI 2 Käliprotoilua 10.6.2005 KOKO 2.5 Kälidemo asiakkaalle 10.6.2005 VAAT 1.5 Vaatimusten dokumentointia 13.6.2005 VAAT 3.5 Vaatimusdokumentin kirjoitusta 13.6.2005 KOKO 1 Projektikokous 13.6.2005 VAAT 3.5 Vaatimusdokumentin kirjoitusta. 14.6.2005 VAAT 2.5 Vaatimusdokumentin kirjoitusta 15.6.2005 VAAT 3 Vaatimusdokumentin kirjoitusta 16.6.2005 KOKO 1 Projektikokous 16.6.2005 VAAT 2.5 Vaatimusdokumentin kirjoitusta 17.6.2005 KÄLI 2 Käyttöliittymän läpikäyntiä 17.6.2005 KOKO 2 Kälidemo asiakkaalle 17.6.2005 VAAT 11 Vaatimusdokumentin kirjoitusta 20.6.2005 KÄLI 4.5 Käliproton korjailua. 21.6.2005 KÄLI 3 Kälikuvien säätöä 21.6.2005 KOKO 2 Katselmus 23.6.2005 KOKO 2 Projektipalaveri

23.6.2005 TUTU 1 Sampon csv ja eclipse koulutus 23.6.2005 PROJ 3 Yleisiä projektitehtäviä 27.6.2005 MUUT 2 27.6.2005 KOKO 2 Projektikokous 29.6.2005 PROJ 6 Projektisuunnitelman kirjoitusta 30.6.2005 KOKO 2 Projektikokous 4.7.2005 PROJ 2 Projektisuunnitelmaa 4.7.2005 KOKO 2 Projektikokous 6.7.2005 MUUT 4 7.7.2005 KOKO 2 Projektikokous 8.7.2005 MUUT 3 11.7.2005 PROJ 3 Projektisuunnitelmaa 13.7.2005 TEST 3 Testaukseen tutustumista 14.7.2005 TEST 4 Testaukseen tutustumista 26.7.2005 TUTU 3 Yleistä 27.7.2005 MUUT 5 Yleistä 28.7.2005 KOKO 2 Projektikokous 28.7.2005 MUUT 2 Yleistä 1.8.2005 KOKO 1.5 Projektikokous 2.8.2005 VAAT 5 Vaatimusten karsimista 4.8.2005 KOKO 1 Projektikokous 4.8.2005 VAAT 6.5 Karsitut vaatimukset 5.8.2005 TEST 4.5 Testaussuunnitelman vedostusta 8.8.2005 KOKO 1 Projektikokous 8.8.2005 TEST 5 Testaussuunnitelman laadintaa 9.8.2005 TEST 4 Testaussuunnitelman laadintaa 11.8.2005 KOKO 1 Projektikokous 11.8.2005 TEST 4 IEEE standardiin tutustumista 16.8.2005 TEST 2 Testauksen suunnittelua 17.8.2005 KOKO 1 Projektikokous 17.8.2005 TEST 5 Testauksen suunnittelua ja dokumentointia. 18.8.2005 TEST 5 Testauksen suunnittelua ja dokumentointia 19.8.2005 MUUT 1 Aamiaispalaveri 19.8.2005 TEST 4 Testauksen dokumentointia 22.8.2005 TEST 5 Testauksen dokumentointia 22.8.2005 KOKO 1 Projektikokous 23.8.2005 TEST 6 Dokumentointia 24.8.2005 TEST 5 Dokumentointia 25.8.2005 KOKO 1 Projektikokous 25.8.2005 TEST 2 Testausta 27.8.2005 MUUT 4 Dokumentointia 29.8.2005 TEST 4.5 Dokumentointia 29.8.2005 KOKO 1 Projektikokous 29.8.2005 KOKO 4 Asiakasdemon suunnittelua 30.8.2005 KOKO 1 Asiakasdemo 17

30.8.2005 TEST 3 Testaussuunnitelman kirjoitusta 31.8.2005 MUTU 2 Käyttöohjeen tekoa 1.9.2005 KOKO 1 Viimeinen projektikokous 1.9.2005 MUTU 7 Paperitöitä 2.9.2005 MUTU 2 CD-n polttoa, viimeistelyä 18

19 Sampo Lehtinen # Malli # # PVMLUOKKATUNNITTEHTÄVÄ # 5.10.2003 SUUN 2.5 Työtehtävän kuvaus # 12.5.2004 SUUN 3 Työtehtävän kuvaus # 3.12.2004 TOTE 1.5 Työtehtävän kuvaus # 14.12.2004TOTE1Työtehtävän kuvaus # # 25.5.2005 MUTU 2 pöytäkirjapohjat, pöytäkirjat jne. 26.5.2005 PROJ 7 projektisuunnitelma, kayttoliittymamuistio 27.5.2005 KOKO 4 palaveri, projektisuunnitelma 27.5.2005 TYOK 1 cvs kikkareen etsintä 29.5.2005 KOKO 0.5 esityslistan tekeminen mailaaminen 29.5.2005 TYOK 1cvs kikkareen testaus 30.5.2005 KOKO 2palaveri 30.5.2005 VAAT 2.5vaatimusmäärittelyä 31.5.2005 TYOK 1cvs 2.6.2005 PROJ 2projektisuunnitelma 2.6.2005 KOKO 2projektipalaveri 2.6.2005 KOKO 3kälidemo 3.6.2005 PROJ 2projektisuunnitelma 6.6.2005 MUUT 1maileja, projektia, projektisuunnitelmaa 6.6.2005 KOKO 1palaveri 6.6.2005 VAAT 2käliprotoa, sanastoa, hommien jakamista 7.6.2005 VAAT 4.5suunnittelua, projektisuunnitelmaa, vaatimuksia 9.6.2005 KÄLI 0.5käliproto 9.6.2005 KOKO 1.0proj koko 9.6.2005 VAAT 1.5vaatimusmäärittelyä 9.6.2005 VAAT 3vaatimusmäärittelyä 10.6.2005 VAAT 2vaatimusmäärittelyä # jotain palavereja, jotain muuta 23.6.2005 MUUT 3.5tuntien kirjaaminen, cvs ohje, cvs 23.6.2005 KOKO 3projektikokous 24.6.2005 MUUT 2.5hakemistopuun järjestely cvs:ää varten jne. 4.7.2005 MUUT 1ties mitä 5.7.2005 TYOK 4visual editor asennuksia 6.7.2005 SUUN 7suunnittelua #puuttu u # # arvioitu 50 tuntia. heittänee ennemmin alas kuin ylöspäin. # tod näk kuitenkin varsin tarkka aika

# 1.8.2005 KOKO 8 arvioitu 1.8.2005 TUTU 7 arvioitu 1.8.2005 PROJ 5 arvioitu 1.8.2005 TOTE 15 arvioitu 1.8.2005 TYOK 5 arvioitu 1.8.2005 MUTU 10 arvioitu 15.8.2005 KOKO 3 kokous, ja siihen valmistautuminen 15.8.2005 TUTU 1 php testaustyökalujen haeskelu 15.8.2005 TOTE 4 koodaus 18.8.2005 KOKO 2 palis 18.8.2005 TOTE 2 jotain 19.8.2005 TOTE 1 jotain 22.8.2005 TOTE 7 toteutusta 22.8.2005 KOKO 2 palaveri 23.8.2005 TOTE 6 session ongelmat 24.8.2005 TOTE 9 debugtulosteiden merkkaus, sessiot jne. 25.8.2005 KOKO 2 palaveri 25.8.2005 TOTE 7 bugeja pois, koodia kuntoon 26.8.2005 TOTE 11 bugeja pois, koodia kuntoon 27.8.2005 MUTU 3 dokumentointia 28.8.2005 MUTU 3 dokumentointia 29.8.2005 MUTU 7 dokumentointia 29.8.2005 KOKO 1 viikkopalaveri 29.8.2005 TUTU 3 Latexin opettelua 30.8.2005 KOKO 2 asiakastapaaminen 30.8.2005 TOTE 2 bugeja, koodia 30.8.2005 MUTU 5 dokumentia 31.8.2005 MUTU 4 dokumentointia 1.9.2005 KOKO 0.5 viikkopalaveriin valmistautuminen 1.9.2005 MUTU 2.5 dokumenttien lukemista ja tekemistä 1.9.2005 KOKO 1 viikkopalaveri 1.9.2005 MUTU 10 dokumentoinnin viimeistelyä 2.9.2005 MUTU 1 dokkarien viimeistelyä 2.9.2005 MUTU 2 Hengailua ja ruusunterälehdillä kävelyä. 20

21 Hanna Liedenpohja PVM LUOKKA TUNNIT TEHTÄVÄ 16.5.2005 KOKO 2 Aloituspalaveri 19.5.2005 KOKO 2.5 Ensimmäinen asiakaspalaveri, vaatimusten k 19.5.2005 TUTU 4 Alustavaa vaatimusten analysointia 20.5.2005 TYOK 3 Projektin www-sivujen suunnittelu & toteut 23.5.2005 KÄLI 4 Käliproton suunnittelu & toteutus 23.5.2005 KOKO 2.5 Viikkopalaveri 24.5.2005 MUUT 1.5 Vaatimusten & projektin yleisten asioiden 24.5.2005 KOKO 2 Asiakaspalaveri 25.5.2005 MUUT 1 Dokumentointia 25.5.2005 KÄLI 5 Käliproto jatkoa 26.5.2005 KOKO 1 Viikkopalaveri 26.5.2005 KÄLI 4 Käliproto jatkoa 27.5.2005 KOKO 1 Asiakaspalaveri 27.5.2005 MUUT 2 Ryhmän sis. asioiden selvittelyä 27.5.2005 PROJ 1 Riskien miettimistä yhdessä 30.5.2005 KOKO 2 Viikkopalaveri 30.5.2005 VAAT 2 Vaatimusten analysointia 31.5.2005 KÄLI 4 Käliproto asiakaspalaveria varten 1.6.2005 VAAT 2 Sanasto & vaat. strukt. 1.6.2005 KÄLI 3 Käliproton viimeistelyä 2.6.2005 KOKO 2 Viikkopalaveri 2.6.2005 KOKO 2.5 Asiakaspalaveri 3.6.2005 KÄLI 2 Seuraavan käliproton suunnittelua 6.6.2005 KÄLI 5 Kälidemon suunnitelu & ppt 6.6.2005 KOKO 1.5 Viikkopalaveri + pöytäkirja kirj. 6.6.2005 VAAT 1 käli esitys & vaatimukset (ryhmäpal.) 8.6.2005 PROJ 1 projektisuunnitelman & riskidokkarin luku & kom 8.6.2005 KÄLI 1 kälidemon tekoa 9.6.2005 KOKO 1 Viikkopalaveri 9.6.2005 VAAT 2 sis. vaatimuspal. & osallist toim vaat 9.6.2005 KÄLI 2.5 käliproton viimeistelyä 10.6.2005 KOKO 2 Asiakaspalaveri 10.6.2005 TUTU 1 Latex-opiskelua 10.6.2005 MUUT 0.5 Yleistä selvittelyä & tunnit kirj. 10.6.2005 VAAT 1 Vaatimusdokkarin siirtoa latexiin 13.6.2005 VAAT 3.5 Vd rakennemuutoksia & vaatimusten lajittelua 13.6.2005 KOKO 1 Viikkopalaveri 13.6.2005 MUUT 0.5 Yleistä projektias.s selv. 14.6.2005 VAAT 4.5 Vd vaatimusten lajittelua & kst:t 15.6.2005 VAAT 2.5 Käyttötapaukset kirj & kaavio + vaat. selv. 15.6.2005 KÄLI 2.5 Pe kälidemon suunnittelu & tekeminen 16.6.2005 KOKO 0.5 Viikkopalaveri

16.6.2005 MUUT 0.5 projektiasioiden sis. selv. 16.6.2005 TYOK 0.5 FCR-esitys & keskustelua 16.6.2005 VAAT 1 Vaatimusdokkarin läpikäyntiä yhdessä 16.6.2005 KÄLI 2 Käliproto jatkoa 17.6.2005 KÄLI 0.5 Käliproton viimeistely 17.6.2005 KOKO 1.5 Asiakaspalaveri 17.6.2005 VAAT 1.5 KT:t & vaatimukset alkuteksti + vaat. selv. 17.6.2005 MUUT 0.5 Tunnit kirjaus & yl. projektias. selv. 20.6.2005 VAAT 1 Vaat. dok. luk. kats. varten 20.6.2005 MUUT 0.5 Proj. as. selv. puh. & vm tulostus 21.6.2005 VAAT 2 Vaat. dok. kats. pal. 21.6.2005 VAAT 1 Vaat. dok. lukua & kats. puhjoht. valm. 21.6.2005 KÄLI 0.5 Kälin läpikäyntiä Sannan kanssa 21.6.2005 MUUT 0.5 Yl. as. & tekn. ong. selv. (latex + kuvat) 22.6.2005 VAAT 0.5 VM kommentit alkuosasta kirj. 22.6.2005 TUTU 1 Vanhat suunn. dok. tut. 22.6.2005 TUTU 1 Testaus & JUnit tut. 23.6.2005 KOKO 1.5 Viikkopal. + pöytäkirja kirj. 23.6.2005 PROJ 0.5 Aikataulu selv. yhdessä 23.5.2005 TUTU 0.5 Eclipse demo 23.6.2005 TUTU 0.5 CVS-koulutus 23.6.2005 TUTU 1 UML-editoreihin tutustumista 27.6.2005 KOKO 0.5 Viikkopalaveri 27.6.2005 SUUN 1 luokkakaavion piirtämistä vm:n pohjalta 27.6.2005 VAAT 1 VM priorisointia yhdessä & dok. tark. 27.6.2005 MUUT 1 Yl. proj. asioiden selv. 29.6.2005 TUTU 3 Eclipseen tutustumista 30.6.2005 KOKO 0.5 Viikkopalaveri 30.6.2005 SUUN 0.5 Luokkien suunn. yhdessä 30.6.2005 SUUN 2 Luokkakaavio & rajapintakuv. tekoa 4.7.2005 KOKO 0.5 Viikkopalaveri 4.7.2005 SUUN 2 Luokkien yms. suunn. 4.7.2005 TUTU 0.5 Swing-taulukoihin tut. 4.7.2005 PROJ 0.5 Aikataulun selv. yhdessä 5.7.2005 PROJ 0.5 Aikataulu & yl. proj. as. selv 5.7.2005 SUUN 3 Luokkakuvausten kirj. (latex) 6.7.2005 SUUN 3 Luokkakuv loppuun & kaavio päivitys 6.7.2005 SUUN 1 Kälielem suunn. 7.7.2005 KOKO 0.5 Viikkopalaveri 7.7.2005 SUUN 1.5 Suunnittelun tilannekats. yhdessä 7.7.2005 MUUT 0.5 Tuntien kirj. yms. 7.7.2005 SUUN 0.5 Kälielem suun jatkoa 25.7.2005 TUTU 1 proj. tilaan & appletteihin tut. 26.7.2005 TOTE 2 Substanssiluokkien koodauksen aloitus 26.7.2005 MUUT 1.5 projektin tilan selvitystä 22

27.7.2005 MUUT 1 sis. palaveri tilanteesta 27.7.2005 TOTE 0.5 subst. luokkien koodausta 28.7.2005 KOKO 1.5 viikkopalaveri 28.7.2005 TOTE 1 tilannekats. / Sepon demo 28.7.2005 TOTE 2 käli ohj. swingillä 29.5.2005 TOTE 5 käli ohj. 1.8.2005 KOKO 1 viikkopalaveri 1.8.2005 PROJ 1 tilanteen selv. 1.8.2005 TOTE 5 kälin ohj. + vähän php:ta 2.8.2005 PROJ 0.5 sis. pal: vaatimusten karsintaa 2.8.2005 TOTE 5 kälin php-koodaus jatkuu 2.8.2005 SUUN 1 koodauksen suunnittelua yhdessä 3.8.2005 TUTU 1 tietokannan käyttöön tut. 3.8.2005 TOTE 4 kirjautuminen yms ohj. 4.8.2005 KOKO 1 viikkopal. 4.8.2005 TOTE 7 ylävalikko, rakenne ohj. 5.8.2005 TOTE 7.5 perustietojen & osall. tall. yms. 8.8.2005 KOKO 0.5 viikkopal. 8.8.2005 KOKO 1 sis. pal: algoritmi & tanja nykytila demo 8.8.2005 TOTE 5 uusi osall & poisto, csvpopup yms. 9.8.2005 TOTE 3.5 salasanan tilaus, rekisteröinti aloitus 10.8.2005 TEST 2 testausluento 10.8.2005 TOTE 3 värikoodit & sop.kuvat kälidemosta 11.8.2005 KOKO 1 viikkopal. 11.8.2005 MUUT 0.5 proj. as. yleistä sel. 11.8.2005 TOTE 6.5 rekisteröinti, tarkistukset, tallennuksia yms. 15.8.2005 KOKO 1 viikkopalaveri 15.8.2005 TOTE 1 checklist läpikäynti yhdessä 15.8.2005 TOTE 2 ulkoasua, alku/loppupvm oletusarvot yms 16.8.2005 TEST 0.5 euct-suunn. sannan kanssa 16.8.2005 TOTE 3 aikat. tall selv, kesto disable yms. 17.8.2005 TOTE 4 tall. välilehdestä, pvm:n tark. yms 17.8.2005 TEST 1 yksikkötestausta 18.8.2005 KOKO 1 viikkopalaveri 18.8.2005 TEST 2 test. suunn: tilakaavio&kt:t, euct-formaatti 18.8.2005 TEST 1 yksikkötestausta ja korjauksia 18.8.2005 TOTE 2 checklist päivitys & pieniä korjauksia 19.8.2005 TOTE 4 oletusryhmä&aikataulu, tallennuksen aloitus 19.8.2005 TEST 2 yksikkötest., testitap- suunn. 22.8.2005 TOTE 1.5 tallennus yläosasta yms. loppuun 22.8.2005 KOKO 1.5 viikkopal. + pöytäkirja kirj. 22.8.2005 TOTE 0.5 checklist päivitys 22.8.2005 TEST 1.5 testaussuunn. luku & kommentit 23.8.2005 TEST 8 euct-testitapaukset kirj. 24.8.2005 TEST 2 euct-testitapaukset loppuun 23

24.8.2005 TEST 3 raporttipohja testeille 24.8.2005 TEST 2 testauksen aloitus -> KT3 25.8.2005 KOKO 0.5 viikkopal. 25.8.2005 TEST 2.5 testaus loppuun 25.8.2005 TOTE 2 toteutusdok. kirj. 26.8.2005 TEST 2.5 toinen testikierros 26.8.2005 TOTE 2 vaatimusdok. kaavio & kirj. 29.8.2005 KOKO 1 viikkopal. 29.8.2005 TOTE 1.5 testausdok. kirj. 29.8.2005 MUTU 1 käyttöohje suunn. 30.8.2005 TEST 0.5 3. testikierros 30.8.2005 KOKO 1 asiakasdemo 30.8.2005 TEST 1 test.suunn. luku & korjaukset 30.8.2005 TOTE 1 tot. dok. kirj. 30.8.2005 MUTU 0.5 käyttöohjeen luku & komm. sannalle 31.8.2005 TOTE 1 tot. dok. kirj. 31.8.2005 TEST 0.5 test. dok. selv. 1.9.2005 KOKO 1 viikkopalaveri 1.9.2005 MUTU 2 käyttöohje 1.9.2005 TOTE 0.5 tietokantakaavio 1.9.2005 MUTU 1 dokkareiden oikolukua 1.9.2005 MUTU 1 loppuraportti kirj. 2.9.2005 MUTU 2 projektin lopputoimet 24

25 Seppo Syrjänen #PVM LUOKKA TUNNIT TEHTÄVÄ 22.5.2005 TUTU 2 Aiheeseen tutustuminen 23.5.2005 KOKO 2 Projektikokous 23.5.2005 VAAT 0.5 Vaatimusluonnostelua 24.5.2005 KOKO 2 Asiakastapaaminen 25.5.2005 KÄLI 3 Käliprotoa 25.5.2005 SUUN 1 Tietokantaa 25.5.2005 TUTU 1 Algoritmien tutkimista 26.5.2005 KOKO 1 Projektikokous 26.5.2005 KÄLI 1.5 Käliprotoa 26.5.2005 KOKO 0.5 Pöytäkirjaa 27.5.2005 KOKO 2 Asiakastapaaminen 27.5.2005 PROJ 1 Projektisuunnitelmaa 29.5.2005 PROJ 4.5 Riskianalyysi 30.5.2005 KOKO 1.5 Projektikokous 30.5.2005 VAAT 2.5 Vaatimusmäärittely 30.5.2005 PROJ 2 Riskianalyysi 31.5.2005 VAAT 1 Vaatimusmäärittely 31.5.2005 TYOK 1 Työkalujen viritystä 31.5.2005 PROJ 0.5 Riskianalyysi 31.5.2005 TYOK 0.5 Tuntikirjausväline 31.5.2005 VAAT 0.5 Vaatimusmäärittely 1.6.2005 VAAT 0.5 Vaatimusmäärittely 1.6.2005 SUUN 0.5 Algoritmien metsästystä 2.6.2005 KOKO 1.5 Projektikokous 2.6.2005 KOKO 3 Asiakaspalaveri 5.6.2005 PROJ 0.5 Projektisuunnitelma 6.6.2005 KOKO 1.5 Projektikokous 6.6.2005 VAAT 1.0 Käliproton suunnittelua 6.6.2005 VAAT 1.5 Sanaston toimitusta 8.6.2005 TYOK 3.5 LaTeXin opettelua 8.6.2005 SUUN 0.5 Suunnitteludokumentin runkoa 8.6.2005 PROJ 0.5 Riskianalyysin siirto LaTeX-muotoon 9.6.2005 KOKO 1.5 Projektikokous 9.6.2005 VAAT 2.5 Aikataulun vaatimusten tekoa 9.6.2005 SUUN 0.5 Suunnitteludokumentin runkoa 9.6.2005 SUUN 1.5 Tekniikoihin tutustumista 10.6.2005 KOKO 2.0 Asiakaspalaveri 10.6.2005 VAAT 1.5 Vaatimusdokkari LaTeX-muotoon 10.6.2005 TYOK 0.5 Vaatimusdokkarin perl-työkalu 13.6.2005 KOKO 1.5 Projektikokous 13.6.2005 TYOK 0.5 Vaatimusdokkarin työkaluja 13.6.2005 SUUN 1.5 Suunnittelun luonnostelua