Synapsi: Automaattinen ohjelmiston etäpäivitys
NetSeal Technologies
Tietojenkäsittelyn ohjelmatyö Tik-76.115
Versio | Editoija | Päiväys | Kommentti |
1.0 | Juho Anttila | 15.10.2000 |
Ensimmäisen vaiheen palautettava ja korjattu dokumentti |
1.1 | Mika Mäntylä | 01.11.2000 |
Vaiheen T2 tarkempi suunnitelma lisätty kohtaan 9.2 |
1.2 | Mika Mäntylä | 02.11.2000 |
Kohtaan 9 lisätty karkea kuvaus projektin kulusta
ja iteroinneista.
|
2.0 | Juho Anttila | 06.11.2000 |
Riskienhallintasuunnitelma tarkennettu, lopullinen vaiheessa 2 palautettava versio. |
2.1 | Mika Mäntylä | 04.12.2000 |
Projektin iterointeja suunniteltu ja tarkennettu kohdissa 9.4 T3, 9.5 T4, 9.6 Luovutus. Seuraavan vaiheen suunnitelmasta puuttuu vielä MS-project tiedoston "screen shot", mistä ilmenevät tulevat työtunnit, sekä seuraavan vaiheen riskit. |
2.2 | Mika Mäntylä | 07.12.2000 |
Vaihe T3(9.4) tarkennettu. Katselmointia vaille valmis palautukseen. |
3.0 | Juho Anttila, Mika Mäntylä | 11.12.2000 |
Katselmoitu ja hyväksytty |
3.1 |
Antti Vainio, Mika Mäntylä |
07.02.2001 |
Vaihe T4(9.5) tarkennettu. Katselmointia vaille valmis palautukseen |
3.2 |
Mika Mäntylä |
11.02.2001 | T4 suunnitelmaan pikkumuutos. |
4.0 | Juho Anttila, Mika Mäntylä | 12.02.2001 |
Katselmoitu ja hyväksytty |
|
|
|
LU-vaiheen suunnittelu tarkennettu |
5.0 |
Juho Anttila, Mika Mäntylä |
19.3.2001 |
Katselmoitu ja hyväksytty |
5.1 |
Mika Mäntylä |
21.4.2001 |
Vaatimusosa päivitetty vastamaan vaatimusmäärittelyä |
6.0 |
Juho Anttila, Mika Mäntylä |
23.4.2001 |
Tarkistettu ja hyväksytty lopulliseksi versioksi |
Projektin organisaatio koostuu projektiryhmästä, asiakkaasta ja kurssista. Projektin toteuttava projektiryhmä koostuu seitsemästä TKK:n opiskelijasta. NetSeal Technologies toimii projektin asiakkaana ja kurssin henkilökunta toimii työprosessin valvojana ja arvostelijana.
Projektin tavoitteet voidaan jakaa erikseen projektiryhmän ja asiakkaan tavoitteisiin. Projektiryhmän tavoitteena on saada kurssi suoritettua kunnialla läpi välttäen ylimääräiset työtunnit ja hyötyen prosessista vielä taloudellisesti. Asiakkaan tavoitteena taas on saada mahdollisimman toimiva ohjelmistotuote ilman, että kustannukset nousevat omakustannehintaa korkeammiksi.
Toteutuksessa tullaan noudattamaan tiettyjä projektisuunnitelmassa kuvattuja menetelmiä. Näillä menetelmillä pyritään määrittelemään asianmukaiset muutoksen- ja versionhallintaproseduurit. Projektiryhmän sisäinen ja ulkoinen tiedonkulku sekä projektin aikana toimitettavat dokumentit tullaan myös määrittelemään tarkasti. Ohjelmakoodin kirjoittamisessa ja dokumentoinnissa noudatetaan tiettyjä ennalta sovittuja periaatteita, joiden avulla pyritään selkeyteen ja ymmärrettävyyteen. Projektin kulkua valvotaan tasaisin väliajoin pidetyin palaverein ja katselmuksin.
Projekti on jaettu 6 eri vaiheeseen. Nämä vaiheet ovat projektin suunnittelu, neljä toteutusvaihetta ja projektin luovuttaminen. Jokaisella vaiheella on kurssin puolelta määritelty deadline, jonka ylittäminen johtaa pistemenetyksiin kurssin arvostelussa. Projekti päättyy 24.4.2001 tai jos päättämiskriteerit täyttyvät jo ennen tätä.
Mikäli katsotaan tarpeelliseksi, voidaan myös laatia muita tämän ohjelmistoprosessin kannalta tarvittavia dokumentteja (esim. ohjeistus dokumenttien ulkoasun määrittelystä). Tällaisten dokumenttien mahdollisesta laatimisesta päätetään Synapsi-ryhmän palavereissa projektin aikana. Tätä projektisuunnitelmaa tullaan käyttämään projektin osallistuvien henkilöiden ohjeistuksena käytännön toimissa välittömästi sen jälkeen, kun suunnitelma on hyväksytty projektisuunnitelmakatselmoinnissa.
Asiakasyritys kokee myös hyödylliseksi tuoda itsensä opiskelijoiden eli potentiaalisten työntekijöiden tietoisuuteen.
Ohjelmiston oikeudet myydään asiakkaalle. Oikeuksien hinta pyritään määrittämään siten, että omalla työvoimalla tuotettuna hinta olisi sama, jonka projekti nyt kaikkine kustannuksineen tulee maksamaan. Yrityksen ei tarvitse ostaa mitään ylimääräisiä laitteita eikä ohjelmia. Testauksen aikana testikoneita ei luonnollisesti voi käyttää muuhun, joten tämä voidaan ajatella jonkinlaiseksi haitaksi, vaikka välittömiä kuluja siitä ei olekaan.
Asiakkaan henkilöstö joutuu uhraamaan projektille jonkin verran omaa aikaansa, mutta näin tapahtuisi joka tapauksessa, joten se ei tuo mitään lisäkuluja. Koska projekti tehdään lisäominaisuutena jo olemassa olevaan tuotteeseen, siihen ei millään lailla siirrytä. Saavutetut taloudelliset edut ovat vaikeita mitata, mutta kuitenkin erittäin ilmeisiä johtuen manuaalisen työn vähenemisestä.
Projektin toteuttaminen esim. alihankintana tulisi maksamaan noin 120 000 mk. Seuraava laskema on saatu arvioimalla projektin toteuttamiseen kuluva aika joltain alihankinta yritykseltä. Aikaa alihankkijalta kuluisi luultavasti noin 450 tuntia eli noin kolme kuukautta. Alihankinnan tuntihintaa ei missään varsinaisesti mainostetta, mutta valistunut arvaus voisi olla esim. 266mk/h. Tämä perustuu löyhästi siihen, että täysipäiväisen ohjelmoijan palkka on n. 100mk/h, tähän päälle lasketaan kuitenkin vielä sosiaalikuluja 33mk/h niin saadaan pelkän työnhinnaksi 133mk/h. Lisäkuluja aiheuttavat kuitenkin seuraavat tilanteet: ohjelmoijan palkka projektin ulkopuolella, alihankkijan muut kulut (tilat, laitteet, ei-koodaava henkilöstö), alihankkijan tavoittelema voitto projektista n. 20%.
Ryhmän kotisivu
http://www.hut.fi/~jmanttil/Synapsi/home/
Sähköposti
Jäsenten esittely ja yhteystiedot
Rooli(t): | Projektipäälikkö | |
Nimi: | Mika Mäntylä | |
Puhelin: | (050) 3529949 | |
E-mail: | mika.mantyla@hut.fi | |
WWW-kotisivu: | http://www.hut.fi/~mmantyla/ | |
Kiinnostus- ja osaamisalueet: | Ohjelmistotuotanto, Mobile IP, internet-tekniikat. | |
Opiskelu- ja työkokemus: | Syksy 1997 Teknillinen Korkeakoulu, Tietotekniikan koulutusohjelma. | |
NetSeal Tech.: | Software Engineer 3.1.2000 - | |
TietoEnator: | ATK-suunnittelija: 31.5.1999 - 31.12.1999 | |
Rooli(t): | Käyttöliittymävastaava | |
Nimi: | Antti Vainio | |
Puhelin: | (040) 7685 127 | |
E-mail: | Antti.Vainio@hut.fi | |
WWW-kotisivu: | http://www.hut.fi/~avainio | |
Kiinnostus- ja osaamisalueet: | Tietoturvallisuus, internet-tekniikat, olio-ohjelmointi, käyttöliittymät, tietokonegrafiikka. | |
Opiskelu- ja työkokemus: | Syksy 1997 Teknillinen Korkeakoulu, Tietotekniikan koulutusohjelma. | |
Nokia Research Center: | Trainee 1.6.2000 - | |
Nokia Networks: | Trainee 24.5.1999 - 31.5.2000 | |
Rooli(t): | Koodipäällikkö | |
Nimi: | Mikko Varso | |
Puhelin: | (041) 517 4674 | |
E-mail: | mvarso@cc.hut.fi | |
WWW-kotisivu: | ||
Kiinnostus- ja osaamisalueet: | C/C++ -ohjelmointi, käyttöliittymät. | |
Opiskelu- ja työkokemus: | Syksy 1995 Teknillinen Korkeakoulu, Tuotantotalouden koulutusohjelma. | |
NetSeal Tech.: | Software Engineer 6.3.2000 - | |
Rooli(t): | WWW- ja dokumentointivastaava | |
Nimi: | Juho Anttila | |
Puhelin: | (040) 7675 130 | |
E-mail: | Juho.Anttila@Proha.fi | |
WWW-kotisivu: | ||
Kiinnostus- ja osaamisalueet: | Tietokannat, C++ -ohjelmointi, JAVA -ohjelmointi, WWW-teknologiat. | |
Opiskelu- ja työkokemus: | Syksy 1996 Teknillinen Korkeakoulu, Tietotekniikan koulutusohjelma. | |
Proha Oyj: | Ohjelmistokonsultti 15.3.1999 - | |
Rooli(t): | Systeemisuunnittelija | |
Nimi: | Ville Rannikko | |
Puhelin: | (050) 549 0317 | |
E-mail: | mac@cc.hut.fi | |
WWW-kotisivu: | http://www.hut.fi/~mac | |
Kiinnostus- ja osaamisalueet: | Visual C++, Java, käyttöliittymät. | |
Opiskelu- ja työkokemus: | Syksy 1990 Teknillinen korkeakoulu, Tietotekniikan koulutusohjelma. | |
ICL Invia Oyj: | Systeemisuunnittelija 3.3.1997- | |
Rooli(t): | Menetelmävastaava | |
Nimi: | Cemo Timucin | |
Puhelin: | (040) 7675 122 | |
E-mail: | ctimucin@cc.hut.fi | |
WWW-kotisivu: | http://www.hut.fi/~ctimucin | |
Kiinnostus- ja osaamisalueet: | Projektitoiminta, olio-ohjelmointi, ohjelmistojen testaus. | |
Opiskelu- ja työkokemus: | Syksy 1996 Teknillinen korkeakoulu, Tietotekniikan koulutusohjelma. | |
Proha Oyj: | Ohjelmistokonsultti 28.10.1998- | |
Rooli(t): | Asiakasvastaava | |
Nimi: | Marko Rantee | |
Puhelin: | (050) 569 4964 | |
E-mail: | mrantee@cc.hut.fi | |
WWW-kotisivu: | ||
Kiinnostus- ja osaamisalueet: | Windows-verkkorajapinta, Java, C. | |
Opiskelu- ja työkokemus: | Syksy 1996 Teknillinen korkeakoulu, Sähkö ja tietoliikennetekniikan koulutusohjelma. | |
NetSeal Tech.: | Software engineer 1.3.1999- | |
Espoon Evl. seurakuntayhtymä: | Kausityöntekijä kesä 1997 ja kesä 1998 | |
Rooli: | Asiakas & ohjaaja |
Toimenkuva: | Asiakkaan puolelta tapahtuva työn valvonta ja ohjaus. |
Nimi: | Antti Nuopponen |
Puhelin: | (09) 4353 1600 , 050 3533 469 |
E-mail: | Antti.Nuopponen@netseal.com |
Kuva 1. Organisaatio
Projekti päätetään loppupalaverilla, jossa läsnä ovat ainakin neljä projektiryhmän jäsentä sekä asiakas ja ohjaaja.
M M | A V | C T | M R | M V | J A | V R | Yhteensä | |
---|---|---|---|---|---|---|---|---|
PS | 35 | 20 | 20 | 30 | 20 | 20 | 15 | 160 |
T1 | 25 | 25 | 25 | 25 | 30 | 25 | 30 | 185 |
T2 | 35 | 35 | 25 | 40 | 45 | 30 | 40 | 250 |
T3 | 35 | 35 | 25 | 35 | 45 | 40 | 40 | 255 |
T4 | 35 | 40 | 30 | 30 | 30 | 35 | 35 | 235 |
LU | 20 | 25 | 25 | 30 | 15 | 20 | 15 | 150 |
Yhteensä | 185 | 180 | 150 | 190 | 185 | 170 | 175 | 1235 |
Projekti lomailee ja lukee tentteihin
Tarpeen vaatiessa muutospyyntöjen käsittely toimii seuraavasti.
1) Muutostarpeen havainnointi.
Muutospyynnön tekijä syöttää muutos pyynnön
järjestelmään ja raportoi seuraavat asiat: 1. Kuka löytänyt,
2. Mistä modulista/versiosta (esim. Server-0.1), 3. Ongelman kuvaus.
2) Muutospyynnön käsittely (Projektipäällikkö
käsittelee ja lähettää eteenpäin )
Käsittelijä päättää, mitä toimia
pyyntö aiheuttaa. Jos pyynnön perusteella ryhdytään
toimiin raportoi käsittelijä seuraavat asiat: 1. Kuka löytänyt,
2. Mistä modulista/versiosta (esim. Server-0.1), 3. Ongelman kuvaus,
4. Työmääräarvio, 5. Pyynnön toteuttaja.
3) Muutospyynnön toteutus.
Kun toteuttaja on tehnyt tarpeelliset muutokset, raportoi hän
seuraavat asiat: 1. Minne muutoksia tehtiin, 2. Miten muutokset vaikuttavat
ohjelmaan, 3. Paljonko kului aikaa.
4) Muutospyynnön testaus
Lopuksi testaaja testaa muutoksen. Raportoidaan asiat: 1. Testauspäivämäärä,
2. Millaisia testitapauksia käytettiin testaukseen. 3. Miten muutoksia
havaittiin ohjelman toiminnassa muutoksen seurauksena.
Koodin hallintaa tullaan käyttämään perinteistä
checkout/chekin mallia. Muut mallit (composition malli, long trasaction
malli, change set malli) jäävät käyttämättä,
koska ryhmällä ei ole niiden käyttöön tarvittavaa
välineistöä eikä osaamista.
Sähköpostin avulla projektiryhmän jäsenet voivat tehokkaasti saavuttaa koko ryhmän. Todella pikaisissa asioissa voidaan turvautua myös puhelimen käyttöön. Mikäli joku ryhmän jäsenistä kokee puhelimenkäytön tiettyinä aikoina hankalaksi (esim. töissä olon vuoksi), voidaan tähän liittyvistä käytännöistä sopia erikseen. WWW:n kautta julkaistaan ryhmän kotisivuilla kaikki projektiin liittyvä dokumentaatio. Dokumentointivastaava vastaa viime kädessä siitä, että dokumentit tulevat ensi tilassa WWW:hen.
Ulkoinen tiedotus ja yhteydenpito tapahtuu asiakkaan suuntaan asiakasvastaavan kautta ja projektiin liittyvän kurssin suuntaan projektipäällikön kautta. Em. henkilöt ovat vastuullisia tiedottamaan muita ryhmän jäseniä mahdollisesti saamastaan uudesta tiedosta/muutoksista. Edellisestä poikkeavista käytännöistä voidaan tarvittaessa sopia projektipalavereissa ryhmän kesken.
Projektin aikana on tarkoituksena luoda ainakin seuraavat dokumentit (lista sisältää myös projektin vaiheen, jossa ko. dokumentti luodaan):
(defun tik-76.115-c-mode () "C mode with adjusted defaults for use with Tik-76.115 project." (interactive) (c-mode) (c-set-style "K&R") (setq c-basic-offset 8)) (defun tik-76.115-c++-mode () "C++ mode with adjusted defaults for use with Tik-76.115 project." (interactive) (c++-mode) (c-set-style "K&R") (setq c-basic-offset 8))Tyylit saa käyttöön komennoilla:
C/C++ tarjoaa vastaavan työkalun, Doc++, dokumentoinnin generointiin, joten C++ -koodissa tullaan käyttämään Doc++:n mukaista /** ... */ -merkkien sisään laitettua kommentointia kaikissa kommenteissa, joista on tarkoitus generoida dokumentit. //-merkinnän avulla toteutettua kommentointia ei tulla projektissa käyttämään.
Koodissa tulee kommentoida
Pohja lähdekooditiedoston alkuun sisällytettävästä kommenttiosiosta:
/* * tiedoston nimi * * Author: tiedoston vastuuhenkilön nimi * Date : tiedoston muutospäivä formaatissa dd.mm.yy * ** * * Copyright Netseal Technologies */
Koska ryhmä on ymmärtänyt, että vaatimukset ovat projektin tärkein yksittäinen komponentti, käyttää ryhmä suuren panoksen niiden yksityiskohtaiseen määrittelyyn sekä eritoten niiden hallitsemiseen koko projektin elinkaaren ajan. Mikäli vaatimuksiin tulee muutoksia projektin edetessä on ryhmällä käytössä hyväksyntäprosessi, jossa täytyy hankkia ensin hyväksyntä muutokselle sekä projektipäälliköltä, koodipäälliköltä/kälipäälliköltä (riippuen kumman vastuualueeseen muutos liittyy) että myös asiakkaalta. Vasta hyväksyntäprosessin läpikäytyään ryhmä realisoi muutoksen ja korjaa vaatimukset oleellisilta osiltaan.
Laadunvarmistuksen kannalta oleellinen asia on myöskin ohjelmiston testaus. Ryhmä on tiedostanutt myös tämän seikan ja käyttääkin toteutuksen ja testauksen välisen suhteen kuvaavaa V-mallia. Tämä tarkoittaa sitä, että ei edetä "perinteisellä" tavalla, eli ensin kerätään vaatimukset, suunnitellaan ja lähdetään toteuttamaan järjestelmää, jonka jälkeen tehdään testisuunnitelmat moduuli-, yksikkö- sekä järjestelmätestausta varten. Uusi lähestymistapa on tehdä asioita rinnakkain. Samalla hetkellä kun ryhmä saa asiakkaalta korkean tason businessvaatimukset pystyy tekemään myös hyväksyntätestaussuunnitelman. Toiminnallista määrittelyä tehdessä ryhmä pystyy generoimaan myös järjestelmätestaussuunnitelman. Ketju jatkuu, kunnes ryhmä pääsee matalalle tasolle, jossa se suunnittelee hyvin teknisiä yksityiskohtia, jolloin ryhmä pystyy samalla suunnittelemaan myös moduulitestauksen. Suunnitelmien jälkeenhän vuorossa on toteutus, jonka jälkeen ryhmä toteaakin että kaikki testisuunnitelmat ovatkin jo valmiina eikä aikaa tarvitse kuluttaa enää suunnitteluun, vaan testaustoiminta voidaan käynnistää onnistuneen projektin lopputuloksen takaamiseksi.
Kurssi on asettanut tiettyjä ajankohtia, joihin mennessä vaiheen katselmoitavat (väli)tuotteet on oltava valmiina. Ajankohdat ovat seuraavat:
Katselmoinneissa noudatetaan kurssin käytäntöä eikä asiaa oteta tässä erikseen esille.
Työkalussa pystytään helposti mm. määrittelemään vaatimusten (ja myös testauksen) väliset riippuvuussuhteet, jolloin muutosten analysointi on vaivatonta. Näemme yhdellä silmäyksellä mihin kaikkiin asioihin meidän pitää kiinnittää huomiota, jos eteemme tulee tilanne, jossa meidän täytyy muuttaa olemassaolevia vaatimuksia. Työkalu on käytössämme kurssilaisen työnantajan puolesta, joten lisenssiasiatkin on kunnossa.
Projekti jakaantuu kuuten vaiheeseen joiden aikana se on tarkoitus viedä läpi. Ensimmäinen vaihe on Projektin suunnittelu, jonka aikana on tarkoitus saada käsitys projektissa toteutettavasta työstä ja pohtia menetelmiä projektin menestyksekkääseen läpivientiin. Suunnittelua seuraa neljä toteutusvaihetta nimeltään Toteutus 1-4. Näiden vaiheiden aikana on USDP:n hengessä tarkoitus, joka kerta suunnitella toteuttaa ja testata ohjelmisto. Jokaisen vaiheen siis pitäisi päättyä toimivaan ohjelmistoon.
Vaihe toteutus 1 on kuitenkin sen verran lyhyt, että kyseisessä vaiheessa tulemme ainoastaan keskittymään suunnitteluun. Vasta vaiheiden toteutus 2-4 aikana tulemme noudattamaan tarkemmin USDP:tä eli siis pyrimme päättämään jokaisen vaiheen hyvin suunniteltuun, toimivaan ja testattuun ohjelmistoon.
Projekti päättyy luovutus vaiheeseen, jossa asiakkaalle luovutetaan toimiva ja hyvin dokumentoitu ohjelmisto.
Tämän vaiheen kannalta on kriittistä, että tekninen määrittely saadaan tehtyä vaiheen alussa. Teknisenmäärittelyn aikainen valmistuminen varmistaa sen, että ohjelmointi ja testaussuunnittelu pääsevät alkamaan hyvissä ajoin ennen DL:ää. Vaiheen lopussa pitäisi siis olla valmiina määrittelyjen ja testaussuunnitelman lisäksi demon verran toimivaa koodia ja muutama onnistuneesti läpiviety testitapaus.
Vaihe alkaa ryhmällä joululoman jälkeen 11.1. Tästä eteenpäin käytettään kolme viikkoa ohjelmointiin ja testaussuunnitelman viimeistelyyn. Kolme ohjelmointi viikkoa jakaantuvat seuraavasti. Ohjelmointiviikolla 1 tekee jokaisen moduulin vastuuhenkilö omaan moduuliinsa sieltä vielä puuttuvan toiminnallisuuden ja viimeistelee ohjelmansa käyttämät rajapinnat. Ohjelmointiviikolla 1. pyritään myös käyttöliittymästä hankimaan palautetta esim. Netsealin kautta tulevilla testihenkilöillä. Ohjelmointiviikolla 2 pyritään integroimaan moduulit yhtenäisesti toimivaksi yksiköksi. Ohjelmointiviikolla 3 haetaan moduulien välisestä kommunikaatiosta "helppoja" bugeja ja testataan alustavasti järjestelmää. Viimeisellä viikolla toteutetun alpha testauksen ansiosta pystymme paremmin viemään läpi ominaisuuksien testausta.
Kolmen viikon ohjelmoinnin jälkeen testataan ohjelmaa testaussuunnitelman mukaisesti ja raportoidaan bugeja ja epätoivottuja ominaisuuksia. Tässä vaiheessa myös kirjoitetaan järjestelmälle käyttöohje.
Vaiheen lopussa katselmoidaan palautettavat dokumentit ja valmistellaan järjestelmä Demo kuntoon.
Vaiheen toinen riski liittyy selkeästi testaamisen suorittamiseen. Ryhmällä ei ole paljoakaan kokemusta näin tarkasti määritellyn testauksen suorittamisesta ja halukkuus testauksen läpivientiin saattaakin olla varsin matala. Varmimmat keino riskin välttämiseksi on selkeästi nimetä vastuuhenkilöt ja varmistaa, että testisuunnitelma on siten toteutettu, että sen läpivienti ei aiheuta ylimääräistä päänvaivaa. Joskaan tässäkään vaiheessa ei kannata aliarvioida kaljasakkojärjestelmän vaikutusta motivoijana.
Kuva 2. Vaihe T3 arvio työmääristä ja aikataulusta.
Vaiheen aikana ohjelmistoon tullaan lisäämään/korjaamaan vielä seuraavia ominaisuuksia:
Vaihe alkaa T3-vaiheen viikolla 7 palaverin merkeissä (15.2.). Vaihe käynnistetään 15.2. korjaamalla edellisen vaiheessa auki jääneitä bugeja. Tämän jälkeen siirrytään toteuttamaan puuttuvia ominaisuuksia (kts. edellinen kappale) 22.2. alkaen ja varmistetaan testaamalla, että vanhat bugit saatiin korjattua. Tämän jälkeen (1.3.) on vuorossa n. viikon kestoinen ohjelmiston integroiminen RoamMate:iin. Loppu aika (9.2. alkaen) vaiheesta jää järjestelmän testaamiseen, dokumenttien päivittämiseen (mm. luodaan käyttöohjeesta lopullinen versio) ja seuraavan vaiheen suunnitteluun. Rinnakkain muiden aktiviteettien kanssa suoritetaan jatkuvaa bugikorjausta aina virheiden ilmetessä.
Viimeisenä toimintana vaiheessa katselmoidaan aikaansaadut dokumentit ja valmistaudutaan katselmointiin suunnitellen samalla demo.
Pienempänä riskinä voidaan nimetä ohjelmiston integroimisessa RoamMate:iin mahdollisesti esiintyvät ongelmat. Riskiä ei koeta kovin suureksi, koska ryhmän sisällä on jonkin verran osaamista integroinnissa tarvittavasta tieto-taidosta. On kuitenkin mahdollista, että vaiheen aikana tulee ilmi jokin seikka jota ei ole aiemmin osattu ottaa huomioon. Riski pyritään välttämään perusteellisella paneutumisella ja huolellisella työskentelyllä. Myös asiakkaalta saatava opastus on olennaisessa asemassa - asiakasvastaava huolehtii, että riittävää opastusta saadaan.
Kuva 3. Vaiheen T4 arvio työmääristä ja aikataulusta.
Vaihe aloitetaan viikolla 12 (22.3.) palaverilla. Ensimmäinen jakso (22.3. - 28.3.) on varattu vaiheessa T4 havaittujen bugien (mikäli sellaisia vielä on) korjaamiseen sekä kommunikointiin opponenttiryhmän kanssa. Pyrkimyksenä on saada sovittua opponenttiryhmän kanssa sellainen aikataulu, että molemminpuolinen opponenttiryhmien järjestelmätestaus voidaan suorittaa seuraavan jakson aikana. Toinen jakso (29.3. - 4.4.) suoritetaan oman järjestelmän testaus ja testin tulosten tultua jatketaan havaittujen bugien korjaamista (jos sellaisia tulee ilmi). Tällä jaksolla aletaan suorittaa myös koodin ja dokumenttien siistimistä siihen muotoon, että ne ovat luovutuskunnossa. Tällä viikolla suoritetaan myös opponenttiryhmän järjestelmätestaus sekä vastavuoroisesti tarjotaan opponenttiryhmälle tarvittavat välineet (ohjelmisto, dokumentaatio, opastus) oman järjestelmämme testaukseen. Kolmannella jaksolla (5.4. - 11.4.) aloitetaan loppuraportin kirjoittaminen sekä suoritetaan lopullista järjestelmätestausta ohjelmistollemme. Mikäli edellisellä viikolla suoritetusta opponentin suorittamasta testauksesta saadaan jotakin olennaista palautetta (esim. havaittu selkeä virhe järjestelmässä), tähän pyritään reagoimaan mahdollisuuksien mukaan. Tosin tässä vaiheessa ei enää ryhdytä tekemään suuria muutoksia ohjelmistoon. Kuten aiemmin mainittiin, 12.4. - 18.4. välinen aika on varattu pääsiäislomalle. 19.4. - 24.4. välinen aika varataan lopulliseen katselmointiin (19.4.), jossa tarkistetaan/verifioidaan kunkin dokumentin tila, ohjelmiston tila sekä täydennetään ja hyväksytään projektin loppuraportti. 24.4. - 27.4. välisenä aikaa valmistellaan loppudemonstraatio ja 27.4. suoritetaan itse demonstraatio loppukatselmoinnin yhteydessä.
Toinen vaiheeseen liittyvä riski on opponenttiryhmän kanssa suoritettavassa yhteistyössä mahdollisesti ilmi tulevat ongelmat. Opponenttiryhmä on saattanut aikatauluttaa LU-vaiheen täysin eri tavalla, jolloin suunnittelemaamme testausaikataulua voidaan joutua muuttamaan. Tämän riskin välttämiseksi päätimmekin sijoittaa opponenttiryhmän kanssa kommunikoinnin ja testauksesta sopimisen heti vaiheen alkuun, joten mahdolliset ongelmat tulevat heti ilmi ja niihin voidaan tehokkaasti reagoida.
Asiakaskasvastaava huolehtii tiedottamisesta asiakasrajapinnalle viikottaisessa palaverissä. Samassa palaverissä asiakasvastaava saa projektin ohjaajalta tarvittavaa ohjausta.
Varsinaisen projektin seuraamisen mittareina käytämme tehtyjä työtunteja, ohjelmiston kokoa sekä ohjelmistosta löytyneitä virheitä. Tuntiraportoinnin hoidamme kurssin tarjoaman Tirana-palvelun kautta. Ohjelmiston koon määrittelemiseen ja raportointiin käytämme kurssin tarjoamaa Burana-raportointijärjestelmää. Ohjelmistosta löytyneet virheet raportoimme myös Burana-järjestelmän kautta.
Kerätyn tiedon analysoinnin voimme hoitaa mm. ViCA-visualisointiohjelmistolla.
Kurssi tarjoaa muutamia vakiokuvaajia, mutta suunnitelmissamme on luoda
myös muutamia omia.
Riskin nimi | Kriittisyys
(1-matala...3-korkea) |
Todennäköisyys
(1-matala...3-korkea) |
Tekninen/ryhmätyö
(1-tekninen ... 3-ryhmätyö) |
Tiedonkulun ja projektinhallinnon ongelmat | 3 | 2 | 3 |
Asiakkaan puolelta tuleva rajapinta ei valmistu ajoissa | 3 | 1 | 1 |
Ryhmän motivaatio romahtaa | 3 | 1 | 3 |
Epäselvät määritykset | 2 | 2 | 1 |
Ryhmäläisten kiireiset aikataulut | 2 | 2 | 3 |
Ongelmat kehitysympäristön ja välineiden kanssa | 2 | 2 | 1 |
Ryhmän osaamistaso ei riitä projektin toteuttamiseen | 2 | 1 | 2 |
Sairastumiset tai muut yllättävät poissaolot | 1 | 2 | 3 |
Tavoiteristiriidat kurssin, asiakkaan ja ryhmän välillä | 1 | 1 | 3 |
|
|
Kriittisyys: | Erittäin vakava |
Todennäköisyys: | Todennäköinen |
Selitys: | Projektin luonteesta johtuen projektiryhmän jäsenet pystyvät panostamaan tähän projektiin vain pienen osan käytettävissä olevasta ajastaan. Lisäksi ryhmän jäsenillä on vähän tai ei ollenkaan aikaisempaa kokemusta näin formaalisti toteutetusta ja kattavasti dokumentoidun projektin hallinnasta. Tästä johtuen aikataulutuksessa, työnjaossa ja dokumentoinnin hallinnassa saattaa esiintyä ongelmia. |
Seuraukset: | Seurauksena tiedonkulun ja projektinhallinnon ongelmista voi olla tietämättömyys siitä, kenen pitää tehdä mitäkin, epätasainen työnjako ja siitä seuraava myöhästyminen aikataulusta, mikä johtaa heikkenevään työn tasoon. |
Välttäminen: | Ryhmä pyrkii noudattamaan kurssilla ja esitietovaatimuksena olleilla kursseilla esitettyjä menetelmiä. Työt pyritään jakamaan tasaisesti, tämä mahdollistetaan viikottaisilla palavereilla, joiden aikana varmistetaan se, että jokainen tietää sekä tehtävänsä että niille varatun ajan. Työvaiheen deadlinen lähestyessä seurantaa tiukennetaan, aikataulutus tehdään myös niin, että loppupäässä jää tarpeeksi "löysää" aikaa viime hetken viivästysten paikkaamiseen. |
Korjaaminen: | Jos projektinhallinnon ongelmia havaitaan, projektipäällikkö selvittää, missä työn vaiheessa tai osassa ongelmat ilmenivät ja mikä on ollut ongelmien syynä. Tarvittaessa pidetään ylimääräinen palaveri, jonka aikana selvitetään kaikille tehtävät ja puutteet. Jos ongelmat aiheuttavat sen, ettei aikataulussa voida pysyä, priorisoidaan tehtävät ja siirretään vähiten tärkeät tehtävät seuraavaan työvaiheeseen. |
|
|
Kriittisyys: | Erittäin vakava |
Todennäköisyys: | Epätodennäköinen |
Selitys: | Projektin toteutus vaatii asiakkaan puolelta rajapinnan, jonka päälle projektin tuotos rakennetaan. Tämän rajapinnan on oltava valmiina, ennen kuin varsinainen toteutus voidaan aloittaa. |
Seuraukset: | Seurauksena rajapinnan myöhästymiselle on projektin toteutuksen myöhästyminen pahimmassa tapauksessa niin paljon, että sen toteuttaminen kurssin puitteissa tulee mahdottomaksi. |
Välttäminen: | Ryhmän asiakasyrityksessä töissä olevat jäsenet ovat varmistaneet hyvissä ajoin, että asiakkaan puolelta tarvittavat komponentit ovat valmiina silloin, kun niitä projektin puolesta tarvitaan. |
Korjaaminen: | Jos rajapinta kuitenkin myöhästyy, neuvotellaan asiakkaan kanssa vaatimusten ja projektin tavoitteiden muokkaamisesta sellaiseen suuntaan, että töitä voidaan tehdä ilmankin valmista rajapintaa tai keskeneräisen rajapinnan päälle. Tarvittaessa neuvotellaan yhdessä asiakkaan ja kurssin kanssa siitä, miten ja minkälaisessa muodossa projekti voidaan viedä läpi, jotta kurssi saataisiin suoritettua edes jossakin muodossa. Äärimmäisessä tapauksessa projekti joudutaan keskeyttämään. |
|
|
Kriittisyys: | Erittäin vakava |
Todennäköisyys: | Epätodennäköinen |
Selitys: | Joidenkin ryhmän jäsenten motivaatio panostaa kurssiin ja projektiin romahtaa projektin vaikeuden, huonon toteutuksen, henkilöristiriitojen tai henkilökohtaisten syiden vuoksi.. |
Seuraukset: | Seurauksena on motivaation menettäneiden ryhmän jäsenten työpanoksen hiipuminen tai pahimmassa tapauksessa ryhmän jättäminen, mikä taas lisää loppujen ryhmän jäsenten työtaakkaa ja laskee puolestaan heidän motivaatiotaan. Työn taso laskee ja aikataulu saattaa pettää. |
Välttäminen: | Ryhmää muodostettaessa on jo selvitetty kaikkien ryhmän jäsenten motivaatiot ja tavoitteet kurssille. Näiden perusteella on yhteisesti päätetty ja asetettu projektin tavoitteet ja jaettu tehtävät. Viikottaisten palaverien yhtenä tavoitteena on seurata myös ryhmän jäsenten työtaakan oikeudenmukaisuutta ja keskustella motivaatiotilanteesta. |
Korjaaminen: | Motivaation romahtamisen sattuessa keskustellaan ensin ryhmän sisällä siitä, mistä syistä motivaation romahtaminen on johtunut. Nämä syyt analysoidaan ja niiden vakavuuden mukaan keksitään toimenpiteet, joilla tilannetta voidaan parantaa. Tarvittaessa keskustellaan yhdessä asiakkaan kanssa projektin tavoitteiden tarkistamisesta sellaiseen suuntaan, että ryhmä pystyy heikentyneellä motivaatiollakin viemään projektin kunnialla läpi. |
|
|
Kriittisyys: | Vakava |
Todennäköisyys: | Todennäköinen |
Selitys: | Projektin määritykset eivät ole tarpeeksi tarkat, jotta ryhmä pystyisi rajaamaan projektin ja tehtävänsä tehokkaasti. |
Seuraukset: | Seurauksena on turhaa työtä, monia asioita joudutaan arvaamaan ja iteroimaan useita kertoja, ennenkuin saadaan aikaiseksi sitä, mitä asiakas tahtoo. Projektin aikataulu myöhästyy, lisäksi asiakastyytyväisyys kärsii, jos ei saada aikaan sitä mitä pyydettiin. |
Välttäminen: | Määrittely tehdään tiukassa yhteistyössä asiakkaan kanssa ja niin tarkalla tasolla, ettei epäselvyyttä tavoitteissa ja määrityksissä pääse syntymään. Määritykset pyritään pitämään mahdollisimman muuttumattomina, muutospyynnöt hallitaan ryhmän käyttämällä muutoksenhallintamenettelyllä, jolla pyritään välttämään sekaannusta. |
Korjaaminen: | Jos määritykset havaitaan kaikesta huolimatta liian epämääräisiksi, varataan itse toteutukselta tarpeeksi aikaa määritysten korjaamiseksi tarpeeksi kattavaan muotoon. Jos seurauksena tästä on projektin myöhästyminen, otetaan se tarpeeksi aikaisessa vaiheessa huomioon projektin aikataulutuksessa. Tarvittaessa määrityksiä karsitaan tällöin niin, että projekti on mahdollista viedä läpi aikataulussa. |
|
|
Kriittisyys: | Vakava |
Todennäköisyys: | Todennäköinen |
Selitys: | Ryhmän jäsenten muut kiireet (työt, muut kurssit)rajaavat projektiin käytössä olevaa aikaa. |
Seuraukset: | Projektin aikataulu myöhästyy, koska ryhmäläiset eivät suoriudu kaikista tehtävistään ajoissa. Myös motivaatio kärsii projektin viedessä suhteettoman paljon vapaa-aikaa. |
Välttäminen: | Tehtävät pyritään jakamaan mahdollisimman tasaisesti ryhmän kesken. Aikataulutus tehdään alun perinkin pitäen mielessä ryhmäläisten omat aikataulut. Määrityksissä pyritään rajaamaan projekti sen kokoiseksi, että se on mahdollista viedä läpi suunnitellussa ajassa. |
Korjaaminen: | Aikataulun pettäessä jonkun ryhmän jäsenen kohdalla projektipäällikkö jakaa hänen tehtäviään muun ryhmän kesken mahdollisimman tasaisesti niin, että kaikki tehtävät tulevat tehdyksi. Seuraavissa vaiheissa "kiireinen" ryhmän jäsen tekee tietenkin hieman enemmän töitä, jotta tasapuolisuus säilyisi. Jos aikataulut pettävät koko ryhmän laajuudella, siirretään osa tehtävistä seuraavaan vaiheeseen tai neuvotellaan asiakkaan kanssa vaatimusten karsimisesta työmäärän pienentämiseksi. |
|
|
Kriittisyys: | Vakava |
Todennäköisyys: | Todennäköinen |
Selitys: | Kehitysympäristön asentaminen ja käyttö ei suju tarpeeksi jouhevasti, ylimääräistä työtä joudutaan tekemään asennusten ja "viritysten" kanssa. |
Seuraukset: | Tuottavuus ja sitä kautta aikataulu kärsii ajan kuluessa kehitysympäristön kanssa painiessa ja projekti myöhästyy aikataulustaan. |
Välttäminen: | Kehitysympäristöä koottaessa valitaan sellaisia välineitä, joiden käytöstä ainakin yhdellä ja mielellään monella ryhmän jäsenellä on entistä kokemusta. Asennukset tehdään ajoissa ja jokainen ryhmän jäsen käy tutustumassa kehitysympäristössä ainakin itse tarvitsemaansa osaan hyvissä ajoin ennen varsinaisen toteutuksen aloittamista. |
Korjaaminen: | Ongelmien sattuessa apua haetaan ensin ryhmän sisältä, mistä pitäisi löytyä joka tapauksessa ainakin yksi sellainen henkilö, joka osaa auttaa kyseisen kehitysvälineen kanssa. Jos ongelmat ovat ratkaisemattomia, asennetaan vaihtoehtoinen kehitysväline tai kehitysvälineitä ja toteutetaan projekti niillä. Tarpeen vaatiessa kehitysympäristö voidaan siirtää asiakkaan tiloihin, jossa sen joka tapauksessa tiedetään jo toimivan. |
|
|
Kriittisyys: | Vakava |
Todennäköisyys: | Epätodennäköinen |
Selitys: | Joku ryhmän jäsen tai jäsenet eivät osaamistasossaan olevien puutteiden vuoksi kykene suoriutumaan heille asetetuista tehtävistä. |
Seuraukset: | Tehtävät tulevat tehdyksi joko huonosti, myöhässä tai pahimmassa tapauksessa ei ollenkaan. |
Välttäminen: | Tehtäviä jaettaessa otetaan jo selvää ryhmän eri jäsenten osaamisalueista ja jaetaan tehtävät niin, että jokainen pääsee tekemään sitä, minkä osaa. Tarvittaessa tietoa haetaan jo etukäteen WWW:stä ja kirjallisuudesta. |
Korjaaminen: | Tehtävän osoittautuessa liian vaikeaksi otetaan tarpeeksi ajoissa yhteyttä johonkin sellaiseen ryhmän jäseneen, joka kykenee auttamaan ja opettamaan kyseisessä tehtävässä. Jos apua ei löydy ryhmän sisältä, otetaan yhteyttä ryhmän ohjaajaan, jonka kanssa keskustellaan ongelmasta ja etsitään sille ratkaisu. Tarpeen vaatiessa voidaan yhteistyössä asiakkaan kanssa karsia vaatimuksia, jotta aikaa jäisi vaikeiden asioiden sisäistämiseen. |
|
|
Kriittisyys: | Ei vakava |
Todennäköisyys: | Todennäköinen |
Selitys: | Joku ryhmän jäsen sairastuu tai joutuu muuten olemaan poissa ryhmästä jonkin aikaa. |
Seuraukset: | Poissaolevan ryhmän jäsenen tehtävät myöhästyvät tai jäävät tekemättä. |
Välttäminen: | Tehtävät jaetaan alun perinkin pareille tai pienryhmille, jolloin yhdenkään tehtävän toteutuminen ei ole yhden henkilön harteilla. Aikataulu suunnitellaan niin väljäksi, että yllättävät poissaolot eivät romauta koko rakennelmaa. |
Korjaaminen: | Sairastumisesta tai muusta yllättävästä poissaolosta ilmoitetaan tarpeeksi aikaisessa vaiheessa. Projektipäällikkö jakaa poissaolevan tehtävät muun ryhmän kesken ja karsii niitä tarpeen vaatiessa, jos aikataulu on hyvin tiukka. |
|
|
Kriittisyys: | Ei vakava |
Todennäköisyys: | Ei todennäköinen |
Selitys: | Kurssin, ryhmän ja asiakkaan tavoitteet ja käsitykset projektin kulusta ja halutusta lopputuloksesta eivät täsmää. |
Seuraukset: | Mahdolliset riidat projektin aikana, jonkun osapuolen tyytymättömyys lopputulokseen. |
Välttäminen: | Tavoitteet määritellään tarpeeksi aikaisessa vaiheessa pitäen lähtökohtana kurssin asettamia raameja. Nämä tavoitteet tehdään asiakkaalle selviksi jo ennen sopimuksen allekirjoittamista. |
Korjaaminen: | Kurssin tavoitteet ovat muuttumattomat, riitatilanteissa keskustellaan asiakkaan kanssa projektin tavoitteiden määrittelemisestä niin, että kurssi saadaan suoritettua. Tarpeen vaatiessa määrityksiä ja vaatimuksia muokataan yhteistyössä asiakkaan kanssa. |