Dashboard > Spider > Projektinhallinta > Loppuraportti
Loppuraportti Log In   View a printable version of the current page.

Added by Nico Hiort af Ornäs , last edited by Pasi Pekkanen on Jun 17, 2008  (view change)
Labels: 
(None)

Team Spider

Versio Pvm Tekijä Kuvaus
2.00 17.6.2008 Pasi Pekkanen, Kari Niiranen, Vesa Pirilä, Roni Tammisalo, Nico Hiort af Ornäs, Ville Rantamaula Läpikäynti yhdessä
1.98 16.6.2008 Pasi Pekkanen, Kari Niiranen, Vesa Pirilä, Roni Tammisalo, Nico Hiort af Ornäs, Ville Rantamaula Käytetyt menetelmät
1.07 15.6.2008 Nico Hiort af Ornäs Tilanneraportit, Käyttöliittymäprototyypit
1.06 15.6.2008 Nico Hiort af Ornäs Oppimistulokset ja palaute
1.05 15.6.2008 Vesa Pirilä Oppimistulokset, palaute, linkkejä laatudokumenttiin
1.04 13.6.2008 Nico Hiort af Ornäs Johdanto ja projektin eteneminen
1.03 12.6.2008 Nico Hiort af Ornäs, Pasi Pekkanen Sprinttien goalit
1.02 12.6.2008 Nico Hiort af Ornäs Sprintin tehtävät ja niihin käytetyt tunnit
1.01 12.6.2008 Nico Hiort af Ornäs Sprintien burndownit
1.00 10.6.2008 Nico Hiort af Ornäs Viime ryhmän pohja

Sisällysluettelo

1. Johdanto

Asiakkaan tavoitteena oli lisätä Agilefant-ohjelmistoon uusi tuntikirjanpito-ominaisuus. Käyttäjän tulisi pystyä tämän ominaisuuden avulla kirjata ja saada raportteja käytetyistä tunneista. Tätä ominaisuutta lähdettiin toteuttamaan kuuden hengen ryhmällä.

Tämä projekti toteutettiin intensiivisenä ohjelmistoprojektikurssina aikavälillä 19.5.2008 - 18.6.2008.

2. Projektin eteneminen

Tämä projekti jaettiin useampiin eri sprintteihin seuraavasti:

Sprint Aikaväli
Sprint 1 (Warm-up Sprint) 19.5.2008 - 23.5.2008
Sprint 2 26.5.2008 - 29.5.2008
Sprint 3 2.6.2008 - 6.6.2008
Sprint 4 9.6.2008 - 12.6.2008
Sprint 5 12.6.2008 - 16.6.2008

2.1 Sprint 1 (Warm-up Sprint)

Tämän sprintin tavoitteena oli tutustuttaa Spider ryhmä jäsenet toisiinsa, Agilefanttiin ja käytettyihin tekniikoihin.

Asiakas oli myös luonut ryhmälle listan warm-up tehtävistä, joita ryhmän piti sprintin aikana toteuttaa. Tehtävät eivät olleet kovinkaan vaativia, vaan sisältivät ennemmin pieniä korjauksia ja viilauksia.

Sprintin lopussa oli tarkoitus julkaista uusi versio ohjelmistosta, mutta tähän ryhmällä ei jäännyt aikaa. Julkaistus tehtiin heti seuraavan viikon maanantaina.

2.1.1 Sprintin tehtävät ja niihin käytetyt tunnit

Tehtävä Tuntimäärä
WARM-UP, BUG: Invalid backlog item iteration selection 4h 30min
TIMEBOX, WARM-UP: Current date in burndown 10h 30min
WARM-UP: Projekti-sivun overhead-kentälle yksikkö 2h
WARM-UP: Loadin jatkokehitys: non-estimated BLI's näkyviin 5h
WARM-UP: Load taulukon nollat 10h
WARM-UP: Linkki pikkuburndownista näyttämään iso kuva 2h
WARM UP: Taskien tilan editonti esiin Backlog Item -sivulle 4h
WARM-UP: Backlog itemien massamuuttaminen iteration goal -sivulle 7h
WARM-UP: Backlog itemin statusbariin oma rivinsä (ts. värillinen palkki) itse backlog itemille 21h
WARM-UP, BUG: Iteraatio-sivun burndown näkymään, vaikka ei olisikaan backlog itemejä 1h
WARM-UP: New task » -linkki Backlog -sivulle 5h
WARM-UP: Portfolio-sivun sarakkeiden järjestys 3h
WARM-UP: Load-taulukko: overload-luvut punaiseksi 5h
Tuntimäärä yhteensä 80h

2.1.2 Sprintin palautukset

Katso Warmup Sprint Demo.

2.1.3 Sprintin burndown

2.2 Sprint 2

Toisen sprintin aikana oli tarkoitus aloittaa toteuttamaan itse tuntikirjanpito-ominaisuuksia ohjelmaan.

Ensimmäinen ominaisuus oli toteuttaa asetusjärjestelmä, josta tuntikirjanpito-ominaisuus olisi asetettavissa päälle ja pois. Tämän jälkeen aloitettiin toteuttamaan ominaisuutta, jonka avulla käyttäjä pystyisi kirjaamaan tunteja Backlog itemeille. Lopuksi toteutettiin ominaisuus, joka näyttää Backlog itemeille kirjattujen tuntien summan.

Ryhmän oli alunperin myös tarkoitus käyttää Agilefanttia omaan tuntikirjanpitoon sprintin päätyttyä. Tähän oltaisiin pystytty mikäli oltaisiin haluttu. Päätettiin kumminkin viedä sprintti kokonaisuudessaan loppuun Google Docsin-tuntikirjanpitodokkarin avulla. Edellisten sprinttien tunnit siirrettiin Agilefantiin heti seuraavan sprintin maanantaina. Ryhmä olisi muutenkin pystynyt tämän tekemään vasta sprintin julkaisun jälkeen, joten katsottiin parhaaksi tehdä tämä mielummin heti seuraavan viikon maanantaina.

2.2.1 Sprintin tehtävät ja niihin käytetyt tunnit

Tehtävä Tuntimäärä
S2-R03 SETTINGS: Asetusmallin luominen 1h 30min
S2-R08 Merkattujen tuntien talletus 15h
S2-R07 Speksaus + mallin luonti tuntikirjanpitodatalle 6h 15min
TIMEBOX: Raportoinnin suunnittelu 0h
TIMEBOX: Uudelleenkohdistamisen suunnittelu 0h
S2-R05 Tuntien kirjaus ja listaus BLI:lle (käyttöliittymäsuunnittelu) 5h
S2-R06 Tuntien kirjaus ja listaus BLI:lle BLI-sivulla (käyttöliittymien toteuttaminen) 19h
S2-R09 Summa BLi listaan tuntientryistä 16h
S2-R04 SETTINGS: uuden tabin tekeminen (UI) 11h 45min
S2-R01 SETTINGS: Asetusarvojen tallettaminen kantaan ja haku kannasta 9h
S2-R02 SETTINGS: Tuntikirjanpitoasetus settings-järjestelmään 12h 45min
S2-R10 Käyttöliittymän määrittely BLI-listauksiin uuden tuntientryn syöttämiseen BLI:lle 2h
TIMEBOX: Backlogeille kirjaamisen suunnittelu 0h
Release 2h 30min
Tuntimäärä yhteensä 100h 45min

2.2.2 Sprintin palautukset

Katso Sprint 2 Demo.

2.2.3 Sprintin burndown

2.3 Sprint 3

Kolmannen sprintin alussa siirrettiin kaikki tunnit Google Docsista Agilefanttiin. Kaikki ryhmän jäsenet alkoivat tämän jälkeen käyttämään Agilefanttia tuntikirjanpitoon. Tässä vaiheessa Agilefantissa oli tarpeeksi ominaisuuksia henkilökohtaisten tuntisummien saamiseen.

Tämä sprintti keskittyi eniten viime sprintin viimeistelyyn ja tuntikirjanpitoon liittyvien toimintojen lisäämiseen olemassa oleviin näkymiin.

Tässä sprintissä toteutettiin myös monia käyttöliittymäprotoja. Nämä löytyvät sivulta Protot.

2.3.1 Sprintin tehtävät ja niihin käytetyt tunnit

Tehtävä Tuntimäärä
S3-R16: Valittavien käyttäjien sorttaus tuntien syötössä 9h
S3-R15: Tuntien kirjaus BLI-listoista 12h
S3-R17: Kirjattujen tuntien summa iteration goal näkymään 2h
S3-R18: Iteration goaleihin liittyvien tuntien summat näkyviin 3h 45min
S3-R03: PROTO: Projekti-näkymään suoraan kirjatut tunnit, lapsille kirjatut tunnit ja niiden summa 3h 30min
S3-R36: BUG: BLI poistamaan sille kirjatut tunnit BLI:n poiston yhteydessä 3h 30min
S3-R25: TIMEBOX: Tuntikirjauksen editoinnin parantelu 5h
S3-R27: Tuntikirjausten poiston ajaxifiointi 0h
S3-R35: BUG: BLI Save & Close välittömästi Hour entryn tekemisen jälkeen 5h
S3-R32: USABILITY: Käyttäjän kokonaistuntimäärän näyttäminen kirjauksen helpottamiseksi 9h 55min
S3-R29: Tuntikirjaukseen liittyvien tekstien viilausta 2h
S3-R37: BUG: Kellonajan minuutit näytetään tietyissä tapauksissa hassusti BLI-näkymässä 1h
S3-R04: PROTO: Käyttöliittymäproto Timesheets-näkymästä 4h
S3-R33: Ryhmän tunnit siiretty Google Docsista Fanttiin 1h 50min
Timesheets-tabin luonti + timesheets sivu(Pelkkä UI) 2h
Funktionaalisuus: Raportointi käyttäjien perusteella 2h
PROTO: Tekemislistaus raporttinäkymään 7h 45min
Jarnon 3.5. illalla spostilla antamat viilaukset. 1h 15min
BUG: editIteration- sivulla ei voi poistaa BLI:ta jolle on kirjattu tunteja. 1h 15min
BUG: BLI:n editointi mahdollistaa negatiiviset estimaatit 30min
Tuntimäärä yhteensä 77h 15min

2.3.2 Sprintin palautukset

Katso Sprint 3 Demo.

2.3.3 Sprintin burndown

2.4 Sprint 4

Neljännen sprintin aikana saatin valmiiksi raportointiominaisuus. Tässä sprintissä tehtiin myös kurssin vaatimat testi caset.

2.4.1 Sprintin tehtävät ja niihin käytetyt tunnit

Tehtävä Tuntimäärä
S3-R14: BLI:den järjestäminen käytettyjen tuntien perusteella BL sivuille 4h 30min
TIMEBOX: Tuntikirjausjärjestelmään liittyvän koodin refaktorointi 5h 50min
S3-R20: HE toiminnallisuus Backlog tietoiseksi 8h 45min
S3-R05: UI: Tuntien syöttö, editointi ja listaus projektille 7h 30min
S3-R31: BL poistamaan sille kirjatut tunni BL:n poiston yhteydessä 4h 15min
BUG: Kursori ei vaihdu, kun vie hour reportingin sulkemisnapin päälle 10min
BUG: Epäkelvon job entryn syöttö BLI-listan ensimmäiselle BLI:lle "State"-sarakkeesta. 2h
Log effort -näkymä valittamaan jos käyttäjää ei ole valittu 1h 10min
Uusi datepicker job entry dialogiin 6h
change-linkki takaisin näkyviin BLI-listoihin 10min
Timesheets: Valitut BL:t hierarkisesti ilman tuntidataa 16h
Timesheets: Tuntidata hierarkiseen näkymään ilman user/date filtteröintiä 3h 15min
Timesheets: User/date filtteröinti 8h 38min
Timesheet UI 5h
Timesheets: Proto 7h 15min
Vesan Tomcat hajosi 3h 30min
REFACTOR: BLI Spent effort JSP sivuissa kysymään effort suoraan BLI modelilta 3h
Tuntikirjauksessa päivämäärn ja kellonajan tarkistus 2h
Tuntimäärä yhteensä 88h

2.4.2 Sprintin palautukset

Katso Sprint 4 Demo (Loppudemo).

2.4.3 Sprintin burndown

3. Tulosten arviointi

3.1 Tavoitteiden arviointi

Tavoite Tarkistuskriteeri Arviointi
1. Helppokäyttöisyys
  • On-off ominaisuus
  • Ei lisää klutteria
  • Ei turhaa sälää
  • Voidaan käyttää ominaisuutta nykyisiltä sivuilta
Helppokäyttöisyyten ollaan annettu erityistä huomiota. Käyttöliittymäprototyyppejä on hiotty asiakkaan avustuksella. Kaikkia ominaisuuksia voi käyttää nykyisiltä sivuilta paitse tuntiraportointiominaisuutta, jonka toteuttaminen omalle sivulle koettiin järkeväksi.
2. Tuntien kirjaaminen
  • Tärkeimmät kohteet joihin tunteja pystyy kirjata ovat projektit ja backlog itemit
  • Tunnit kirjataan käsin
  • Tuntikirjauksen entry sisältää:
    • Päivän
    • Ajan
    • Kommentin
    • Tekemisen tyypin
    • Erinlaisia lippuja
      • Laskutettava tunti
Tuntien kirjaamisen toteutettiin perustoiminnallisuus, joka ei sisältänyt tekemisen tyyppejä ja erinlaisia lippuja kirjauksille. Nämä ominaisuudet skoupattiin pois asiakkaan toiveesta.
3. Tuntiraportointi
  • Mahdollista saada raportti:
    • Projektista
    • Backlog itemistä
    • Iteraatiosta
    • (monia muita)
Tuntiraportteja voi saada tuotteista, projekteista ja iteraatioista. Raportit sisältävät backlog itemeihin ja projekteihin kirjatut tunnit.
4. Tunteja pystyy siirtämään   Ominaisuutta ei toteutettu. Asiakas uudelleenpriorisoi tavoitteet ja tästä syystä ominaisuus skoupattiin pois.
5. Tarpeeksi hyvä raportointi
  • Raportti mahdollista saada tietylle ajanjaksolle
  • Raportti mahdollista saada tietystä ryhmästä/tiimistä
Tuntiraportit pystyy saamaan tietystä ajanjaksosta, ryhmästä ja backlogista.

3.2 Sprint goalien arviointi

Jokaisen sprintin demotilaisuudessa arvioitiin sprintin tuloksia. Tämä tehtiin niin, että jokainen ryhmän jäsen ja asiakkaan edustaja sai äänestää jokaista sprintin goalia seuraavalla asteikolla:

Asteikko Selite
Thumbs up! Sprintin goali saavutettu.
Peukalo vaakatasossa. Tietty osa sprintin goalista saavutettu, tiettyä osaa ei saavutettu. Äänestäjällä ei ole tarpeeksi tietoa äänestääkseen suuntaan tai toiseen.
Thumbs down! Sprintin goalia ei saavutettu.

2.2.1 Sprint 1 (Warm-up Sprint)

Sprint Goal Arvio Arvioinnin kommentti
Warm-ups released Kaikki toiminnallisuus tehtiin mutta release jäi tekemättä.
Quality Uusia bugeja löytyi demossa.
Team Spirit Liika hapuili ja tiedonpuute vaikutti hieman negatiivisesti mielialaan.

3.2.1 Sprint 2

Sprint Goal Arvio Arvioinnin58min kommentti
Asetusjärjestelmä on käytettävissä ja tuntikirjanpito asetettavissa päälle Toiminnallisuus toteutettiin. Ainoa puute oli tyylitys.
Käyttäjä voi kätevästi kirjata tunteja Backlog Item -näkymästä Perustoiminnallisuus toteutettiin.
Backlog item -listaukset näyttävät itemeille yhteensä kirjatut tunnit Suurin osa toiminnallisuudesta toteutettiin pientä puutetta lukuunottamatta.
Spider -ryhmä pystyy käyttämään ja myös käyttää pe 30.5. julkaistavaa Agilefantia hoitamaan tallentamaan kurssin vaatimusten mukaiset tuntikirjaustiedot Oltaisiin pystytty käyttämään mikäli tarve sitä olisi vaatinut.

3.2.1 Sprint 3

Sprint Goal Arvio Arvioinnin kommentti
Ryhmä käyttää Fanttia tuntikirjanpitoon Kaikki tunnit siirrettiin Google Docsista fanttiin.
Sprint 2:n uudet toiminnallisuudet on viimeistelty Toiminnallisuudet viimeisteltiin.
Käyttäjä voi kätevästi kirjata tunteja Backlog Itemejä listaavista näkymistä Toiminnallisuus toteutettu. Laaja kirjausikkuna jätettiin pois pienen bugin takia.
Jo olemassa oleviin näkymiin on lisätty oleelliset reporting -asiat Kaikki vaaditut asiat toteutettiin.
Timesheets -näkymän suunnittelu Proto saatiin tehtyä. Seuraavalla viikolla viimeisteltiin.

3.2.1 Sprint 4

Sprint Goal Arvio Arvioinnin kommentti
Olemassaolevan toiminnallisuuden hiomista & viimeistelyä  
Timesheets  
Tuntien kirjaus projektille  
Sekalaiset  

3.3 Laadun arviointi

Laatu on arvioitu laaturaportissa.

3.4 Auki olevat bugit

Päivitetty lista avonaisista bugeista löytyy Agilefantista.

3.5 Projektin haastavuus

Suurimman haasteen projektin alussa tuotti valmis melko laajahko järjestelmä, joka sisälsi useita eri tekniikoita, joista kellään ryhmän jäsenistä ei ollut aikasempaa kokemusta. Tämän johdosta ryhmän jäsenillä kului paljon aikaa kyseisten tekniikoiden opetteluun, joka verotti osaltaan projektissa saavutettuja tuloksia.

Projektin loppupuolella asiakas ei ollut enään kokoajan tavoitettavissa, joka tuotti haasteita vaatimusten hankinnassa ja toteutettujen ominaisuuksien hyväksynnässä.

4. Metriikat

4.1 Käytetyt tunnit

Tarkempaa statistiikkaa käytetyistä työtunneista löytyy Google Docsista ja Fantista.


PP PP I1 I1 I2 I2    
Henkilö
Pre-Project Warm-up Sprint 1 Sprint 2 Sprint 3 Sprint 4 Stabilization SEPA Yhteensä
Nico Hiort af Ornäs 10 38 34 28 22 17   149
Vesa Pirilä
13 37 14 21 32 27 x 144
Pasi Pekkanen
12 33 41 45 22 15   168
Roni Tammisalo
3 30 35 35 26 18   147
Kari Niiranen
5 29 35 25 28 22   144
Ville Rantamaula
4 41 45 28 25 13   156
Yhteensä 47 208 204 182 155 112 - 908

4.1.1 Vertailu koodaukseen ja muuhun työhön liittyvistä työtunneista

Koodaus sisältää kaikki ne tunnit, jotka on merkitty taskien/backlog itemien alle. Näin olleen koodaus ei esimerkiksi sisällä ET mindmappien toteutusta. Muu työ sisältää kaikkiin muihin merkatut tunnit.

4.2 Laatumetriikat

Laatumetriikat löytyvät laaturaportista.

5. Menetelmät ja työkalut

5.1 Käytetyt menetelmät ja työkalut

Laadun näkökulmasta menetelmiä ja työkaluja on arvioitu laaturaportista löytyvässä taulukossa.

5.1.1 Iteratiivinen ohjelmistokehitys

5.1.1.1 Kurssin prosessi

Kurssiin liittyvät mentordemot toimivat muuten hyvin, paitsi toisen vaiheen mentordemo, johon asiakas ei päässyt mukaan. Asiakkaan palaute laaturaportista olisi ollut arvokas.

5.1.1.2 Intensiivinen aikataulu

Projektin intensiivinen aikataulu (noin 6,5 tuntia / päivä) teki kurssista hieman haastavamman mitä ohjelmistoprojektikurssi tavallisesti on.

Jokainen ryhmän jäsen kuluttaa tunteja joka päivä saman verran. Tästä syystä on pakko suunnitella sprintit niin, että jokaiselle löytyy jotain tekemistä joka päivä. Se, että kaikille oli jotain tekemistä varmistettiin päivittäisten Scrum-kokouksien ja Sprint planning-kokousten avulla. Tätä varten oltaisiin voitu myös suunnitella Gantt-kaavioita, joista näkyisi sprintin ja projektin "critical path". Tälläisen tekemiseen ei kumminkaan nähty tarvetta. Loppupeleissä kaikille löytyi jotain tekemistä joka päivä.

Aikataulun intensiivisyys toi myös hieman haasteita. Tavallisessa ohjelmistokehitysprojektissa asioita pystyi pyörittelemään päässä pari päivää. Meidän tapauksessa tiettyihin ongelmiin piti löytää ratkaisut paljon pienemmällä aikavälillä.

Hukkaan menneitä tunteja kertyi verraten vähän ottaen huomioon kurssin intensiivisen aikataulun ja asiakkaan kiireet.

5.1.1.3 Kehitys yhteisessä tilassa

Yhteinen kehitystila todettiin erittäin toimivaksi. Yhteinen tila edesauttoi kommunikaatiota. Suurten monitorien aiheuttamat näkyvyyshaitat koettiin negatiivisiksi.

5.1.1.4 Scrum

Sprint-planning toimi erinomaisesti. Päivittäiset scrum-tapaamiset koettiin ehkä hieman turhiksi, koska kehitystä tehtiin muutenkin kokoajan yhdessä.

Agilefant oli erittäin hyödyllinen iteraation tilan seurannassa ja tehtävien jakamisessa.

5.1.1.5 Vaatimustenhankinnan jaksotus

Asiakkaan kiireistä johtuen suunnitellusta vaatimustenhankinnan jaksotuksesta jouduttiin joustamaan. Sprintissä toteutettavat ominaisuudet saatiin kuitenkin hankittua asiakkaalta sprint planningiin mennessä. Tämä kuitenkin hankaloitti seuraavan sprintin ennakkosuunnittelua melko paljon.

5.1.1.6 Laatukäytäntöjen jaksotus

Prosessin hioutuessa laatukäytännöt alkoivat toimimaan paremmin. Sprint 2 aikataulutus petti melko pahasti ja tästä syystä aiottuun jaksotukseen ei päästy, mutta sprinteissä 3 ja 4 tutkiva testaus saatiin hyvään vauhtiin jo ennen feature freezeä. Sprint 2 jälkeen oli myös ylivoimaisesti eniten tuntemattomia ongelmia, jotka vähenivät laatukäytäntöjen hioutuessa kohdilleen. Sprint 2 lopputulos saattoi kärsiä laatupäällikön poissaolosta.

5.1.2 Iteraatiosuunnittelu

Sprint goalien esittelyä ei koettu kovin hyödylliseksi sprint planningissä. Sprintin työmäärän pilkkominen ja sprintin valmistelu jäi kohtalaisen ohueksi ennen sprintin alkua ja tämä hankaloitti tehtävien esittelyä ryhmälle jonkin verran. Tehtävien pilkkominen backlog itemeiksi perustui pitkälti ScrumMasterin mielipiteeseen.

Planning poker todettiin hyödylliseksi käytännöksi sprint planningissä ja sitä jatkettiin läpi projektin.

5.1.3 Dokumentointi

Dokumentointityökaluna käytettiin asiakkaan tarjoamaa wikiä, Atlassian Confluence. Osaan dokumenteista pystyimme käyttämään edellisten fanttiryhmien dokumentteja pohjana. Tämä auttoi hyvin paljon ja teki dokumentoinnista helpompaa.

Dokumentit, jotka koostuivat taulukoista toteutettiin Google Docsin Spreadsheettien avulla. Näitä olivat esimerkiksi tuntikirjanpito ja Test Cases.

Vähemmän epäviralliseen dokumentointiin käytettiin Post-It -viestilappuja. Näitä kiinnitettiin työhuoneen seinille ja ikkunoille. Post-It -viestilappuja käytettiin pääasiallisesti bugienhallintaan ja järjestelmän hahmottamiseen. Post-It -viestilaput olivat erittäin tehokkaita, koska kuka tahansa pystyi nopeasti lisäämään uusia lappuja ja katsoa vanhoja.

Ryhmän työhuoneesta löytyi myös yksi fläppitaulu ja whiteboard. Näitä käytettiin hyvin usein tietyn toiminnon hahmottamiseen ja suunnittelemiseen. Teknisesti haastavia algoritmeja suunniteltiin myös pienellä ryhmällä fläppitaulua käyttäen. 

5.1.4 Riskienhallinta

Riskienhallinta aloitettiin ensiksi niin, että projektipäällikkö teki listan mahdollisista riskeistä. Tämän jälkeen projektipäällikkö, Scrum master ja laatupäällikkö kävi tämän listan läpi yhdessä. Tässä läpikäynnissä käytiin läpi riskin sisältö, todennäköisyys, kriittisyys ja ohjaavat toimenpiteet. Kuka tahansa sai myös ehdottaa uutta riskiä ja tai ehdottaa riskin poistoa listalta.

Sen jälkeen kuin ensimmäinen versio riskinhallinnasta oltiin saatu valmiiksi annettiin asiakkalle mahdollisuus antaa riskienhallinnasta mielipiteensä. Tällöin asiakas päätti uudelleenpriorisoida yhtä riskiä.

Tämän jälkeen riskienhallintadokumenttia päivitettiin vain satunnaisesti silloin kuin siihen oli tarvetta. Olemme reagoineet esiintyneisiin ongelmiin mahdollisimman nopeasti ja yrittäneet keksiä niihin tehokkaat ratkaisut yhdessä ryhmänä.

Riskienhallinta oli hyvä asia opetusmielessä mutta itse projektin kulkuun se ei kovinkaan paljon vaikuttanut. 

5.1.5 Tuntikirjanpito

Projektin alussa käytettiin tuntikirjanpitoon Google Docsia. Toisen sprintin jälkeen alettiin käyttämään Agilefantin tuntikirjanpito-ominaisuutta.

Tuntien kirjaamisesta tuli paljon helpompaa, kun käytössä oli Agilefant. Agilefant oli jo muutenkin Backlogin hallintatyökaluna käytössä, joten oli loogista käyttää sitä myös tuntikirjanpitoon.

Tuntiraporttien saaminen oli aluksi Agilefantin avulla hieman vaikeata, koska tuntiraportointi-ominaisuus valmistui vasta projektin loppupuolella. Tarvittavat tuntisummat saatiin kumminkin järjestelmästä ulos, mutta tämä vaati hieman lisätyötä. Kaikkien ryhmien jäsenten piti itse käydä hakemassa sprintin tuntisumma ja raportoida tämä projektipäällikölle.

Tämän raportin sprinttien tehtävät ja niihin käytetyt tunnit on otettu suoraan Agilfantista. 

5.1.6 Kommunikaatio

Asiakaskommunikaatio
Kommunikaatio asiakkaan kanssa sujui projektin alussa hyvin. Projektin loppupuolella asiakas ei kumminkaan ollut aina tavoitettavissa, joka lisäsi projektin haasteita. Suurin osa kommunikoinnista asiakkaan kanssa hänen poissaollessaan hoitui puhelimitse ja sähköpostitse. Käyttöliittymäprotoja käytettiin uusien suunniteltujen ominaisuuksien demoamiseen.

Ryhmän sisäinen kommunikaatio
Työajan ulkopuolella IRC oli hyödyllinen kommunikaatioväline, mutta pääosa kommunikaatiosta tapahtui ryhmän yhteisessä työtilassa, joka koettiin erittäin luontevaksi vuorovaikutusmetodiksi.

5.1.7 Iteraatiodemot

Ryhmä sai palautetta tuotoksistaan ja kehitysideoita asiakkaan puolelta, joka oli ryhmän kannalta hyödyllistä. Demojen avulla saatiin myös välitettyä projektin edistyminen tehokkaasti suuremman joukon tietoon.

5.1.8 Bugiseuranta

Bugiseinä toimi hyvänä työkaluna tilannekuvan välittämiseen koko ryhmälle. Uudet ongelmaat saatiin myös tehokkaasti ryhmän tietouteen. Miinuksena menettelyssä oli asiakasinteraktion puute, varsinkin ajanjaksolla, jolloin asiakas ei ollut paikalla.

5.1.9 Versionhallinta

SVN toimi mallikkaasti.

5.1.9.1 Freeze Point

Ks. laatukäytäntöjen jaksotus.

5.1.10 Koodauskäytännöt

Koodauskäytäntöjen tarkkaa noudattamista ei katsottu toimivaksi käytännöksi.

5.1.11 Prosessin kehittäminen (Reflection Workshops)

Reflection workshopeilla pystyttiin arvioimaan käytettyjä menetelmiä, kokeilemaan uusia menetelmiä, parantamaan käytettyjä proseduureja ja poistamaan .

5.1.12 Vaatimustenhallinta

Agilefant ja Scrum auttoivat vaatimustenhallinnassa.

5.1.13 Käyttöliittymäprototyypit

Käyttöliittymäprototyypit toimivat erittäin tehokkaana ratkaisuna vaatimustenmäärittelyyn.

Suurin osa suunnitelluista käyttöliittymäprototyypeistä tehtiin ns. HTML-protoina. Tällöin halutusta käyttöliittymästä koodattiin staattinen HTML-versio. Mikäli asiakas hyväksyi prototyypin, pystyivät kehittäjät helposti käyttämään prototyypin koodia itse ohjelman koodaamiseen.

Eräs ongelma staattisten HTML-versioitten kanssa oli se, että ohjelman generoima HTML-koodi oli erittäin huonosti jäsennelty. Ohjelman generoimat HTML-sivut olivat yleensä pituudeltaan noin 10000 riviä, vaikka saman olisi saannut helposti mahtumaan 1000 riviin. Tähän ongelmaan auttoivat editorit, jotka pystyivät jäsentämään koodia uudelleen.

Käyttöliittymäprototyyppien suunnitelu onnistui siltä osalta hyvin, että yhtäkään prototyyppiä ei pitänyt hylätä sen takia, että oltiin väärinymmärretty asiakkaan vaatimukset. Timesheets-prototyyppiä täytyi tosin iteroida 8 kertaa, se oli erittäin iso käyttöliittymäprototyyppi.

5.1.13 Tilanneraportit

Mentorille ja ajoittain myös asiakkaalle lähetettiin sähköpostitse tilanneraportteja. Nämä sisälsivät päivityksiä ryhmän aikaansannoksista.

Kaikki lähetetyt tilanneraportit löytyvät sivulta Tilanneraportit.

Tilanneraporttien tarkotuksena oli pitää ryhmän mentori ajantasalla tapahtuneista asioista. Raportit eivät niinkään auttaneet itse ryhmää työnteoassa, mutta auttoi enemmänkin mentoria arvioimaan projektin menestystä.

6. Oppiarvo

Koko ryhmä sai arvokasta kokemusta tiimityöskentelystä yhteisessä työtilassa.

6.1 Henkilökohtainen oppiarvo

Henkilö Henkilökohtaiset kiinnostuksen aiheet / tavoitteet Saavutuksien arviointi
Nico Hiort af Ornäs Oppia soveltamaan ketteriä menetelmiä
Tiimityöskentely oikean projektin parissa
Exploratiivinen testaus
Käyttöliittymien suunnittelu ja toteutus
Ajax
Pääsin ainakin kerran kokeilemaan kaikkia henkilökohtaisia kiinnostuksen aiheitani projektin aikana. Oli erittäin opettavaista päästä kokeilemaan käytettyjä prosesseja oikeassa työympäristössä. Agilefant ohjelmaan tutustuminen oli myös erittäin arvokas kokemus.
Vesa Pirilä Scrum, projektinohjaus, testaus, laaduntakaamismenetelmät, arkkitehtuuri Suurimmat opit tulivat Scrumin panemisessa käytäntöön, kokonaisuuksien pilkkomisessa toteuttamiskelpoisiin osiin ja työmäärän arvioimisessa. Kurssi oli opettavainen kokonaisuus ja se on olennainen DI:n valmistamisessa työelämään. Se antaa valmiudet kyseenalaistaa ja kehittää työnantajan käytäntöjä, mikä on erittäin tärkeää työelämässä.
Pasi Pekkanen Käytettävyyssuunnittelu ja -testaus, arkkitehtuurisuunnittelu, automaattinen integraatiotestaus, scrum, AJAX Scrum, käytäntöjen jatkuva arviointi ja kehittäminen, vaatimusten hankinta ja jakaminen tehtäviksi. Ryhmän toiminnan arviointi ja kehittäminen. Lukuisia ohjelmointitekniikoita, kuten J2EE, Sprint, Xwork ja Hibernate. Työskentely todellisena ketteränä tiiminä.
Roni Tammisalo Scrum, J2EE, Spring, Hibernate Scrum tuli hyvin kurssin aikana tutuksi. Tutuistuin myös J2EE:n, Springiin ja Hibernateen, joista eniten keskityin opiskelemaan Hibernatea. Sain myös parempaa tuntumaa testaamisesta.
Kari Niiranen Scrum, J2EE, testaus, Spring, Hibernate Kurssin aikana sai hyvin tuntuman scrumiin. Lisäksi tutustuin J2EE:n, Springiin ja Hibernateen. Sain myös paremman ymmärryksen testausmenetelmien toimimisesta toistensa tukena.
Ville Rantamaula Saada tuntumaa ketterien menetelmien käytöstä,
testauksen soveltamista KM:iin sekä vaatimusten keräämisestä ja hallinnasta.
Tuntumaa tuli scrumiin sekä testauksesta. Vaatimusten kerääminen ja hallinta jäi olemattomaksi osaltani.

7. Kurssin palaute

Nimi Hyvää kurssissa Huonoa kurssissa Parannusehdotukset
Nico Hiort af Ornäs Hyvä ja rento asiakas, joka ymmärsi softakehityksen tarpeet. Saatin paljon apua asiakkaalta sekä itse ohjelmistoon että kurssiin liittyvissä asioissa. Hyvä, että asiakas pystyi tarjoamaan tilat sekä laitteistot kurssin suorittamiseen. Oli erittäin opettavaista päästä kokeilemaan käytettyjä prosesseja oikeassa työympäristössä. Hyvä, että dokumentoinnin määrää pystyttiin karsimaan. Kokonaisuutena kiinnostava projekti ja kurssi. Kurssin kotisivuilla voisi kurssin ohjeistus olla hieman selvempää. Ajoittain oli vähän hankalaa löytää tietoa sivuilta. Toivottavasti kurssi tullaan järjestämään tulevaisuudessa myös intensiivisenä.
Vesa Pirilä Antaa kokonaisnäkemystä ohjelmistoprojekteista. Päästää opiskelijat tehtäviin, joihin he eivät vielä oikeassa yrityksessä pääsisi, mutta ei kuitenkaan jätä heitä täysin omilleen vaan tarjoaa mentorin tuen. Intensiivinen kurssi tarjosi hyvin haasteita ja mahdollisti kurssin suorittamisen siten, ettei se häirinnyt muuta opiskelua. Suosittelen ehdottomasti intensiivikurssin tarjoamista myöhemminkin. Ainakin intensiivikurssilla dokumenttien kirjoitukseen ja muuhun kurssityöhön käytettiin lähes puolet kurssin tuntimäärästä. Vaikka osa dokumentaatiosta auttaa oppimista ja antaa kuvaa projektin kulusta mentorille ja asiakkaalle, vieläkin suurempi osa olisi voitu hoitaa suullisesti. Oma mentorimme jousti tässä kiitettävästi, mutta varsinkin jäykemmän mentorin tapauksessa dokumentaation määrä on valtava. Myös erilaisten jäykkien menetelmien kokeilussa agiilin prosessin päällä on valtavasti overheadia ja saavutettavat edut ovat rajalliset. Trimmataan dokumentaatiovaatimuksia vielä hieman ja jätetään jotkut menetelmät kokeilematta, jos niitä ei oikeasti prosessin mukaan tarvittaisi.
Pasi Pekkanen Mahdollisuus toimia intensiivisesti samassa huoneessa todellisena kehitystiiminä ja olla tuhlaamatta aikaa jonninjoutaviin asioihin. Joustava asiakas, joka antoi tiimin toimiaa rauhassa, mutta oli useimmiten tavoitettavissa ja vastaamassa kysymyksiin. Kohtalaisen paljon dokumentaatiota, joka ei hyödytä asiakasta lainakaan, mutta kulutti silti merkittävästi tiimin resursseja. Otetaan asiakkaan näkökulma ekstensiivisen dokumentaation, kuten projektisuunnitelma, tuottamisessa enemmän huomioon ja mietitään mitä lisäarvoa dokumentti tuo asiakkaalle. Yritetään välttyä dokumentaatiota dokumentaation takia -tilanteelta.
Roni Tammisalo Kiinnostunut asiakas. Yhteinen työtila ja tiimityöskentely. Alku hidas ja vaivalloinen fantin opiskelun takia. Asiakkaan katoaminen. Ei kommenttia.
Kari Niiranen Yhteisessä työtilassa työskentely yhtenä tiiminä tuki kommunikaatiota vähentäen samalla sekaannuksia työnjaon suhteen. Alussa järjestelmän hahmottaminen vaati aikaa, jotta pystyi tekemään jotakin. Jo olemassa olevaa ohjelmaa jatkokehitettäessä olisi hyvä, jos joku perehdyttäisi ryhmän kunnolla nykyiseen järjestelmän toimintaan.
Ville Rantamaula Nopea liikkeellesaattaminen. Yhteinen työtila edesauttoi oleellisesti ryhmän kommunikointia. Intensiivinen toteutus sopii hyvin tälle kurssille. (R|S)ekoilu projektin alussa - fanttin kokonaiskuvan hahmottaminen tuntui turhauttavalta. Kurssilla valmista projektia (kuten Fantti) käytettäessä, kannattaisi ryhmä perehdyttää valmiina annettuun työstettävään projektiin paremmin.
Powered by a free Atlassian Confluence Open Source Project License granted to Agilefant. Evaluate Confluence today.
Powered by Atlassian Confluence 2.7, the Enterprise Wiki. Bug/feature request - Atlassian news - Contact administrators