LOPPURAPORTTI Polku http://code.google.com/p/polku-projekti/ Versio 1.0 Projektiryhmä Janne Pihlajaniemi Antti Jämsén Maria Hartikainen Pekka Kallioniemi Jorma Laajamäki Panu Tunttunen Nina Tyni Joonas Jokiniemi
Versiohistoria Päiväys Versionumero Tekijät Muutosten syy Muutokset 07.03.10 0.1 Antti Jämsén Ensimmäinen versio 15.03.10 1.0 Janne Pihlajaniemi Lisää sisältöä, muotoiluja - Sisällysluettelo, ohjelmakoodin statistiikat 2
Sisällysluettelo 1 Johdanto... 4 1.1 Tarkoitus ja kattavuus... 4 1.2 Määritelmät, termit ja lyhenteet...4 1.3 Viitteet...5 1.4 Yleiskatsaus dokumenttiin... 5 2 Yleiskuvaus ohjelmasta...6 2.1 Tarkoitus... 6 2.2 Ympäristö...6 2.3 Toiminta... 6 2.4 Rajoitteet...6 3 Projektin organisointi... 7 3.1 Henkilöstö ja roolit... 7 3.2 Asiakas...7 4 Ongelmat ja niiden analysointi...8 4.1 Ennalta määritellyt riskit...8 4.2 Yllättävät riskit...9 5 Projektin hallinta... 10 5.1 Viikkopalaverit...10 5.2 Viikkoraportit...10 5.3 Katselmoinnit...10 5.4 Ryhmätyöskentely...10 6 Välineet ja menetelmät...11 6.1 Välineet... 11 6.2 Menetelmät... 11 7 Projektin eteneminen, työmäärät ja tuotokset... 12 8 Johtopäätökset... 16 8.1 Kokemukset projektista... 16 9 Hylättyjä ratkaisuvaihtoehtoja...17 10 Jatkokehitysideoita...18 11 Kommentteja kurssista... 19 3
1 Johdanto 1.1 Tarkoitus ja kattavuus Dokumentin tarkoituksena on kuvata, miten projekti sujui ja mitä parannettavaa jäi. Tarkoituksena on käydä mm. läpi mitä riskejä projektin alussa tunnistettiin, tuliko niitä vastaan ja miten niistä selvittiin. 1.2 Määritelmät, termit ja lyhenteet LAMP - Kokoelma avoimen lähdekoodin ohjelmia, jotka yhdessä muodostavat wwwpalvelimen jonka alla voidaan suorittaa dynaamisia web-sivustoja Apache Avoimeen lähdekoodiin perustuva palvelinohjelma PHP WWW-ohjelmointiin suunniteltu ohjelmointikieli MySQL SQL-tietokannan hallintajärjestelmä. Google code Sivusto projektin dokumenttien ja avoimen lähdekoodin ylläpidolle Eclipse Ohjelmointi- ja kehitysympäristö SVN Subversion-versionhallinta. SCRUM Ketterän ohjelmistokehityksen menetelmä Sprintti Projektin ajallinen osakokonaisuus. Sprintin kesto on noin kolme viikkoa. Käytettävyysryhmä Projektityökurssin osallistujista koottu erillinen ryhmä, joka auttaa muita projektityökurssin ryhmiä käytettävyysasioissa. 1.3 Viitteet PHP: http://php.net/ MySQL: http://mysql.com/ Apache: http://httpd.apache.org/ Eclipse: http://www.eclipse.org/ Tortoise SVN: http://tortoisesvn.tigris.org/ Robot Framework: http://robotframework.org/ Google Code http.//code.google.com SCRUM - http://fi.wikipedia.org/wiki/scrum 1.4 Yleiskatsaus dokumenttiin Luvussa 1 esitellään projekti sekä listataan yleisimmät lyhenteet ja yhdenmukaistetut termit. 4
Luvussa 2 kerrotaan yleiskuvaus sovelluksesta. Luvussa 3 esitellään projektiorganisaatio. Luvussa 4 kerrotaan projektin ongelmista ja niiden selvittämisestä. Luvussa 5 kerrotaan projektin hallinnasta. Luvussa 6 esitellään projektissa käytetyt menetelmät ja ohjelmistot. Luvussa 7 esitellään projektin eteneminen, työmäärät ja tuotokset. Luvussa 8 kerrotaan projektin johtopäätökset. Luvussa 9 listataan projektin hylätyt ratkaisuvaihtoehdot. Luvussa 10 kerrotaan mahdollisista jatkokehitysideoista. Luvussa 11 kerrotaan kommentteja kurssista. 5
2 Yleiskuvaus ohjelmasta 2.1 Tarkoitus Sovellus on tarkoitettu pitkäaikaisten yhteistyöprosessien ja -projektien seurantaan Helsingin kaupunginosayhdistykset ry:lle. Sovelluksella on mahdollisuus tallentaa, muokata ja poistaa tietoa erilaisista tapahtumista, niihin liittyvistä toimijoista sekä näiden välisistä suhteista. Tuote mahdollistaa tapahtumien ja toimijoiden listaamisen ja auttaa näin ollen projekteihin liittyvässä raportoinnissa. 2.2 Ympäristö Sovellus Helsingin kaupunginosayhdistykset ry:n (Helka) sisäiseen käyttöön. Sovellus on webpohjainen ja se pyörii Helkan omalla Linux-palvelimella. Sovellusta saatetaan myöhemmässä vaiheessa tarjota myös kaupunginosayhdistyksien käyttöön, mutta se ei kuulunut tämän projektin piiriin. 2.3 Toiminta Käyttäjä kirjautuu sisään sovellukseen ja valitsee haluamansa toiminnon sivun ylälaidan painikkeista. Käyttäjä voi valinnastaan riippuen lisätä sovelluksella projekteja, tapahtumia, henkilöitä, tahoja, huomioita ja juttuja. Käyttäjä voi myös muokata edellä mainittuja tai järjestellä tapahtumia kokonaisuuksiksi ja liittää henkilöitä tahoihin ym. Käyttäjä voi myös selata läpi kaikkia edellä mainittuja. 2.4 Rajoitteet Loppukäyttäjän laitteiston oletetaan kykenevän web-selailuun, koska kyseessä on web-sovellus. Sovellus ei välttämättä toimi vanhemmilla selaimilla, koska se tehdään ensisijaisesti toimimaan tämän hetken uusimmalla Mozilla Firefox -selaimella. Kehitystyössä pyritään ottamaan huomioon myös muiden yleisimpien selaimien uusimmat versiot, mutta kaikkien toimivuutta ei voida taata. 6
3 Projektin organisointi 3.1 Henkilöstö ja roolit Projektipäälliköt Janne Pihlajaniemi Vastuualueet: viikkopalaverien vetäminen ja tilanvaraus niitä varten ym. ryhmän tapaaminen Tampereella Antti Jämsén Työryhmä Vastuualueet: tiedottaminen asiakkaalle, asiakastapaamiset Helsingissä, viikkoraportit Maria Hartikainen Nina Tyni Dokumentit, sovelluksen testaus Tietokanta, sovelluksen koodaus Jorma Laajamäki Tietokanta, sovellusalustan ylläpito Panu Tunttunen Käyttöliittymä, sovelluksen koodaus Pekka Kallioniemi Käyttöliittymä, sovelluksen koodaus Käytettävyysryhmän edustaja Joonas Jokiniemi 3.2 Asiakas Käyttöliittymä, käytettävyys Projektin asiakas on Helsingin kaupunginosayhdistykset ry (Helka), jonka edustajina toimivat Ilari Kajaste (ilari.kajaste@helka.net), Terhi Vilkman (terhi.vilkman@helka.net) ja Anna Kanervo (anna.kanervo@helka.net). 7
4 Ongelmat ja niiden analysointi 4.1 Ennalta määritellyt riskit Ennalta määriteltyjä riskejä olivat seuraavat (alapuolella kommentit toteutumisesta ja ratkaisemisesta): Projektiryhmän vähäinen motivaatio Ei ollut missään vaiheessa projektia ongelma. Ryhmän jäsenet estyvät työskentelemästä hetkellisesti Tätä tapahtui jonkin verran, mutta se oli odotettavissakin eikä katkot olleet kovin pitkiä. Ei vaatinut erityistoimenpiteitä. Projektiryhmän jäsenen sairastuminen influenssaan Tapahtui ainakin toiselle projektipäällikölle, mutta ei aiheuttanut ongelmia projektille, koska sattui joululoman aikaan. Projektiryhmän aikataulujen yhteensovittaminen epäonnistuu Välillä oli vaikeuksia, mutta palaverit pidettiin aina sillä porukalla joka koossa oli ja muille sitten jaettiin tietoa esim. wikin kautta. Kurssin keskeyttäminen projektiryhmän jäsenen osalta Yksi ryhmän jäsenistä oli välillä pitkäänkin tavoittamattomissa, mutta silloin kun oli mukana, niin teki paljon hommia. Kukaan ei varsinaisesti keskeyttänyt kurssia. Ryhmän jäsenten vähäinen kokemus valittujen tekniikoiden käytöstä Ei loppujen lopuksi koitunut suureksi ongelmaksi. Ne jotka osasivat muita paremmin, auttoivat ja opastivat muita. Asioita opiskeltiin myös porukalla. Asiakkaan edustajan vähäinen mielenkiinto projektia kohtaan Asiakas oli aktiivinen eli tällaista ongelmaa ei kohdattu. Asiakkaan vaatimusten väärin tulkitseminen Tätä sattui jonkin verran, mutta siihen varauduttiin tiiviillä yhteydenpidolla asiakkaaseen eli uusia toiminnallisuuksia ja määrityksiä katselmoitiin varsin usein asiakkaan kanssa, jotta niihin pystyttiin puuttumaan ajoissa. Uusien vaatimusten ilmaantuminen myöhäisessä vaiheessa Varsinaisia uusia vaatimuksia ei tainnut tulla, mutta alkuperäisiä ehkä hiukan muutettiin/täsmennettiin projektin edetessä. Tästä ei koitunut sen suurempia ongelmia. Asiakas ei osallistu palavereihin Asiakas pystyi osallistumaan palavereihin hyvin. Vaatimuksien selvittämiseen käytetään liiaksi aikaa Perusvaatimukset pyrittiin saamaan ripeästi valmiiksi ja niitä sitten tavallaan iteroitiin jatkuvasti kehitystyön ohessa, jotta alkuselvittelyyn ei menisi liikaa aikaa. Tässä 8
onnistuttiin. Asiakas ei pysty pitämään sovittuja asioita Ei ollut ongelmia. Projektipäälliköiden kokemuksen puute Projektia olisi ehkä pystynyt organisoimaan hieman tehokkaamminkin, mutta tämä ei koitunut ongelmaksi. Vastuiden jako ryhmän jäsenten kesken on epäoikeudenmukaista Ainakaan soraääniä projektipäällikköiden korviin ei tästä kantautunut. Hommat pystyttiin alunperinkin jakamaan aika lailla kaikkien omien halujen mukaisesti, mikä varmasti auttoi asiaa, koska ketään ei esim. tarvinnut pakottaa ohjelmoimaan. Työmääräarvioiden epäonnistuminen Arvio meni aika paljon yläkanttiin, koska vain reilut 1000 tuntia 1500:sta käytettiin. Kommunikointi asiakkaiden kanssa tai projektiryhmän sisällä ei toimi Tässä ei ilmennyt ongelmia. Ennalta tuntemattomiin teknologioihin tutustuminen kestää liian pitkään Tältäkin vältyttiin projektiryhmän aktiivisen itseopiskelun ja tiedon jakamisen vuoksi. Ohjelmointi päästiin aloittamaan hyvissä ajoin, eikä sen aloitus myöhästynyt mitenkään radikaalisti. Valitut teknologiat eivät sovellu vaatimusten toteuttamiseen Ei ongelmia. Päinvastoin teknologiat soveltuivat erittäin hyvin kyseisten vaatimusten toteuttamiseen. Ohjelmointityökalujen käyttöönotto viivästyy Ei ongelmia. Huono käytettävyys Käytettävyyteen pyrittiin kiinnittämään huomiota koko kehityksen ajan. Heuristisella arvioinnilla vielä selvitettiin käytettävyyden onnistumista sekä asiakkaan kommentteja kysymällä. Tuote ei vastaa asiakkaan tarpeita Aivan kaikkia ominaisuuksia sovellukseen ei ehditty tehdä, mutta kylläkin kaikki tärkeimmät ja sen voidaan sanoa palvelevan alkuperäistä tarkoitustaan projektien seurannan tukena. 4.2 Yllättävät riskit Mitään yllättäviä riskejä ei tullut vastaan, koska niin monenlaisiin riskeihin oli osattu varautua jo projektin alussa. Yksikään ennalta määritellyistä riskeistä ei ainakaan kovin vakavasti toteutunut, mikä olisi voinut aiheuttaa myös uusien yllättävien riskien toteutumista. 9
5 Projektin hallinta 5.1 Viikkopalaverit Projektissa pidettiin lomaviikkoja lukuun ottamatta kerran viikossa palaveri, jossa käytiin läpi viikon aikana aikaan saadut asiat, niihin liittyvät ongelmat ja tehtävät seuraavalle viikolle. Janne Pihlajaniemi veti läpi viikoittaiset palaverit ja niihin osallistui projektiryhmän lisäksi myös asiakas silloin tällöin, kun se oli tarpeellista. Etenkin projektin myöhemmässä vaiheessa viikkopalaverien luonne muuttui enemmän workshoptyyliseksi, jossa kyllä käytiin edellä mainitut asiat, mutta usein myös jatkettiin yhdessä varsinaista toteuttamista. Viikkopalaverien lisäksi ryhmällä oli erinäisiä workshoppeja, joissa porukalla tutustuttiin johonkin uuteen työkaluun tai suunniteltiin ja toteutettiin jotain vaativaa toiminnallisuutta. Nämä koettiin varsin hyödyllisiksi. 5.2 Viikkoraportit Viikkoraportteja kertyi yhteensä 24 kpl. Raporttien kirjoittaminen oli Antti Jämsénin tehtävä. Hän pysyi paremmin kärryillä projektin etenemisestä, koska osallistui johtamiseen Helsingistä käsin. Viikkopalaverista oli tapana kirjoittaa wikiin pääasiat ylös, jotka sitten koostettiin viikkoraportille joka maanantai. Raportointipäivänä meillä oli maanantai, jotta ryhmäläiset saivat merkata viikoittaiset työtuntinsa aina sunnuntai-iltaan mennessä. 5.3 Katselmoinnit Katselmointeja järjestettiin jokaisen sprintin jälkeen, joissa katsottiin läpi saavutetut asiat ja seuraavan sprintin sisältö. Katselmointeihin osallistui aina projektiryhmän lisäksi asiakas ja lähes aina kurssin vetäjä. Monet dokumentit saatiin valmiiksi vasta juuri ennen katselmointia, joten kurssin vetäjä ja asiakas eivät useinkaan olleet ehtineet niihin kunnolla tutustua. Tämä heikensi niiden katselmointia. 5.4 Ryhmätyöskentely Varsinaista viikoittaista ryhmätyöskentelyä ei ollut erikseen sovittu, mutta osan toteutuksesta ryhmäläiset tekivät keskenään järjestämissään pienryhmissä. Yhteyttä toki pyrittiin pitämään tiivisti, jotta ryhmäläiset tietäisivät mitä kukin on toteuttamassa. Tässä apuna oli projektille perustettu IRCkanava ja sähköposti. Projektiryhmä alkoi toimia yhteen varsin nopeasti projektin aloittamisen jälkeen ja yhteistyö sujui kokonaisuutena hyvin. Ryhmäläiset kommunikoivat paljon suoraan keskenään ilman projektipäälliköitä, mutta kaikki oleellinen kerrottiin myös heille. Käytettävyystiimin jäsen oli aktiivisesti mukana projektissa ja hänellä riitti innostusta hyvin koko projektin ajan. Hän ei ollut mitenkään ulkopuolinen vaan selvästi tiimiin jäsen. 10
6 Välineet ja menetelmät 6.1 Välineet Projektissa hyödynnetään GoogleWikiä, joka on monipuolinen Wiki-työkalu projektityöskentelyyn. Kotisivu löytyy osoitteesta: http://code.google.com/p/polku-projekti/. Projektin kotisivulta löytyy myös projektin tuottamat dokumentit ja sitä käytetään mm. tiedostojen ja tiedon jakamiseen ryhmäläisten kesken. Tuntilistaukset ylläpidetään Google-dokumenttien taulukkolaskennassa, johon jokainen ryhmäläinen käy joka viikko viimeistään sunnuntaina kirjaamassa edellisviikon tuntinsa. Google Groupsissa on luotu sähköpostilista, jonka avulla tietoa saadaan nopeasti lähetettyä ryhmän kesken. Yhteydenpito projektin aikana tapahtuu pääasiallisesti sähköpostin kautta, mutta projektilla on myös oma IRC-kanava, jota viimeistään ohjelmointivaiheessa on tarkoitus hyödyntää. Asiakas oli jo etukäteen määritellyt tarkkaan ympäristön, jossa sovellusta ajetaan eli projektiryhmällä ei asiassa ollut sen enempää työtä. Järjestelmä toteutetaan LAMP-ympäristöön: Palvelin: Linux Ubuntu Server 8.04.3 LTS Web-palvelin: Apache Tietokanta: MySQL 5.0.51a-3ubuntu5.4 Ohjelmointikieli: PHP 5.2.4-2ubuntu5.7, Suhosin-Patch Kehitysympäristönä projektilla toimii tietojenkäsittelytieteiden laitoksen tarjoama virtuaalipalvelin, jossa on palvelinohjelmistona perusasennettu Debian GNU/Linux 5.0. Vaikka palvelin ei olekaan sama kuin asiakkaan käytössä oleva, jolla sovellus tulee pyörimään, niin se on kuitenkin niin lähellä samaa, ettei siitä uskota seuraavan ongelmia. Sovelluksen tulee toimia ainakin Mozilla Firefox-, Internet Explorer- ja mielellään myös Operaselaimen uusimmassa versiossa (eli vähintään versiossa, joka on tällä hetkellä uusin). 6.2 Menetelmät Kehitysmallina oli hieman muokattu Scrum. Päivittäisiä tapaamisia ei ollut mahdollista järjestää, mutta asiat käytiin kerran viikossa läpi sen sijaan. Kehityksessä käytettiin lisäksi jonkin verran workshoppeja ja etenkin ohjelmointivaiheessa yhteydenpitoa harrastettiin myös IRC-kanavan välityksellä. Kehitysmalli oli tällaisen melko pienen, mutta varsin monimutkaisen sovelluksen kehittämiseen hyvä. Projektin edetessä jouduttiin palaamaan vaatimuksiin useaan otteeseen ja muokkaamaan mm. asioiden esitystapaa käyttöliittymässä. Tällaiset muutokset olisivat olleet vaikeita vesiputousmallissa. Myös ohjelmointityö päästiin aloittamaan aikaisessa vaiheessa eikä vesiputousmallin kaltaista hyvin raskasta suunnitteluvaihetta tarvittu. Useat vaatimusten toteuttamiseen liittyvät asiat oli helpompi havaita siinä vaiheessa, kun jotain ohjelmointikoodia oli jo saatu aikaiseksi. 11
7 Projektin eteneminen, työmäärät ja tuotokset Alla listattuna projektin vaiheet ja tärkeimmät päivämäärät, Vaiheistus Sprintti Sisältö Viikot Pääajankohdat #1: Projektin aloitus Projektin käynnistäminen Aiheeseen tutustuminen Ideointi Projektisuunnitelma Käytettävyyskartoitus #2: Vaatimusmäärittely ja suunnittelu #3: Proton muodostus ja ohjelmoinnin aloitus #4: Proton muodostus ja ohjelmointia #5: Ohjelmointia, katselmointia ja korjausta #6: Ohjelmointia ja katselmointia #7: Ohjelmointia ja testaamista Ohjelmointityökalujen asentaminen Ohjelmointityökaluihin tutustuminen Käyttöliittymän suunnittelu Tietokannan suunnittelu Tietokannan ER-malli Käyttöliittymäsuunnitelma Vaatimusmäärittely Tietokannan muodostaminen Käyttöliittymän muodostaminen Staattisen proton tekemisen aloitus Ohjelmoinnin aloitus Staattinen proto valmis Testidata syötetty tietokantaan 8% valmiina Ohjelmointi jatkuu Katselmointia ja korjaamista asiakkaan kommenttien perusteella 17% valmiina Ohjelmointi jatkuu Session hallinnan toteuttaminen Testaus-suunnitelman tekeminen ja katselmointi 77% valmiina Ohjelmointi jatkuu vielä, lähinnä kuitenkin hienosäätöä eikä uusien ominaisuuksien toteuttamista Bugien korjaus Testaamista Sovelluksen toimittanen asiakkaalle heidän sisäistä testausta varten (koska mm. hieman erilainen ympäristö kuin kehitysympäristö) 12 38-41 Katselmointi: 07.10.09 Esitutkimus: 22.09.09 Projektisuunnitelma: 04.10.09 Käytettävyyskartoitus: 09.10.09 42-45 Katselmointi: 06.11.09 Vaatimusmäärittely: 03.11.09 46-48 Katselmointi: 27.11.09 49-51 Katselmointi: 16.12.09 Projektiesitys: 09.12.09 1-3 Katselmointi: 22.01.10 Testaussuunnitelma: 21.01.10 4-6 Katselmointi: 15.02.10 7-9 Katselmointi: 04.03.10 Testausraportti 1: 02.03.10 Testausraportti 2: 03.03.10 Projektikertomus: 07.03.10 Loppuraportti: 07.03.10
Loppujen dokumenttien kirjoittaminen 93% valmiina Projektin päättäminen Lopputapaaminen asiakkaan kanssa Projekti-CD 100% valmiina 11 Lopputapaaminen 18.03.10 Tunnit kategorioittain ja henkilöittäin Henkilö Projektin suunnittelu ja johtaminen Vaatimus ten määrittel y Suun nittel u Ohjel moint i Integroi nti ja testaus Katselmo innit Korj aus Opiskelu Muut Janne 94 2 3 0 4 5 0 2 10 120 Antti 68 12 3 0 0 10 6 2 2 103 Pekka 32 0 0 85 2 4 1 48 2 174 Maria 41 0 0 0 37 6 0 24 17 125 Jorma 20 2 26 6 0 5 0 10 25 94 Panu 39 3 19 117 0 5 44 21 19 267 Nina 33 2 11 41 0 6 32 12 10 147 Joonas (UI) 36 4 9 0 6 2 0 4 5 66 Yht Yht 364 25 71 249 49 43 83 123 90 1097 % 33,18 2,28 6,47 22,7 4,47 3,92 7,57 11,21 8,2 100 13
Viikottaiset työtunnit henkilöittäin Vko Janne Antti Pekka Maria Jorma Panu Nina Joonas Yht 37 1 1 5 0 0 0 0 0 7 38 14 10 4 0 0 1 3,5 3 35,5 39 15 13 5 3 3 8 5 3 55 40 4 8 3 9 5 3 0 32 41 8 6 0 6 10 4 11 45 42 7 2 9 5 7 11 3 6,5 48,5 43 0 2 0 0 0 2 0 0 4 44 3 3 3 4 8 4 3 2,5 30,5 45 6 10 5 9 5 6 7 48 46 2 4 4 0 15 3 2 2 32 47 3 2 14 0 20 2 1 2 44 48 4 2 2 0 18 1 8 2 37 49 2 1 17 5 5 15 5 0,5 50,5 50 8 3 22 5 9 38 12 5,5 102,5 51 2 0 2 0 9 21 2 2,5 38,5 52 0 0 0 0 0 3 0 0 3 53 0 0 3 0 0 0 0 0 3 1 1 0 6 0 0 1 1 0 9 2 7 3 28 6 0 9 12,5 2,5 68 3 2 4 9 15 0 2 15 2 49 4 3 4 13 0 0 4 6 0,5 30,5 5 2 3 4 0 0 2 10 1,5 22,5 6 3 1 9 10 0 27 7 2 59 7 4 2 0 0 0 56 6 1 69 8 3 9 0 18 0 19 12 2 63 9 6 10 5 11 0 18 13 7 70 11 10 2 19 7 Yht: 120 104 174 125 94 267 147 66 1097 14
Dokumentit Dokumentti Sivuja Versiot Esitutkimus 14 v0.1, v1.0 Projektisuunnitelma 32 v0.1, v1.0, v1.1 Käytettävyysarviointi 11 v0.1, v0.2, v0.3 Vaatimusmäärittely 34 v0.1, v1.0, v1.1, v1.2 Suunnitteludokumentit (3 dokumenttia) 32 v0.1, v0.2, v2.5 Käyttöliittymäsuunnitelma - - Testaussuunnitelma 30 v0.1, v1.0 Testausraportit 1 ja 2 1+1 v1.0 (molemmat) Käytettävyysarviointi 8 v1.0 Loppuraportti 19 v.1.0 Projektikertomus v.1.0 Viikkoraportit 23 v1.0 Ohjelmakoodin määrä Language PHP, HTML LOC 4734 (PHP) 3630 (HTML) SLOC 8203 Code revisions 2180 Vaikka työmääräarviosta jäätiinkin, niin kurssi työllisti kyllä paljon ja sovellus oli yllättävän hankala toteuttaa mm. erilaisten ristiinlinkitysten takia. Suurin osa työryhmästä joutui opettelemaan hyvin paljon uusien työkalujen ja ohjelmointikielen käyttöä eli siinäkin mielessä kurssin suorittamiseksi on nähty paljon vaivaa. Meidän ryhmän työtunnit jakautuivat aika paljon eli arvostelussa toivomme, että tämä otetaan huomioon. Ehkä yhteinen opintopistemäärä voisi olla 10:n paikkeilla ja muutamille eniten työtunteja tehneille sitten enemmän. 15
8 Johtopäätökset 8.1 Kokemukset projektista Projekti sujui loppujen lopuksi varsin hyvin. Projektiryhmäläiset olivat aidosti kiinnostuneita projektin toteuttamisesta eikä motivaatiosta ollut puutetta. Projektin onnistumisen kannalta oli tärkeää, että ryhmä tuli hyvin toimeen koko projektin ajan. Erään haasteen projektille toi toisen projektipäällikön asuminen Helsingissä ja työskentely kokopäiväisesti. Projektin johtaminen kaipaa kuitenkin selkeästi myös paikallaoloa ja kasvokkain tapahtuvaa kommunikointia ryhmän kesken. Onneksi toinen projektipäällikkö pystyi vetämään viikoittaiset tiimipalaverit läpi, koska muutoin projekti ei todennäköisesti olisi onnistunut. Meillä oli projektissa myös erittäin aktiivinen asiakas, mikä helpotti huomattavasti etenkin iteratiivisesti tapahtuvaa kehitystyötä. Me saimme nopeasti vastauksia ja kommentteja toteutettuihin asioihin jolloin niitä päästiin myös muuttamaan nopeasti halutunlaiseksi. Tietenkin lähtökohtana oli mahdollisimman tarkka vaatimusmäärittely jo ennen toteutuksen aloittamista, mutta käytännössä vaatimukset täsmentyvät kuitenkin vasta toteutuksen aikana. Meillä tällainen interaktiivinen työskentelytapa toimi hyvin. Projekti onnistui loppujen lopuksi ihan hyvin eli kaikki tärkeimmät vaatimukset saatiin sovellukseen. Käytettävyystestauksessa ei paljastunut mitään vakavia puutteita, lähinnä jotain viilaamista. Asiakkaan voidaan olettaa pystyvän tekemään projektin alussa määriteltyjä asioita valmistuneella sovelluksella, joten projektia voidaan pitää onnistuneena. 8.2 Mitä parantaa seuraavalla kerralla Vaatimusmäärittelyn voisi tehdä huolellisemmin kuin tässä projektissa. Jossain laajemmassa projektissa ei ole mahdollisuutta määritellä vaatimuksia ja muokata sovellusta kehityksen aikana kuin tässä oli. Iteraatioiden sisällön olisi voinut miettiä vielä tarkemmin etukäteen erillisellä suunnittelutapaamisella, tämä tosin olisi mutta kun ei ole kovin paljon kokemusta projektien vetämisestä, niin on hankalaa arvioida eri vaiheiden kesto. Samoin testaamisen olisi ehkä voinut aloittaa jo hieman aiemmin, jotta bugien korjaamiseen olisi jäänyt enemmän aikaa. 16
9 Hylättyjä ratkaisuvaihtoehtoja Projektin alkuvaiheessa toteutusalustaksi ajateltiin wiki-pohjaista järjestelmää, mutta siitä luovuttiin tallennettavien tietojen organisoinnin moniulotteisuuden ja aikasidonnaisuuden takia. 17
10 Jatkokehitysideoita Sovellukseen oli tarkoitus luoda visuaalinen aikajana kuvaamaan projektien tapahtumista, joista käyttäjä voisi yhdellä silmäyksellä nähdä helposti eri tapahtumien ajankohdat. Tällainen ominaisuus voisi olla hyödyllinen tulevaisuudessa toteuttaa. Käyttöoikeuksien rajaus voi olla myös tarpeellinen ominaisuus tulevaisuudessa, jos sovellus menee laajempaan käyttöön eri kaupunginosayhdistyksiin. Sovelluksessa olisi siis liitetty käyttäjätunnuksiin tietyt oikeudet käyttää sovelluksen eri toimintoja. Eräs alussa määritelty ominaisuus oli laajennettu haku, johon liittyi myös tallennetut haut. Näitä ei koskaan ehditty toteuttaa, mutta voisivat olla hyödyllisiä, jos käyttäjä joutuu tekemään paljon hakuja. 18
11 Kommentteja kurssista Kurssi on eräs laitoksen parhaista sekä niille, jotka tekevät projektityötä että niille jotka johtavat sitä. Kurssi on kuitenkin riittävän pitkä, että siinä ehtii toteuttaa riittävän laajan sovelluksen ja joutuu oikeasti organisoimaan projektiryhmän työskentelyä. Vastaavaa kokemusta ei ole mahdollista muilta kursseilta saada, ainoastaan työelämästä. Kokemukset työelämästä osoittavat, että yhä nykyään projektityöskentely ja sen johtaminen ovat haasteellisia asioita, joten kaikki lisäkoulutus sillä saralla on varmasti jokaiselle tietojenkäsittelytieteilijälle hyödyksi. 19