240 likes | 366 Views
T-76.115 Projektikatselmus. fifty-sixty Iteraatio 2 9.2.2005. Projektin tilanne (15 min) I2-vaiheen tavoitteiden saavuttaminen Palautettavien dokumenttien tila Toteutuneet tehtävät Työtunnit henkilöittäin Muut mittarit Muutokset projektiin Riskit Iteraatiovaiheen tulokset (20 min)
E N D
T-76.115 Projektikatselmus fifty-sixty Iteraatio 29.2.2005
Projektin tilanne (15min) I2-vaiheen tavoitteiden saavuttaminen Palautettavien dokumenttien tila Toteutuneet tehtävät Työtunnit henkilöittäin Muut mittarit Muutokset projektiin Riskit Iteraatiovaiheen tulokset (20 min) Palautettavat dokumentit Testidokumentaatio Käyttöohjeen hahmotelma Päivitetyt dokumentit Projektisuunnitelma Vaatimusmäärittely Tekninen määrittely SEPA-päiväkirjat Muut dokumentit Käyttöliittymähahmotelmat Toteutetut järjestelmät www-palvelu (tärkeimmät käyttötapaukset toteutettu) Mobiilikäyttöliittymä (tärkeimmät käyttötapaukset toteutettu) Käytetyt työmenetelmät (5 min) Kysymyksiä (5 min) Agenda
Projektin esittely • Prediction League -projekti on osa Helsinki Institute for Information Technologyn (HIIT) Mobile Content Communities (MC2) tutkimusprojektia, jossa tutkitaan mobiilipelejä ja niihin liittyviä ilmiöitä. • Ideana on yhdistää veikkaaminen, siihen liittyvä sosiaalinen kanssakäynti ja mobiliteetti. • Tavoitteena on rakentaa veikkausliigajärjestelmä, jonka avulla yhteisöt voivat pystyttää omia veikkausliigojaan haluamistaan kohteista ja seurata niiden etenemistä www-selaimen avulla ja soveltuvin osin myös mobiilisti. Internet
Iteraation tavoitteiden saavuttaminen • Uuden palvelimen käyttöönotto (OK) • Palvelu pystytetty uudelle palvelimelle. • www-puolen loput perustoiminnallisuudet (OK) • Miniliigan luominen pohjien avulla (templatet: tulos-, sija-, voittajaveikkaus) • Miniliigan sulkeminen • Avoimien miniliigojen selaaminen • Liittyminen avoimeen miniliigaan • Tuttavan kutsuminen liigaan • Tilastojen ja pelihistorian selaaminen • Ilmoitustaulu ja kuvataulu • Puhelinkäyttöliittymän loput perustoiminnallisudet (OK) • Top-listojen selaaminen • Viestin lähettäminen ilmoitustaululle • Käyttöohjeen hahmotelma (OK) • Järjestelmällinen testaus (OK) • www-puoli testattu kolmessa eri ympäristössä: Mozilla (Win+Linux) ja IE (Win) • Mobiilipuoli testattu Nokia 6600 –puhelimella. • Käyttäjätestaus suunniteltava ja toteutettava (Suunnittelu OK, toteutus jatkuu seuraavassa iteraatiossa) • Anttonin ja Aten SEPA. • Käytettävyystestaus (OK) • Toteutettiin koko ryhmän voimin. • Henkilökohtaisten harjoituspäiväkirjojen (SEPA) täydentäminen (OK) • tapaamiskäytännöt • refaktorointi • staattiset menetelmät • käyttäjätestaus
Palautettavien dokumenttien tila • Iteraatiosuunnitelma • OK. Palautettu 8.12.2004 • Tekninen määrittely (päivitetty) • OK. Tarkennettu rajapintojen kuvauksia. • Sovittu asiakkaan kanssa lopullinen sisältö. • Testi-caset (päivitetty) • OK. Testimatriisiin lisätty uusia testejä ja testit suoritettu. • Testiraportti ja –loki • OK. Testiraportti ja –loki kirjoitettu. • Projektisuunnitelma (päivitetty) • OK. Kulutettujen työtuntien osalta päivitetty. • Iteraation 2 –suunnitelma lisätty. • Riskilokia päivitetty. • Vaatimusmäärittely (päivitetty) • OK. Käyttötapaukset päivitetty • Henkilökohtaiset harjoituspäiväkirjat (SEPAt) • OK. Uutena aiheena käyttäjätestit • Käyttöohjeen hahmotelma • OK. • Hallinnolliset dokumentit • Agendat ja muistiot tapaamisista löytyvät projektiryhmän kotisivulta
Toteutuneet tehtävät • Tapaamisiin kulutetut tunnit lähellä suunniteltua • Suunnittelussa otettiin nyt huomioon, että kaikki ryhmästä eivät kuitenkaan pääse aina paikalle ja kaikkia ei aina tarvita • Ohjelmoinnin kohdalla heilahteluja tasaisesti molempiin suuntiin • Työtuntien tarkka arviointi mahdotonta etukäteen • Kokonaisuudessaan ohjelmointityön arviointi osui kuitenkin aika lähelle • Käyttäjätestausta lykättiin • Raportit ja valvotut testit tehdään vasta seuraavan iteraation puolella (~ 20 h) • Seuraavan iteraation suunnitteluun lasketut tunnit puuttuvat (~10 h) • Jonkin verran heilahteluja, mutta kokonaistuntimäärä pysyy samana • SEPA-työt (- 4,5 h) • Katselmointiraportin teko (- 7 h) • Testauksen valmistelut (+ 6,5 h) • Mobiilipuolen käytettävyyden parantaminen (+ 10,5 h)
Työtunnit henkilöittäin Suunnitelma I2-vaiheen alussa I1-vaiheen toteutuneet tunnit • Ohjelmointiryhmän (sinisellä) työtunnit (-17 h) • Joitakin käyttötapauksia tehtiin jo edellisessä iteraatiossa, jolloin tunnit eivät näy tässä. • Heikin tunteihin vaikutti muutto Hyvinkäälle • Testaus- & laaturyhmän (vihreällä) toteutuneet työtunnit (- 18,5 h) • Käyttäjätestaus jatkuu vielä seuraavassa iteraatiossa (~ 20 h) • Jatkossa • Käyttäjätestaus suoritetaan kahden seuraavan viikon aikana loppuun, jolloin kiritään heti n. 20 tuntia • Kaikki I2-vaiheen tunnit eivät ole toteutuneet vielä • Oheiseen suunnitelmaan lisätty kaikille tähän iteraatioon 1,5 tuntia iteraatiosuunnittelua varten Viimeisin suunnitelma
Suunnitellut vs. toteutuneet työtunnit • Vasemmalla puolella suunnitellut tunnit, oikealla puolella toteutuneet tunnit • Keltaisella projektipäällikkö, vihreällä laatu- & testausryhmä ja sinisellä ohjelmointiryhmä • Ohjelmointiryhmä (sinisellä) • Heikillä muutto Hyvinkäälle sotki aikatauluja, kirittävää hieman seuraavassa iteraatiossa • Testaus- & laaturyhmä (vihreällä) • Käyttäjätestaus kesken, näkyy eniten Anttonin tunneissa • Työtuntien mukaan painopiste tässä iteraatiossa selvästi tällä ryhmällä • Jatkossa • Jatketaan viimeinen vaihe samaa rataa • Projektipääällikön oltava varovainen, ettei tunnit ylity liikaa
Laatumittarit Bugimittarit • www-käyttöliittymä testattiin kolmessa eri ympäristössä, mobiili yhdessä • Bugiraportointiin käytetään Bugzillaa • www-käyttöliittymän järjestelmätestauksessa estäviä ja kriittisiä bugeja löydettiin kolme. Ne korjattiin välittömästi. • Pistelasku ei toiminut. • Pääliigan pystyi tuhoamaan kuka tahansa • Winner-Looser veikkauksen tuloksia ei voinut kirjata • Mobiilikäyttöliittymässä vain yksi pieni bugi • Back-näppäin ei toimi, jos liigassa ei ole avoimia kohteita • Java-koodeja analysoitiin staattisesti myös Jlint ja CCCC-ohjelmilla. (osa SEPA-harjoitusta) • Jlint ei löytänyt mitään kriittisiä ongelmia • Ote CCCC:n raportista oheisessa kuvassa:
Laadun arviointi • Testattiin toteutettujen käyttötapausten perustoiminnallisuutta ja testit laadittiin siltä pohjalta. • Testien suorittaminen hyvin suoraviivaista ja nopeaa, aikaa kului yhteensä arviolta 15,5 h • Käytettävyyttä tutkittiin erillisessä käytettävyyssessiossa • Löydettiin 23 parannusehdotusta, joista lähes kaikki toteutettu • Laatu vastaa toistaiseksi asetettuja tavoitteita: • Perustoiminnallisuus valmis • Kriittisiä tai estäviä bugeja ei ole • Jäljellä olevat lievemmät bugit korjataan heti seuraavan iteraation alussa Selitykset Kattavuus: 0 = ei mitään 1 = katsottu pikaisesti 2 = kaikki toiminnot tarkastettu 3 = testattu Laatu: J = hyvä K = ei varmuutta L = huono
Ohjelmakoodin pituus (LOC) • www-käyttöliittymä • Koodeja tutkittiin refaktoroinnin yhteydessä. Erillistä työkalua ei käytetty ohjelmakoodin laskemiseen vaan se laskettiin käsin • 48 tiedostoa • 6932 riviä koodia, joista n. puolet HTML-koodia ja puolet PHP-koodia. (ennen refaktorointia 6996 riviä) • 1342 riviä kommentteja • Mobiili käyttöliittymä • Java-koodeja tutkittiin CCCC-työkalulla, tarkempaa tietoa SEPA-dokumentissa (Static methods, Jeremias Raime ja Ari Kuvaja) • Moduuleja 51 • 2750 riviä Java-koodia (ilman kommentteja) • 1444 riviä kommentteja • Huomioita • Koodin määrä n. kaksinkertaistunut edellisen iteraation jälkeen, joten koodaustahti on ollut suurinpiirtein samaa kuin edellisessä iteraatiossakin • Trapolin mukaan 3 henkilöä on kuluttanut yhteensä 266.50 h ohjelmointiin (edellisessä iteraatiossa 113 h) ~ 47 riviä koodia/h (edellisessä iteraatiossa ~57 riviä koodia/h)
Muutokset projektiin • Asiakkaalta saatiin palvelin käyttöön. www-käyttöliittymä toimii nyt asiakkaan palvelimella. • Projektipäällikkö kertausharjoituksissa 14.-16.3. • Loppudemot ovat 16.-17.3. joten Anttoni hoitaa esityksen, jos projektipäällikkö ei pääse paikalle.
Riskit • Riskilokissa on edelleen 23 suunnitteluvaiheessa havaittua ja I1-iteraatiossa päivitettyä riskiä. • Näistä 22 on enää ajankohtaisia sillä asiakas on järjestänyt palvelimen projektin käyttöön ja jossa koko kehitys tapahtuu jo • Ajankohtaisia riskejä I2-iteraation jälkeen mm.: • Projektin avainhenkilö sairastuu tai jättää kurssin kesken • Tietokone rikkoontuu ja tallennetut tiedot häviää • Asiakkaan mielestä järjestelmä ei ole hyvä • Projektin työmäärä ei pysy kurssin puitteissa • Riskit hallittu seuraavasti: • Jokaisella osa-alueella (johtaminen, web-kehitys, mobiilikehitys) on ainakin kaksi henkilöä, joista yksi on vastuussa ja toinen varalla • CVS:n avulla varmistetaan, että aina uusimmat versiot koodeista ja dokumenteista ovat tallessa CVS-palvelimella • Pidetään palavereita HIIT:n ja Veikkauksen kanssa, jotta asiakas pysyy ajan tasalla järjestelmän tilasta ja kehityksen suunnasta • Karsitaan tarvittaessa pienellä prioriteetilla olevia vaatimuksia, toteutetaan ensin kriittiset ja tärkeät vaatimukset
I1-vaiheen tulokset • Palautettavat dokumentit • Testidokumentaatio • Käyttöohjeen hahmotelma • Päivitetyt dokumentit • Projektisuunnitelma • Vaatimusmäärittely • Tekninen määrittely • SEPA-päiväkirjat • Toteutetut järjestelmät • www-palvelu (peruskäyttötapaukset toteutettu) • Mobiili käyttöliittymä (peruskäyttötapaukset toteutettu)
Testidokumentaatio • Testi-caset täydennettyinä testimatriisissa (Excel-tiedosto) • Testiraportti kirjoitettu testien pohjalta • Lokiin listattu 14 löydettyä bugia, jotka syötetty myös Bugzillaan
Käyttöohjeen hahmotelma • Useimmat käyttäjät eivät lue ohjeita -> pystyttävä käyttämään ilman erillisiä ohjeitakin • Järjestelmän kuvaus pääsivulle, joten kaikki saavat perustiedot • Yksinkertaiset ja tehokkaat ohjeet, nopeaa etsiä tietoa • Erillinen indexillä varustettu ohjesivu • Vihjeboxit oleellisiin paikkoihin
Tekninen määrittely • Päivitetty mobiilikäyttöliittymän rajapinta vastaamaan uusia vaatimuksia ja uutta funktionaalisuutta • Päivitetty tietokanta-arkkitehtuurin kuvausta ER-kaavion ja kenttien määritelmien osalta (ks. kuva) • Moduulirakennetta tarkennettu • Sovittu asiakkaan kanssa mitä dokumenttiin tulee vielä lisätä ja mitä osioita parantaa lopulliseen versioon • Käsitekaaviosta selkeämpi jäljitettävyys vaatimusmäärittelyyn • Fyysinen diagrammi kaipaa tarkempaa laitteistoympäristöä sekä määriteltävä laitteistorajoitukset • Tarkka kuvaus järjestelmän toiminnasta eri tilanteissa viitaten lähdekoodiin • Tietoturvakysymykset, ongelmat ja rajoitukset ER-kaavio
Päivitetty projektisuunnitelma • Riskiloki päivitetty • Tämän vaiheen (I2) suunnitelma lisätty • Toteutuneet tunnit päivitetty
Päivitetty vaatimusmäärittely • Käyttötapausten tilat päivitetty • Käyttötapausten testaukset päivitetty • Vaatimusten tilat päivitetty • Wizard- ja liigapohja-käyttötapaukset yhdistetty, koska liigapohjia käsitellään järjestelmässä osana wizardia
SEPA-päiväkirjat • Aiemmin sovelletut aiheet: • Refaktorointi (Heikki Salomäki & Mikko Nurmi) • Suoritetaan parityönä (pariohjelmoinnin tapaan) • Staattiset metodit (Ari Kuvaja & Jeremias Raime) • Työkaluina edelleen CCCC/Jlint • Tapaamiskäytännöt (Heikki Suhonen) • Projektin etenmisestä pidetään edelleen päiväkirjaa • Soveltaminen aloitettu tässä iteraatiossa: • Käyttäjätestaus (Anttoni Halme & Atte Järvinen) • Kolme vaihetta: • Projektiryhmän sisäinen, ei valvottu (27.12.2004 – 13.1.2005) • Ulkopuolisia käyttäjiä, ei valvottu (alkaa viikolla 6) • 3 ulkopuolista käyttäjää, valvottu (viikolla 7 tai 8) • Projektiryhmän testauksesta huomiot/tulokset kerättiin erillisessä käytettävyyspalaverissa • Ulkopuolisten tulokset kerätään palautelomakkeella • Valvottu testi videoidaan, jos mahdollista
Toteutetut järjestelmät • www-palvelu (peruskäyttötapaukset toteutettu) • Mobiilikäyttöliittymä (peruskäyttötapaukset toteutettu) • [ERILLINEN DEMO]
Käytetyt työmenetelmät Oleelliset käytetyt työmenetelmät: • Iteratiivinen kehitys • + ”Mopo pysyy käsissä”, kun ei tarvitse miettiä liikaa asioita kerralla • - Yhden asian viivästyminen viivästyttää myös seuraavia asioita • Iteraation suunnittelu • + Huolellinen suunnittelu erittäin hyödyllistä erityisesti ajankäytön kannalta. • + Sisäisten deadline-aikojen asettaminen ja katselmoinnit auttavat eri vaiheiden valmistumisessa • - huolellinen suunnittelu menee hukkaan, jos/kun deadline-aikoja ei noudateta! • Tuntiraportointi • - Järjestelmän huolellinen käyttäminen vie paljon aikaa • + Edellisistä iteraatioista on selvästi opittu -> arviot lähempänä toteutunutta • - Muutamien jäsenien kohdalla lipsumista Trapolin käytössä • Dokumentointi (dokumenttipohjat ryhmän sivuilla netissä) • + Yhdenmukaisia dokumentteja on huomattavasti helpompaa lukea • Riskienhallinta • + Riskejä saatu tiputettua (palvelin asiakkaalta) • + Riskienhallintaa parannettu (mobiilipuolella back-up henkilö) • Tapaamiskäytäntö ja yhteydenpito (tapaamiskäytännöt SEPA-harjoituksesta, yhteydenpitoon sähköposti) • + Turhia tapaamisia on karsittu • + Ryhmätyöskentelyä saatu lisättyä -> tehokkuus kasvaa • - Työelämä häiritsee edelleen läsnäoloja • Yllättäviä työmenoja ja kiireitä • + Ryhmähenkeä kohotettu yhteisellä illanvietolla • Virheraportointi (Bugzilla) • + Järjestelmä on helppokäyttöinen • - Usein kuitenkin lisäksi sähköpostitse suoraan korjaajalle lähetyt bugit korjataan nopeammin • Ohjelmointikäytännöt (noudatetaan Java, PHP ja HTML-kielien yleisiä käytäntöjä) • + Koodia on huomattavasti helpompi korjata. • + Java koodi nyt täysin Javadocin mukaista • - PHP/HTML –koodin kommentoinnissa edelleen parantamisen varaa • CVS • - Käyttöönotto hieman hankalaa ja vaatii työtä • + Käyttäminen suoraviivaista