Tik-76.115 Loppuraportti

Ryhmä: Hayabusa, Aihe: Monrovia, Vastuu: Juha T. Vainio

Viimeksi päivitetty 2001-04-23 - Juha T. Vainio


Sisällysluettelo

1. Johdanto
2. Projektin eteneminen
3. Lopputulokset
4. Työmääräanalyysi
5. Jälkilaskelmat
6. Projektityöskentely
7. Kehitysnäkymät
8. Oppiminen
9. Kurssipalaute


1. Johdanto

Langattoman viestinnän tekninen kehitys on johtanut murrosvaiheeseen, jossa uudet teknologiat mahdollistavat muutoksen päätelaitteiden käyttökulttuurissa. Erityisen merkittäviä teknologioita ovat GPRS, joka mahdollistaa kohtuuhintaisen "always-connected" -yhteyden, sekä J2ME, joka mahdollistaa päätelaitteisiin dynaamisesti ladattavat sovellusohjelmistot. Nämä teknologiat yhdistäviä tuotteita odotetaan markkinoille jo vuonna 2001. Todennäköisesti päätelaitteet tulevat olemaan EPOC-puhelimia tai PDA-laitteita, joihin on integroitu GPRS-toiminnallisuus.

Projektin tavoitteena oli tuottaa ei-kaupallinen prototyyppi monen pelaajan seikkailupelialustasta, sekä alustan päälle rakennettu yksinkertainen peli. Alustan moninpeliprotokollan tuli olla optimoitu ohuisiin ja pitkiin langattomiin (GPRS) verkkoihin. Protokollan tuli toimia Client-Server -arkkitehtuurissa ja sen tuli käyttää UDP-protokollaa. Verkon kuormitus tuli minimoida ja toteutuksen tuli toipua kadonneista paketeista ja pitkistä tai vaihtelevista verkkoviiveistä.

Alustan esittelemiseksi tuli rakentaa yksinkertainen moninpeli.

2. Projektin eteneminen

Projekti on yleisesti ottaen edennyt täysin ajallaan, aikataulumuutoksia ei ole jälkikäteen tarvinnut tehdä, ja kaikki deadlinet on saavutettu kunnialla. Kaiken kaikkiaan voidaan sanoa, että kaikissa vaiheissa on etukäteen asetetut tavoitteet saavutettu.

Seuraavassa vaiheittaiset kuvaukset projektin etenemisestä.

2.1 Vaihe 1: Projektin suunnittelu

Sisältö:
  • Suunnitellaan projekti
  • Tehdään projektisuunnitelma
  • Tehdään vaatimusmäärittely
  • Resurssoidaan alustavasti
Kesto: 3 viikkoa
Deadline: 2000-10-16
Vaiheen edistymisraportti

Vaihe 1 oli kokonaisuuden kannalta projektiryhmältä huonoiten suoritettu vaihe. Kokematon projektipäällikkö ja suurehko ryhmä toivat hallinnallisia vaikeuksia, ja vaikka tavoitteet määrällisesti saavutettiinkin, laadullisesti jäi toivomisen varaa. Kolmen viikon suunnitteluvaihe meni äkkiä ja deadline tuli huomaamatta vastaan. Työmäärien arviointi oli huomattavan hankalaa ja lopputulos oli sen mukainen.

2.2 Vaihe 2: Toteutus 1

Sisältö:
Kesto: 3 viikkoa
Deadline: 2000-11-7
Vaiheen edistymisraportti

Vaihe 2 meni jo huomattavasti ensimmäistä vaihetta paremmin, vaikkei se valitettavasti kurssin arvostelussa näkynytkään. Ensimmäisen vaiheen puutteet saatiin suurelta osin korjattua ja toisen vaiheen tavoitteet lisäksi melko lailla hyvin saavutettiin. Dokumentaatioon jäi hieman epäselvyyksiä oikolukukäytännön laukeamisesta johtuen.

Tässä vaiheessa suurimpana ongelmana voidaan pitää ryhmän motivaatiota, joka alkoi rappeutua. Suunnittelua pidettiin turhana ja lähes kaikki halusivat jo kirjoittaa koodia. Tämä lienee suora seuraus projektiryhmän jäsenten taustasta ohjelmoijina, ei niinkään ohjelmistosuunnittelijoina. Projektipäälliköllä oli täysi työ saada ryhmä tekemään vaiheessa vaaditut tehtävät.

2.3 Vaihe 3: Toteutus 2

Sisältö:
Kesto: 5 viikkoa
Deadline: 2000-12-12
Vaiheen edistymisraportti

Kolmanteen vaiheeseen oli annettu aikaa kaksi viikkoa lisää edellisiin vaiheisiin verrattuna, mutta tehtävääkin oli paljon. Ryhmän jäsenten roolijako ja tehtävien resurssointi alkoi viimeinkin olla selkeää ja tällä olikin suuri merkitys vaiheen onnistumiselle. Tässä vaiheessa saatiin jo jotain konkreettista aikaan lopputuotetta ajatellen, nimittäin käyttöliittymän prototyyppi.

Edellisen vaiheen motivaatio-ongelmat helpottivat, vaikkeivät vielä kokonaan hävinneetkään. Tämä oli kuitenkin viimeinen vaihe, jossa pääpaino oli suunnittelussa, joten helpotusta oli luvassa.

Alustava testaussuunnitelma sai osakseen kritiikkiä sekä asiakkaalta, että kurssilta. Tämä oli toisaalta odotettavissakin, sillä kurssin tarjoama testaussuunnitelman pohja ei soveltunut juurikaan tarpeisiimme, vaan se jouduttiin kirjoittamaan uusiksi. Tämä, testauspäällikön kokemattomuus, ja testaussuunnitelman kirjoittamiseen kulunut suuri työmäärä aiheutti sen, että yksityiskohdat ja termit testaussuunnitelmassa jäivät hiomatta. Ongelma ei kuitenkaan ollut suuren suuri, sillä testausta tässä vaiheessa ei modulitestauksen lisäksi ollut tarvittu.

2.4 Vaihe 4: Toteutus 3

Sisältö:
Kesto: 9 viikkoa
Deadline: 2001-02-13
Vaiheen edistymisraportti

Vaihe 4 oli ensimmäinen täysin ongelmitta sujunut vaihe projektin aikana. Kaikilla oli mielekästä tehtävää riittävästi, motivaatio-ongelmat loistivat poissaolollaan, eikä kukaan lyyhistynyt liiallisen stressin alle, vaikka asetetut tavoitteet olivatkin erittäin kovat.

Asetetuista tavoitteista ainoa saavuttamatta jäänyt oli Monrovia-pelin käyttöliittymän täysi toimiminen Palm-kämmenmikrossa. Muuten kaikki tavoitteet, ja näin myös kaikki alunperin määritetyt lopullisen ohjelmiston ensisijaiset tavoitteet saavutettiin jo tässä vaiheessa.

Erikseen on vielä mainittava edellisessä vaiheessa erityistä kritiikkiä saanut testisuunnitelma, joka tässä vaiheessa oli aivan loistava ja sai ansaitsemiaan kehuja sekä kurssin, että asiakkaan puolelta.

2.5 Vaihe 5: Toteutus 4

Sisältö:
Kesto: 5 viikkoa
Deadline: 2001-03-20
Vaiheen edistymisraportti

Vaihe meni jälleen erinomaisesti, eikä ongelmia kohdattu. Käyttöliittymä saatiin toimimaan Palmissa hyvin. Testaus suoritettiin mallikkaasti ja peliin saatiin uusia ulottuvuuksia vihollisten ja lisätoimintojen muodossa.

2.6 Vaihe 6: Luovutus

Sisältö:
Kesto: 5 viikkoa
Deadline: 2001-04-24

Projektin viimeinen vaihe tuntui sujuvan jälleen nihkeämmin kuin edeltäjänsä. Ohjelmisto oli kutakuinkin valmiina, joten osalla ryhmän jäsenistä oli vaikeuksia löytää motivaatiota asioiden tekemiseen. Tehtävät olivat lisäksi erityyppisiä kuin mitä edellisissä vaiheissa oli totuttu resurssoimaan, joten resurssoinnissakin oli hieman vaikeuksia. Tehtävät saatiin kuitenkin kunnialla tehtyä, vaikkakin projektipäällikön mielenterveyden kustannuksella.

Ongelmalliseksi osoittautui opponenttiryhmän järjestelmä, joka vaati useiden tuntien valmistelun ja asennustyön ennenkuin testaukseen päästiin käsiksi. Opponentit kyllä tarjosivat testausmahdollisuutta työpaikallaan, mutta käytännössä tämä olisi ollut ns. napinpainallustestaus, jossa olisi suoritettu opponenttien ennalta tekemä testaussysteemi ja katsottu kuinka se toimii. Testausryhmän ambitiot olivat kuitenkin korkeammalla, joten oli rakennettava oma testausympäristö ja omat testiohjelmat.

3. Lopputulokset

Tässä kappaleessa käsitellään projektin alkuvaiheessa määriteltyjä tavoitteita ja projektissa saavutettuja tuloksia. Näitä analysoimalla selvitetään, kuinka hyvin projektiryhmä pääsi tavoitteisiinsa.

3.1 Projektisuunnitelman kymmenen tärkeintä lopputavoitetta

#TavoiteSaavutettuKommentti
1 Järjestelmä on toteutettu Java-ohjelmointikielelläKyllä Sekä käyttöliittymä, että palvelinohjelmisto on toteutettu käyttäen pelkästään Java-ohjelmointikieltä
2 Järjestelmä on asiakkaan mielestä demottavassa kunnossaKyllä Asiakas on tuonut julki tyytyväisyytensä demotilaisuuksissa
3 Järjestelmän osana toteutettu peli on monen pelaajan vuoropohjainen seikkailupeli Kyllä Ei kommenttia
4 Suurimmat viiveet pelissä eivät ylitä 10 sekuntiaEi tietoa Epäselvä tapaus. Ks. kappale 3.3
5 Pelin omaksumisen ja pelaamisen täytyy olla helppoaKyllä Asiakkaan luona järjestetty testaus, jossa asia todettiin
6 Dokumentaatio on asiakkaan mielestä laadullisesti ja määrällisesti riittävää Kyllä Asiakas on tuonut ilmi tyytyväisyytensä dokumentointiin
7 Jos vaatimukset eivät täyty, täytyy syyt olla tarkasti dokumentoitu Kyllä Ei kommenttia
8 Peliä pitää pystyä pelaamaan yhtäaikaisesti vähintään 10 pelaajaa Kyllä Peliä on testattu 12 pelaajalla yhtäaikaisesti ja todettu toimivaksi
9 Pelin keskeinen idea liittyy karttapohjaisuuteenKyllä Peli on karttapohjainen
10 Järjestelmä on toteutettu asiakkaan hyväksymillä resursseilla Kyllä Kaikki käytetyt resurssit ovat asiakkaan hyväksymiä

3.2 Vaatimusmäärittelyn vaatimukset

Nämä on esitetty niiltä osin kuin ne puuttuvat edellisestä taulukosta.

VaatimusTasoSaavutettuKommentti
Palvelin hoitaa pelaajien välistä yhteyttä Pakollinen Kyllä Järjestelmä on toteutettu siten, että pelaajien välillä ei ole suoria yhteyksiä
Yhteyden katkeaminen on huomattava ja osattava reagoida Suotava Kyllä Yhteyden katkeaminen huomataan ja siihen reagoidaan
Palvelin ei liity itse peliin muuta kuin alustana Suotava Kyllä Järjestelmä on toteutettu niin, että palvelimen päälle voi itse rakentaa haluamiaan pelejä
Käyttöliittymä on graafinen Pakollinen Kyllä Ei kommenttia
Palmin asettamat rajoitukset on huomioitava Pakollinen Kyllä Palmin ja Palmin ohjelmistojen rajoitukset on huomioitu
Pelissä voi liikkua Pakollinen Kyllä Ei kommenttia
Peliin voi kirjoittautua sisään (henkilökohtaiset tiedot) Suotava Kyllä Palvelin tunnistaa pelaajan käyttäjätunnuksesta ja salasanasta, jotka annetaan sisäänkirjoittautumisen yhteydessä
Peliä voi jatkaa, tiedot tallentuvat Suotava Kyllä Palvelin tallentaa pelaajan tiedot tämän poistuessa tai yhteyden katketessa
Pelissä voi luoda hahmon Suotava Kyllä Ylläpitäjä voi työkalulla lisätä ja poistaa hahmoja
Pelissä voi taistella Suotava Kyllä Pelissä voi taistella sekä toisia pelaajia että tietokoneen ohjaamia vihollisia vastaan
Pelissä voi puhua muille pelaajille Suotava Kyllä Ei kommenttia
Pelissä hahmo kehittyy Lisäominaisuus Kyllä Pelissä hahmo saa lisää elinvoimaa, lihasvoimaa ja kestävyyttä taistellessaan voitokkaasti
Pelissä on esineitä Lisäominaisuus Ei Pienen prioriteetin lisäominaisuus jätettiin pois suuremman prioriteetin tehtävien takia

3.3 Palm ja GPRS

Eräänä tavoitteena oli, että epäluotettavan langattoman verkon yli pitäisi pystyä pelaamaan peliä, eivätkä viiveet tällöin ylitä 10 sekuntia.

Projektiryhmä ei onnistuneesti kyennyt toteamaan tämän tavoitteen saavuttamista, sillä vasta viimeisen vaiheen lopulla saadun GPRS-puhelimen testaus jäi vähäiseksi. Peli saatiin toimimaan, mutta joko verkon tai infrapunayhteyden (Palmin ja GPRS-puhelimen välillä) bufferoinnin takia viive kasvoi 10 sekunnin tietämille useammin kuin olisi haluttu.

Varmuudella voitaneen sanoa, että viive ei johdu Monrovia-ohjelmistosta, mutta tarkempi analyysi jouduttiin jättämään ajan loppuessa. Seuraavilla asioilla kuitenkin todennäköisesti saataisiin tulosta aikaan ja mahdollisesti systeemi toimimaan:

3.4 Tehdyt dokumentit

Projektin aikana saatiin ohjelmiston lisäksi aikaan seuraavat dokumentit:

4. Työmääräanalyysi

Tässä kappaleessa käydään läpi projektiin käytettyjä tunteja tehtävien, henkilöiden ja tehtävälajien osalta.

4.1 Tehtävien vaiheittainen analyysi

4.1.1 Vaihe 1: Projektin suunnittelu

TehtäväToteumaSuunniteltu Syy poikkeamaan
Luennot3854 Kaikki eivät katsoneet kaikkia luentoja tarpeellisiksi
UML-opettelu010 Katsoimme UML:n käytön tässä projektin vaiheessa turhaksi
Projektisuunnitelman teon opiskelu86
MS Project -opiskelu45
Ryhmäpalaverit856 Mahdollinen ajatusvirhe resurssoinnissa, mahdollisesti unohtuneita merkintöjä tuntiraportoinneissa
Asiakaspalaverit1318
Projektin organisointi912
Asiakkaan toivomusten analysointi98
Vaatimusten järkevyyden pohdinta04 Merkitty suoraan vaatimusmäärittelyn kirjoitukseen
Vaatimusmäärittelyn kirjoitus98
Aikataulun suunnittelu11
Tehtävien jako11
Menetelmien valinta28 Osoittautui luultua helpommaksi
Riskisuunnitelma184 Tehty laajempi ja parempi riskisuunnitelma kuin aluksi ajateltiin
Resurssointi24
Projektisuunnitelman kirjoitus98
Seuraavan vaiheen suunnittelu34
WWW-sivujen suunnittelu ja valmistus08 Sivujen valmistus jätettiin tärkeämpien tehtävien tieltä

4.1.2 Vaihe 2: Toteutus 1

TehtäväToteumaSuunniteltu Syy poikkeamaan
OP: Luennot3442 Kaikki eivät ehtineet kaikille luennoille
OP: Rational Rose1228 Rational Rosea eivät päässeet opiskelemaan kaikki halukkaat
OP: Palmin ominaisuudet04 Koodaus jätettiin seuraavaan vaiheeseen, joten Palmin ominaisuuksiinkaan ei tarvinnut läheisemmin vielä tutustua
OP: Java05 Koodaus jätettiin seuraavaan vaiheeseen, joten Javaa ei vielä tarvinnut erikseen opetella
Ryhmäpalaverit2728
Asiakaspalaverit1212
Toiminnallinen määrittely, palvelin1216
Toiminnallinen määrittely, käyttöliittymä1214
Toiminnallinen määrittely, protokolla39 Protokollasta enemmän asiaa tekniseen määrittelyyn
Toiminnallinen määrittely, kirjoitus1035 Kirjoittajia oli vähemmän kuin oli suunniteltu
Tekninen määrittely, kaikki osa-alueet1947 Ks. yllä
WWW-sivujen päivitys910
Vanhojen dokumenttien päivitys104 Vanhoissa dokumenteissa oli paljon enemmän päivitettävää kuin alun perin kuviteltiin
Seuraavan vaiheen suunnittelu54

4.1.3 Vaihe 3: Toteutus 2

TehtäväToteumaSuunniteltu Syy poikkeamaan
OP: Java2716 Java-taitoja piti elvyttää
Ryhmäpalaverit2235 Kaikki eivät päässeet kaikkiin palavereihin
Asiakaspalaverit1012
Projektin organisointi35
Toiminnallisen määrittelyn päivitys413 Toiminnallinen määrittely oli paremmassa kunnossa kuin arvioitiin
Protokollan signaloinnin suunnittelu910
Protokollan PDUiden suunnittelu1410
Palvelimen ytimen suunnittelu610
Pelin käyttöliittymän suunnittelu107
PC- ja NPC-luokkien suunnittelu05 Luokkien suunnittelusta päätetään myöhemmin
Teknisen määrittelyn kirjoitus1913
Pelin käyttöliittymän koodaus145 Koodaukseen käytettiin enemmän aikaa paremman lopputuloksen aikaansaamiseksi
Pelin alustan koodaus210 Pelin alustaa ei tässä vaiheessa vielä tarvinnut sen kummemmin tehdä
Testaussuunnitelma115 Testaussuunnitelmasta tehtiin hieman yksityiskohtaisempi kuin alun perin suunniteltiin
Burana-raporttien teko014 Resurssoitu liikaa ja mahdollisesti jätetty merkitsemättä
Projektisuunnitelman muokkaus33
Dokumenttien oikoluku ja hiominen410 Oikoluvussa vähemmän tekemistä kuin alunperin ajateltiin
Seuraavan vaiheen suunnittelu85

4.1.4 Vaihe 4: Toteutus 3

TehtäväToteumaSuunniteltu Syy poikkeamaan
OP: Java512 Java-taitoja tuli elvytettyä jo edellisessä vaiheessa
OP: XML52 XML oli luultua tuntemattomampaa
Ryhmäpalaverit3749
Asiakaspalaverit620 Asiakaspalavereihin osallistuvien henkilöiden määrää karsittiin
Toiminnallisen määrittelyn päivitys48 Toiminnallinen määrittely oli valmiiksi hyvin ajan tasalla
Teknisen määrittelyn päivitys2712 Tekniseen määrittelyyn tuli paljon tarkennuksia koodin pohjalta
Palm-alustan koodaus127 Alusta koodattiin hyvin ja perusteellisesti
Pelin käyttöliittymän koodaus93 Käyttöliittymään tuli yllättävän paljon muutoksia
Alustan koodaus palvelimelle379 Alustasta tehtiin parempi ja hienompi. Lisäksi käytettiin aikaa alustan riippumattomuuden saavuttamiseksi
Pelin koodaus palvelimelle1215
Protokollan latausvaiheen koodaus1514
Protokollan pelinaikaisen toiminnan koodaus147 Protokollasta tuli monimutkaisempi kuin osattiin odottaa
Protokollan lopullinen integrointi palvelimeen ja Palmiin 2315 Hieman odottamattomia, mutta hyvin selvitettyjä ongelmia
Testaussuunnitelman yleinen viimeistely 12,53 Testisuunnitelmassa oli vielä paljon viimeisteltävää
Pelispesifisten testausten yksityiskohdat suunnitelmaan 46
Alustaspesifisten asioiden testaus suunnitelmaan 06 Alustan testaus on hoidettu muiden testien yhteydessä
Vaiheen aikana kehitettyjen toimintojen lisäys testisuunnitelmaan 36
Suunnitelman mukainen testaus1214
Testausraportin kirjoitus1612
Burana-raporttien teko 18 Burana-raporttien teko on hyvin nopeaa toimintaa, jolloin yksittäisten raporttien teko jää helposti merkitsemättä
Pelidatan luominen45
Ylläpitäjän käyttöohjeen kirjoitus55
Loppukäyttäjän käyttöohjeen kirjoitus32
WWW-sivujen päivitys 145 WWW-sivujen ulkonäköä on muokattu hienommaksi
Projektisuunnitelman päivitys23
Dokumenttien oikoluku1410
Seuraavan vaiheen suunnittelu55

4.1.5 Vaihe 5: Toteutus 4

TehtäväToteumaSuunniteltu Syy poikkeamaan
Ryhmäpalaverit2321
Asiakaspalaverit812
Toiminnallisen määrittelyn muokkaus04 Ei tullut tarvetta viilata toiminnallista määrittelyä enää
Teknisen määrittelyn muokkaus68
Käyttöliittymän toimintojen hiominen85
Käyttöliittymän koodin optimointi215 UDP:n täydellinen toimimattomuus Palmin virtuaalikoneessa aiheutti paljon lisätyötä
NPC- ja PC-hahmojen koodaus325 Örkkien tekoäly ja käyttäytyminen tehtiin vaatimustasoa paremmaksi
Pelin toiminnallinen koodaus65
Pelin yksityiskohtien koodaus06 Mitään sen kummempia yksityiskohtia ei peliin tehty, panostettiin enemmän örkkien toimintaan
Palvelinohjelmiston hiominen116
Palvelimen ylläpidettävyyden hiominen136 Ylläpitojärjestelmän rajapinnan teko oli luultua työläämpi
Protokollan laajentaminen118
Protokollan optimointi158 Edellämainittu UDP:n toimimattomuus Palmissa aiheutti lisämuutoksia protokollaan
Testisuunnitelman hiominen15 Testisuunnitelma oli jo viime vaiheen pohjalta erinomainen
Funktionaalinen testaus127 Testauspäällikkö kehitti paljon testicaseja, joiden testaukseen vierähti aikaa
Suorituskykytestaus27 Testaus suoritettiin pienemmillä resursseilla kuin oli suunniteltu
Käytettävyystestaus67
Testausraportin kirjoitus146 Testicasejen lukumäärästä johtuen myös raportin kirjoitus vei enemmän aikaa
Burana-raporttien toteutus27 Buranan käyttö on niin nopeaa, että tunnit on yleensä tullut merkittyä testauksen tai koodauksen yhteyteen
Projektin hallinnointi55
Loppukäyttäjän käyttöohjeen kirjoitus42
Ylläpitäjän käyttöohjeen kirjoitus810
Projektisuunnitelman päivitys23
WWW-sivujen päivitys 05 Oskarin ollessa sairaana hän ei pystynyt päivittämään WWW-sivuja
Pelidatan luonti 51 Pelidataa tarvittiin tässä vaiheessa enemmän kuin osattiin odottaa
Dokumenttien oikoluku 37 Oskarin ollessa sairaana hän ei ehtinyt suorittamaan paljon oikolukemista
Seuraavan vaiheen suunnittelu55

4.1.6 Vaihe 6: Luovutus

TehtäväToteumaSuunniteltu Syy poikkeamaan
Ryhmäpalaverit2935
Asiakaspalaverit06 Asiakaspalaverit katsottiin turhiksi, koska yksityiskohdat olivat jo selvillä edellisen vaiheen jälkeen
Bugien korjaus58
Koodin viimeistely68
Funktionaalinen testaus33
Suorituskykytestaus03 Koodia muutettiin niin vähän, ettei suorituskykytestausta enää tässä vaiheessa tarvittu
Käytettävyystestaus03 Käytettävyystestaus suoritettiin tässä vaiheessa asiakkaalla
Asiakkaan suorittaman testauksen valvominen34
Testausraportin kirjoitus73 Joku on laittanut opponenttirestausraportin kirjoituksen tunteja väärään paikkaan
Järjestelmän valmistelu opponenteille510 Ei ollut paljon valmisteltavaa
Opponenttien järjestelmän testaus2715 Systeemin monimutkaisuuden vuoksi asennustyöhön meni aikaa
Projektin hallinta54
Asiakaskoulutus106
Lopullisen pelidatan luonti1112
Burana-raporttien toteutus07 Buranaa ei tässä vaiheessa paljon tarvinnut käyttää
Pelinkehittäjän opas, rakenteen suunnittelu3,56
Pelinkehittäjän opas, kirjoitus108
Pelinkehittäjän opas, viimeistely14 Viimeistely on merkitty osittain kirjoitusosioon
Vanhojen dokumenttien päivitys27 Dokumentit olivat jo hyvällä mallilla
Dokumenttien oikoluku 52
WWW-sivujen päivitys 01 Sivut olivat jo hyvät
Loppuraportin kirjoitus 128

4.2 Henkilökohtaiset työtunnit

Ryhmän jäsenPS-vaiheT1-vaiheT2-vaihe T3-vaiheT4-vaiheLU-vaiheYhteensä Kommentti
Juha T. Vainio54 / 6038 / 3231 / 31 37 / 3045 / 3634 / 30239 / 219 Kaikenlaista ennalta-arvaamatonta työtä ilmeni lähestulkoon joka vaiheessa
Oskari Mertalo13,5 / 4015 / 3716 / 38 37 / 4013 / 3225,5 / 35120 / 222 Oskarin työpanokset ovat olleet epätasaisia mutta loppuvaiheissa löytyy hieman yritystä
Anssi Kanninen16,5 / 2020 / 4069 / 40 67 / 4146 / 2815 / 20233,5 / 189 Anssi on tehnyt loistavaa ja hyvää työtä joka vaiheessa
Christian Jalio30 / 2041 / 4021 / 36 60 / 3833 / 2631 / 24216 / 184 Jalio on tehnyt myös hyvää työtä kaiken aikaa
Joni Pajarinen18 / 2035 / 4120 / 37 32 / 4053 / 2624 / 24182 / 188 Joninkaan työssä ei ole ollut valittamista
Ilpo Nyyssönen16,5 / 2026 / 4025 / 37 50 / 4232 / 2727 / 22176,5 / 188 Mainiota ja laadukasta toimintaa palvelimen ja ylläpidon parantamiseksi
Jarmo Mäki20 / 2016 / 4035 / 41 51,5 / 4130 / 2726 / 23178,5 / 192 Jarmo on tehnyt tasaisen hyvää työtä projektin aikana
Yhteensä168,5 / 200191 / 270217 / 260 334,5 / 272252 / 202182,5 / 178 1345,5 / 1382

4.3 Tuntien jakautuminen tehtävälajeittain

TehtävälajiSelitysTunnit Prosenttia työmäärästä
AATK-ylläpito524 %
DDokumentointi26920 %
KKokoukset23518 %
LLuennot625 %
OOhjelmointi28121 %
SSuunnittelu21116 %
TTestaus665 %
UOpiskelu796 %
PProjektin hallinta413 %

5. Jälkilaskelmat

5.1 Määrärahojen käyttö

Projektisuunnitelmassa määritettiin projektin alussa projektin hinnaksi 525.000mk (e 88.235), jakautuen seuraavasti:

Projektin todelliset kulut olivat seuraavat:

Projekti pystyttiin siis vetämään loppuun saakka myönnetyillä määrärahoilla, lopulliseksi hinnaksi muodostui 488.600mk (e 82.118). Tämä tarkoittaa käytännössä 36.400mk:n bonusta projektiryhmälle. Bonus voidaan hyväksyä laatupalkinnon muodossa.

5.2 Ohjelmiston koko

Ohjelmiston lopulliseksi kooksi tuli 8.827 riviä ja se jakaantui seuraavasti ohjelmiston eri osiin:

5.3 Ohjelmiston tunnetut virheet

Ohjelmistossa ei ole luovutushetkellä tunnettuja virheitä. Ainoa sulkematon bugiraportti on virhetilanteesta, joka ei johdu ohjelmistostamme: Kun Monrovia-pelistä poistuu erikseen sulkematta yhteyttä, soketit jäävät auki ja takaisin peliin kirjoittautuminen ei onnistu. Tämä johtuu J2ME:ssä olevasta bugista, eikä siihen valitettavasti voi vaikuttaa. Tämä pitää huomioida peliä pelattaessa ja muistaa sulkea yhteys erikseen ennen pelistä poistumista.

6. Projektityöskentely

Projektiryhmä ei käyttänyt mitään hirveän eriskummallisia ohjelmistotuotannon menetelmiä projektin aikana. Tämä johtui suurelta osin siitä, että projektipäällikön tausta on tietoliikenneohjelmistoista, eikä ohjelmistotuotannon alueelta. Tässä kappaleessa kuitenkin esitellään käyttämiämme menetelmiä ja työkaluja.

6.1 Riskit!-menetelmä

Riskienhallintasuunnitelma tehtiin riskit-menetelmää käyttäen ja se osoittautuikin erittäin hyväksi. Useita riskejä tunnistettiin heti alussa ja näin saatettiin huolehtia siitä, että riskit eivät toteudu projektin edetessä. Riskienhallintasuunnitelmaa pidettiin silmällä ja tarkennettiin projektin edetessä ja käytännössä toteutuneilta riskeiltä vältyttiin täysin.

6.2 Hajoita ja hallitse -menetelmä

Projektin hallinassa käytettiin jo muinaisten ohjelmistotuottajien kehittämää hajoita ja hallitse -menetelmää. Projekti jaettiin loogisiin osakokonaisuuksiin ja niille asetettiin omat vastuuhenkilönsä ja/tai -ryhmänsä.

Tämäkin menetelmä toimi erinomaisesti, osaprojektien päälliköt hoitivat ryhmiensä johdoissa tehtävänsä ja kaikki saatiin ajallaan valmiiksi.

6.3 USDP-menetelmä

Projekti on tehty iteratiivisuuteen ja inkrementaalisuuteen perustuvaa USDP-menetelmää (Unified Software Development Process) käyttäen, eli jokaisessa vaiheessa on vanhat dokumentit tarkastettu ja päivitetty, ja ohjelmistoa kasvatettu toimivissa inkrementeissä. Ohjelmisto on jokaisessa toteutusvaiheessa käynyt läpi USDP-inkrementin, eli muutokset on suunniteltu ja ohjelmoitu, ja vaiheen lopulla ohjelmisto on aina testattu täydellisesti.

USDP-menetelmä otettiin käyttöön kurssin painostuksesta, ja on osoittautunut ihan toimivaksi. Epäilemättä kuitenkin projekti olisi saatu kunnialla loppuun myös käyttämällä jotain kilpailevaa prosessimallia, kuten vesiputousmenetelmää. USDP:n käyttö on ajoittain aiheuttanut kitkaa projektiryhmän sisällä, joten siitä saavutetut edut ja haitat menevät suurin piirtein tasan. Em. kitka liittyy tarkemmin USDP:n osittain paikallaan junnaavaan luonteeseen, kun taas projektiryhmän jäsenet ovat tottuneet enemmänkin vesiputousmallin suoraviivaisesti etenevään prosessiin.

6.4 Edistymisen seuranta

Projektin edistymistä seurattiin satunnaisen sähköpostikirjeenvaihdon lisäksi jokaviikkoisissa viikkopalavereissa, joihin osallistuivat kaikki projektiryhmän jäsenet. Näissä palavereissa käytiin tehtävä tehtävältä läpi kaikki ajankohtaiset asiat ja pidettiin huolta, että kaikilla alueilla tapahtuu edistystä ja kaikki asiat saadaan valmiiksi ajallaan.

Menetelmä toimi hyvin koko projektin ajan, sillä kaikki tehtävät tulivat ajallaan tehdyiksi.

6.5 Versionhallinta

Ohjelmiston ja dokumenttien versiot hallittiin CVS-versionhallintajärjestelmällä. Tiedostoja sai editoida kuka tahansa milloin vain, kunhan muisti aina päivittää hakemiston, sitouttaa muutokset järjestelmään ja yhdistää versiot automaattiyhdistämisen epäonnistuessa.

6.6 Tuntien seuranta

Tuntimäärän seurantaan käytettiin kurssin tukemaa Tirana-järjestelmää, joka osoittautui ihan toimivaksi silloin kun ryhmän jäsenet muistivat tai jaksoivat tunteja syöttää. Tirana-järjestelmän hitaus ja toimimattomuus muilla kuin Internet Explorer -selaimella vaikutti asiaan. Tiranassa voisi myös olla mahdollisuus syöttää kerralla useamman päivän tunteja nopeammin.

Tilastotietoa tunneista sai hyvin kurssin tarjoamalta ViCA-järjestelmältä. Se toimi moitteetta sekä Internet Explorerissa, että Operassa, mutta oli Tiranan tavoin erittäin hidas.

6.7 UML ja Rational Rose

Luokkakaavioita tehtiin tekniseen määritelmään käyttäen UML (Unified Modeling Language) -kieltä. Kurssin puolelta tuettiin Rational Rose -ohjelmiston käyttöä, joten UML-kaaviot tehtiin tätä käyttäen.

UML osoittautui tehokkaaksi ja hyväksi tavaksi kuvata ohjelmiston protokollaa ja Javan luokkahierarkioita. Rational Rose hoiti hommansa erinomaisesti, mutta ongelmia aiheutti itse ohjelman hankinta. Kaikkea suunnittelutyötä kun ei pystynyt tekemään ohjelmatyöluokassa, vaan täysipainoinen ohjelmatyön suorittaminen vaati, että kaikki käytettävät ohjelmat ovat saatavilla kotona. Linux-ihmiset olivat Rational Rose -asiassa erityisen huonossa asemassa.

7. Kehitysnäkymät

Monrovia-alustalle on nähtävissä hyvät kehitysnäkymät, sillä järjestelmä ohjelmoitiin laajennettavuutta kaiken aikaa silmälläpitäen.

Käyttöliittymän muokkaus EPOC-käyttöjärjestelmällä toimivaksi olisi varmasti erinomainen hanke. Peli saattaa toimia mainiosti Nokian tulevalla 9210 Communicatorilla, jossa on EPOC-käyttöjärjestelmä.

Käyttöliittymä on tällä hetkellä mustavalkoinen, mutta jo tällä hetkellä on olemassa Palmeja, joissa on värinäyttö. Lisäksi edellämainitussa Nokia 9210 Communicatorissa on värinäyttö. Värillisyys on siis eräs erittäin varteenotettava kehitysehdotus.

8. Oppiminen

8.1 Juha T. Vainio

8.2 Oskari Mertalo

8.3 Anssi Kanninen

8.4 Christian Jalio

Ei oppinut kurssilla mitään uutta

8.5 Joni Pajarinen

8.6 Jarmo Mäki

8.7 Ilpo nyyssönen

9. Kurssipalaute

Kurssi oli erinomaisesti järjestetty ja ainakin TML-laboratorion kursseihin verrattuna käytännön asiat toimivat erittäin hyvin. Vaiheiden arvostelut tulivat nopeasti, vaikka arvosteltavaa olikin paljon, eikä tarvinnut kuukausikaupalla kysellä perään.

Projektiryhmässä keskustelua on aiheuttanut eri assistenttien hieman erilaisilta tuntuvat arvosteluperusteet, samoin kuin projektien keskinäinen erilaisuus. Kaikkien projektien pakottaminen samanlaiseen muottiin, vaikka projektien luonne saattaa olla hyvinkin erilainen, saattaa vaikeuttaa toisten projektien suorittamista.

Projektissa käytettävät kurssin tarjoamat työkalut ovat myös saaneet kritiikkiä osakseen. Vaikka työkalut ovat hienoja ja toimintaperiaatteet perin hyödyllisiä, on niiden hitaus monesti aiheuttanut ongelmia. Jopa siinä määrin, että kaikkien projektin jäsenten kaikkia tunteja ei välttämättä ole esim. Tiranaan syötetty. Lisäksi työkalut tuntuvat toimivan oikein ainoastaan Internet Explorerilla. Operalla on lähes mahdoton käyttää Tiranaa (syötetyt tunnit menevät kantaan ehkä n. joka kolmannella kerralla), ViCA taasen ei toimi ollenkaan Netscapessa (jos sitä nyt kukaan edes haluaisi käyttää).