LOPPURAPORTTI. Polku http://code.google.com/p/polku-projekti/ Versio 1.0. Projektiryhmä



Samankaltaiset tiedostot
ESITUTKIMUS. Polku Versio 0.1. Projektiryhmä

ESITUTKIMUS. Polku Versio 1.0. Projektiryhmä

VAATIMUSMÄÄRITTELY. Polku Versio 1.1. Projektiryhmä

VAATIMUSMÄÄRITTELY. Polku Versio 1.2. Projektiryhmä

PROJEKTISUUNNITELMA. Polku Versio 1.1. Projektiryhmä

PROJEKTISUUNNITELMA. Polku Versio 0.1. Projektiryhmä

Figure 1: Projektipäälliköt Juha-Pekka Honkavaara ja Juha Mattila

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

LOPPURAPORTTI Paperikonekilta Versio 1.0

Internet-pohjainen ryhmätyöympäristö

1 Aateliset. 1.1 Johdanto. 1.2 Organisaatio

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

PS-vaiheen edistymisraportti Kuopio

AS Automaatio- ja systeemitekniikan projektityöt

TIEA4 Projektityö, 5-10 op.,

Mökkivarausjärjestelm

MINNO Metropolia Loppukatselmus. Kotisatama Järjestelmät

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

EDISTYMISRAPORTTI - PS Virtuaaliyhteisöjen muodostaminen Versio 1.0

Esitutkimus. Luuppi, versio 1.0. Petri Ikävalko Panu Tunttunen.

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

TIEA4 Projektityö, 5-10 op.,

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

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

Lohtu-projekti. Testaussuunnitelma

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

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Menetelmäraportti - Konfiguraationhallinta

SOVELLUSPROJEKTIN ARVIOINTILOMAKE

Kieliaineistojen käyttöoikeuksien hallinnan tietojärjestelmä

Vastuu- ja tehtäväalueet sekä tiedonvälitys OSCu-kursseilla

PROJEKTIN OHJAUS JA SEURANTA JOUNI HUOTARI

AS Automaatio ja systeemitekniikan projektityöt Projektisuunnitelma Syksy 2009 A09 05 OSGi IRC Bot For Coffee Maker

Newsletter Manager Extensions - Loppuraportin tiivistelmä

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

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

Four Ferries Oy:n nopea kokeilu Helsingin kouluissa Helsingin koulujen nopeiden kokeilujen ohjelma II, kevätlukukausi 2019

Projektityö

Projektisuunnitelma. Luuppi verkkoportaali. versio 1.2

Ylläpitodokumentti Mooan

Scrumjatkuvan palvelun DWprojektissa-case. Niina Mäkiranta & OP-scrum-tiimi Aureolis Oy

T Testiraportti - järjestelmätestaus

Loppuraportti. Matematiikan oppifoorumi. Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen. Ohjaaja.

KÄYTETTÄVYYSTESTAUS OSANA KETTERÄÄ KEHITYSTÄ

Toteutusvaihe T3 Digi-tv: Edistymisraportti

SEPA päiväkirja. Dokumentti: SEPA_diary_EM_PV.doc Päiväys: Projekti : AgileElephant Versio: V0.9

1 TILATAR. 1.1 Yleistä. 1.2 Projektiorganisaatio

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

Projektisuunnitelma Viulu

Convergence of messaging

Playoff kokouspöytäkirja 4

Hajautettu Ohjelmistokehitys

Lakki. Lisää ot sik k o osoit t am alla. Nöyrästi vain lakki kourassa... Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi 2010

Siimasta toteutettu keinolihas

Reilun Pelin työkalupakki: Kiireen vähentäminen

UCOT-Sovellusprojekti. Testausraportti

Testaussuunnitelma. Polku versio 1.0. Projektiryhmä. Janne Pihlajaniemi. Antti Jämsén.

Proffa ilmoittautumisen profiloija

KÄYTTÄJÄKOKEMUKSEN PERUSTEET, TIE-04100, SYKSY Käyttäjätutkimus ja käsitteellinen suunnittelu. Järjestelmän nimi. versio 1.0

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

Dokumentin nimi LOGO:) Tampereen teknillinen yliopisto. Ryhmä XXX: Projektiryhmän nimi Projektin nimi

UTIFLEET-VARAUSJÄRJESTELMÄ KÄYTTÄJÄN OHJE. Gospel Flight ry

Testaussuunnitelma Labra

BLOGGER. ohjeita blogin pitämiseen Googlen Bloggerilla

A4.1 Projektityö, 5 ov.

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

File [Otsikko] Projektisuunnitelma. SPT2014 Selvitysprojekti projektihallinnan työkaluista

T Testiraportti - integraatiotestaus

Projektisuunnitelma Nero-ryhmä

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

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

Power Steering for ATV

Chess Action Game (Shakkiseikkailu)

Kuopio Testausraportti Asiakkaat-osakokonaisuus

Yhteenvetodokumentti. myva. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Oppilaiden motivaation ja kiinnostuksen lisääminen matematiikan opiskeluun ja harrastamiseen. Pekka Peura

Kuopio Testausraportti Kalenterimoduulin integraatio

Toteutusvaihe T2 Edistymisraportti

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

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

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

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

ohjeita kirjautumiseen ja käyttöön

Kuovi-Sovellusprojekti. Vaatimusmäärittely

Tuottavatko pilotoinnit tuloksia riittävän nopeasti käytännön hankkeiden kokemuksia

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

Santeri Saarinen Korjattu testaustasoja ja tehty tarkennuksia I1-testaukseen

Ryhmä (11) Numeropankki

Aika Vaihe Lopputulos

ecome Markkinoiden kehittynein julkaisujärjestelmä

OTM-HANKE. Opintohallinnon tietojärjestelmän modernisointi - tilannekatsaus

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

PLA Mobiiliohjelmointi. Mika Saari

LC Profiler. - Oppimisympäristön keskeisiä piirteitä. Antti Peltonen, LC Prof Oy

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

Paperiton näyttösuunnitelma

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2016

PROJEKTISUUNNITELMA. FotMana17

PROJEKTIN LOPPURAPORTTI

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

Transkriptio:

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