Titus-projektin projektisuunnitelma

Allekirjoitukset

Hyväksyjä Päivämäärä Allekirjoitus Nimenselvennys
Projektipäällikkö Rami Pasanen
Tilaajan edustaja Vesa Lappalainen
Ohjaaja Jukka-Pekka Santanen

Muutoshistoria

Versio Päivämäärä Muutokset Tekijät
0.0.1 11.2.2018 Dokumentille hahmoteltiin pohja ja kirjoittaminen aloitettiin. RP
0.0.2 13.2.2018 Kirjoitettiin Käytänteiden alaluku Tiedotus. RP
0.0.3 14.2.2018 Kirjoitettiin Käytänteiden alaluvut palavereista, lähdekoodista ja versioinnista. RP
0.0.4 18.2.2018 Kirjoitettiin Käytänteiden alaluvut Testaus ja Päätöksenteko. RP
0.0.5 19.2.2018 Viimeisteltiin käytänteet sekä hahmoteltiin tehtävänjakoa ja prosessimallia. RP
0.1.0 24.2.2018 Paranneltiin dokumenttia ryhmän antaman palautteen perusteella. RP
0.2.0 26.2.2018 Määriteltiin käsitteitä ja riskejä sekä lisättiin aikatauluarvio. RP
0.2.1 3.3.2018 Paranneltiin lukuja 3-6 vastaavan ohjaajan palautteen perusteella. RP
0.2.2 5.3.2018 Täydennettiin prosessin kuvausta ja paranneltiin lukuja 7-9 vastaavan ohjaajan palautteen perusteella. RP
0.2.3 8.3.2018 Täydennettiin aikataulu. RP
0.2.4 11.3.2018 Täydennettiin riskien kuvaukset ja lisättiin työnkulkukaaviot. RP
0.2.5 11.3.2018 Kirjoitettiin tiivistelmä. RP
0.2.6 14.3.2018 Määriteltiin käsitteet luvussa 2.1. ES
0.3.0 14.3.2018 Ei muutoksia. Dokumentti julkistettiin projektiorganisaatiolle. RP
0.4.0 14.3.2018 Kirjoitettiin johdanto. RP
0.4.1 15.3.2018 Paranneltiin tiivistelmää ja lukuja 1-5.1 vastaavan ohjaajan palautteen perusteella. RP
0.4.2 16.3.2018 Paranneltiin lukuja 5.2-8 ja lähdeluetteloa vastaavan ohjaajan palautteen perusteella. Yhdistettiin luvut Prosessi ja Aikataulu. Päivitettiin projektin tuloslistaa luvussa 6. RP
0.4.3 17.3.2018 Kirjoitettiin yhteenveto. RP
0.5.0 20.3.2018 Päivitettiin työnjako- ja ajankäyttösuunnitelmaa. RP
0.6.0 21.3.2018 Päivitettiin jäsenten vastuualueita, prosessia ja ajankäyttösuunnitelmaa. RP
0.7.0 26.3.2018 Päivitettiin käsitteitä. RP
0.7.1 29.3.2018 Paranneltiin tiivistelmää ja kaikkia lukuja vastaavan ohjaajan palautteen perusteella. RP
0.8.0 4.4.2018 Parannettiin projektiryhmän jäsenten tietotaitojen kuvausta luvussa 4.1. RP
1.0.0 5.4.2018 Vastaava ohjaaja hyväksyi dokumentin. RP
1.1.0 8.4.2018 Paranneltiin dokumenttia vastaavan ohjaajan palautteen perusteella. Muutettiin johdannossa ja luvussa 3.1 esiintynyttä tiedekuntaneuvoston kokousdokumenttien laadintaprosessin kuvausta tilaajan edustajien toiveesta. RP
1.2.0 9.4.2018 Päivitetty ajankäyttösuunnitelmaa. RP

Projektiorganisaatio

Projektiryhmä

  • Leinonen Matti, matti.o.leinonen@student.jyu.fi
  • Lindholm Ronja, ronja.lindholm@gmail.com
  • Naukkarinen Visa, visa.naukkarinen@gmail.com
  • Pasanen Rami, rami_p@outlook.com
  • Stylman Enni, enni.stylman@gmail.com

Tilaajan edustajat

  • Hatanpää Eija, eija.hatanpaa@jyu.fi
  • Lappalainen Vesa, vesa.t.lappalainen@jyu.fi
  • Markkanen Jaana, jaana.a.markkanen@jyu.fi

Ohjaajat

  • Lehtinen Mika, mika.k.lehtinen@student.jyu.fi
  • Santanen Jukka-Pekka, santanen@mit.jyu.fi

Yhteystiedot

Tiivistelmä

Titus-projektissa kehitettävät TIM-järjestelmän ominaisuudet helpottavat IT-tiedekunnan tiedekuntaneuvoston esityslistojen ja pöytäkirjojen laadintaprosessia siten, että useita nykyisessä prosessissa käytettyjä työkaluja voidaan korvata suoraan TIM-järjestelmällä. Samalla kehitetään TIM-järjestelmään uusi joustava ja tehokas taulukkomuoto. Dokumentti kuvaa projektin päämääriä, taustoja ja tavoitteita sekä resurssit, aikataulun ja käytänteet, joita noudattaen projekti aiotaan viedä läpi.

1. Johdanto

Titus-projekti kehittää Jyväskylän yliopiston informaatioteknologian tiedekunnassa kehitettyä TIM-järjestelmää paremmin soveltuvaksi tiedekuntaneuvoston kokousdokumenttien laadintaan. Tiedekuntaneuvoston kokousdokumenttien laadintaprosessissa käytetään nykyisellään useita erilaisia työkaluja, mistä johtuen prosessia voi suoraviivaistaa. Lisäksi dokumenttien tarkastelu on ajoittain vaikeaa johtuen suurista määristä erillisiä liitteitä ja joidenkin tiedostomuotojen heikosta soveltumisesta esimerkiksi mobiililaitteille. Projektissa kehitetään TIM-järjestelmää siten, että kokousdokumentit laaditaan suoraan TIM:iin.

Kokousdokumenttien laatimisen helpottamisen lisäksi projektin tavoitteena on jatkokehittää TIM-järjestelmää. Siten kokousdokumentteja varten laadituista toiminnoista tehdään mahdollisimman yleiskäyttöisiä, jotta niitä voidaan hyödyntää myös muuten kuin kokousdokumenttien yhteydessä.

Projektisuunnitelman laatimisessa on otettu mallia Timantti-projektin projektisuunnitelmasta[1]. Projektin aikana laaditaan myös vaatimusmäärittely, sovellussuunnitelmia, sovellusraportti ja projektiraportti. Vaatimusmäärittelyssä kuvataan vaatimukset, jotka kehitettävän sovelluksen halutaan täyttävän. Sovellussuunnitelmissa kuvataan sovelluksen suunniteltu kokonaisrakenne sekä käyttöliittymän toiminnot ja näkymät. Sovellusraportissa kuvataan toteutetun sovelluksen käyttöliittymää ja rakennetta, tavoitteiden ja vaatimusten toteutumista sekä toteutusratkaisuja ja jatkokehitysideoita. Projektiraportti kuvaa projektin toteutuneen läpiviennin, tavoitteiden toteutumisen sekä toteuman ja suunnitelman eroja ja syitä.

Projektisuunnitelman luku 2 kuvaa dokumentissa käytetyt käsitteet. Luvussa 3 esitellään sovellusprojektin taustaa, tavoitteita ja tuloksia. Luku 4 kuvaa projektiorganisaation käytössä olevat resurssit, kuten henkilöt, tilat, työkalut ja koulutukset. Luku 5 kuvaa käytänteet, joita projektin läpiviennissä noudatetaan.

Luvussa 6 kuvataan projektin tehtäväjakoa, tehtävien työmäärää ja projektiryhmän jäsenten vastuualueita. Luku 7 kuvaa projektissa käytettävää kehitysprosessia ja projektin suunnitellun aikataulun. Luvussa 8 kuvataan projektiin liittyviä riskejä ja niiden hallintaa.

2. Käsitteet

Luvussa määritellään dokumentissa käytetyt olennaiset käsitteet.

2.1 Tausta

Dokumentissa käytetään seuraavia kohdealueen käsitteitä:

  • Asiakohta tai listakohta sisältää kaiken yksittäiseen asialistan kohtaan sisältyvän tiedon kokouskutsussa tai pöytäkirjassa esityksineen ja liitteineen sekä pöytäkirjassa päätöksineen.
  • Asialista tai esityslista on kokouksessa käsiteltävien asiakohtien listaus, josta ilmenee kokouksessa käsiteltävät asiakohdat ja niiden alustava käsittelyjärjestys kokouksen alussa. Informaatioteknologian tiedekunnan tiedekuntaneuvostossa käytetään termiä asialista.
  • Kokouskutsu on asiakirja, jolla kokous kutsutaan koolle ja joka sisältää tiedon kokouksessa käsiteltävistä asiakohdista. Usein kokouskutsun yhteydessä välitetään asialista.
  • Liite on erillinen dokumentti, joka olennaisilta osin liittyy tietyn asiakohdan käsittelyyn, mutta jonka koko sisältöä ei ole tiedostomuodon tai sisällön laajuuden vuoksi mielekästä kirjata kokonaisuudessaan auki asialistaan tai pöytäkirjaan.
  • Pöytäkirja on kokouskutsun pohjalta laadittu virallinen asiakirja, johon on kirjattu muun muassa kokouksen osanottajat, tehdyt päätökset ja keskeiset keskustelunaiheet. Pöytäkirjan järjestys noudattaa kokouksen käsittelyjärjetystä.
  • Pöytäkirjaote on pöytäkirjasta otettu yksittäinen asiakohta päätöksineen ja liitteineen.
  • Taulukko on esitysmuoto ja tietorakenne. Esitysmuodossa haluttu tieto esitetään riveittäin ja sarakkeittain.
  • Taulukkomuoto on tapa ilmaista taulukon esitysmuodon rakenne valitulla esityskielellä.
  • Tiedekuntaneuvosto on tiedekunnan hallinnossa ylin päättävä elin.
  • TIM on Jyväskylän yliopistossa kehitetty vuorovaikutteinen oppimisympäristö.
  • Vesileima on tiedekuntaneuvoston kokousten pöytäkirjojen liitteisiin joka sivulle erikseen lisättävä tunniste, joka sisältää liitteen tunnistetiedot, mukaanlukien kokouksen päivämäärän, asiakohdan numeron ja liitteen numeron.

2.2 Ohjelmointi- ja merkintäkielet

Dokumentissa käytetään seuraavia projektille olennaisia ohjelmointi- ja merkintäkieliin liittyviä käsitteitä:

  • AngularJS on JavaScript-pohjainen kehys yksisivuisten sovellusten kehittämiseen.
  • camelCase viittaa tapaan nimetä esimerkiksi luokkia ja aliohjelmia lähdekoodissa siten, että nimen jokainen sana aloitetaan isolla kirjaimella.
  • CSS on tyylitiedostokieli, jolla määritellään HTML:llä tehtyjen WWW-sivujen ulkoasu.
  • HTML on WWW-sivujen laadintaan käytetty merkintäkieli.
  • JavaScript on ohjelmointikieli, jota käytetään ensisijaisesti selainpuolen toiminnallisuuden lisäämiseen WWW-sivuille.
  • jQuery on JavaScript-kirjasto, joka yksinkertaistaa selainpuolen ohjelmointia ja erityisesti dynaamisten verkkosivujen tekemistä.
  • JSDoc on merkintäkieli, jolla dokumentoidaan JavaScript-lähdekoodia.
  • Makro on sääntö, jolla muutetaan syöte haluttuun muotoon.
  • Markdown on merkintäkieli, jota TIM-dokumentit käyttävät.
  • Python on yleiskäyttöinen ohjelmointikieli, jolla TIMin palvelinpuolen toiminnallisuus on pääosin kirjoitettu.
  • PEP8[2] määrittelee Pythonia kirjoittaessa suositeltuja ohjeita ja sääntöjä.
  • SCSS on CSS:ksi kääntyvä tyylitiedostokieli, jonka tarkoitus on laajentaa CSS:n ominaisuuksia.
  • TypeScript on JavaScriptin laajennos, jonka ensisijainen tarkoitus on lisätä kieleen tuki tyypitykselle.
  • YAML on tiedon tallentamiseen ja siirtämiseen tarkoitettu kieli.

2.3 Työkalut ja tiedostomuodot

Dokumentissa käytetään seuraavia työkaluihin ja tiedostomuotoihin liittyviä käsitteitä:

  • AJAX on joukko tekniikoita, joita hyödynnetään dynaamisia nettiselaimilla toimivia sovelluksia tehdessä.
  • Docker on sovellus, jonka avulla ajetaan sovelluksia virtuaalisoidussa säilössä.
  • PDF on dokumenttien alustariippumattomaan esittämiseen tarkoitettu tiedostomuoto.
  • Plugin tai liitännäinen on TIM-järjestelmän osa, joka lisää toiminnallisuutta dokumentteihin.
  • PyCharm on erityisesti Python-kielen kirjoittamiseen käytetty ohjelmointiympäristö. Sitä käytetään myös TIMin kehittämiseen.

3. Tausta ja tavoitteet

Luvussa kuvataan Titus-projektin taustaa ja tavoitteita. Luvussa esitellään projektin toteuttamisen syitä, projektin kohdealuetta, kehitettävään TIM-järjestelmään toteutettavia ominaisuuksita ja projektin oppimistavoitteita. Lisäksi luetellaan muut projektissa laadittavat dokumentit.

3.1 Projektin tausta ja tavoitteet

IT-tiedekunnan tiedekuntaneuvoston esityslistojen ja pöytäkirjojen laadintaprosessissa käytetään useita erilaisia työkaluja. Lisäksi dokumenttien tarkastelu on vaikeaa johtuen suurista määristä erillisiä liitteitä ja joidenkin tiedostomuotojen heikosta soveltumisesta esimerkiksi mobiililaitteille. Tarkemmin laadintaprosessia kuvataan projektin vaatimusmäärittelydokumentissa[3].

Titus-projektissa TIM-järjestelmään kehitettävillä ominaisuuksilla suoraviivaistetaan IT-tiedekunnan tiedekuntaneuvoston esityslistojen ja pöytäkirjojen laadintaprosessia. Useita nykyisessä prosessissa käytettyjä työkaluja korvataan TIM-järjestelmällä siten, että dokumentit laaditaan suoraan TIM-järjestelmään. Samalla on tarkoitus helpottaa dokumenttien tarkastelua upottamalla nykyiset erilliset liitteet dokumentteihin sekä tukemalla katselua mobiililaitteilla dokumenttien paremman skaalautuvuuden kautta.

Toinen projektin päämäärä on myös itse TIM-järjestelmän kehittäminen. Kehittäminen tapahtuu IT-tiedekunnan tiedekuntaneuvoston tarpeiden kontekstissa, mutta TIM:in ominaisuuksista pyritään tekemään mahdollisimman yleiskäyttöisiä siten, että kehitystyö hyödyttäisi myös TIM:in käyttäjiä laajemminkin eikä ainoastaan tiedekuntaneuvostoa. Kehitettäviä ominaisuuksia kuvataan tarkemmin luvussa 3.2.

3.2 Tavoitteet sovelluksen osalta

Titus-projektissa kehitetään TIM-sovellusta siten, että se sopii nykyistä paremmin esityslistojen ja pöytäkirjojen laadintaan sekä niiden ja niihin kytkeytyvien liitteiden tarkasteluun. Kehitettävistä toiminnoista pyritään tekemään mahdollisimman helppo- ja yleiskäyttöisiä siten, että niistä olisi hyötyä tiedekuntaneuvoston lisäksi myös muille TIM:in käyttäjille.

Esitutkimuksessa on löydetty useita kehitettäviä kohteita, jotta TIM-järjestelmää voisi käyttää nykyistä paremmin esityslistojen ja pöytäkirjojen laadinnassa ja tarkastelussa sekä TIM:in käyttö olisi sujuvampaa. Projektin tavoitteena on toteuttaa TIM-järjestelmään seuraavat muutokset:

  • Luodaan uusi taulukkomuoto. Nykyisellään TIM-järjestelmän taulukot ovat vaikeita kirjoittaa sekä ominaisuuksiltaan rajoittuneita, sillä esimerkiksi soluja ei voi yhdistää.
  • Luodaan graafinen käyttöliittymä uuden muodon mukaisten taulukoiden laatimiseen.
  • Tehdään mahdolliseksi sisällyttää esityslistoihin ja pöytäkirjoihin kytkeytyvät PDF-liitteet avattavaksi suoraan dokumenttiin. Nykyisellään TIM tukee liitteitä vain erillisinä ladattavina tiedostoina.
  • Tehdään mahdolliseksi yhdistää dokumenttiin kuuluvat PDF-liitteet yhdeksi isoksi liitteeksi arkistointia varten.
  • Tehdään mahdolliseksi vesileimata PDF-liitteet yhdistämisen yhteydessä.
  • Lisätään makroja ja dokumentteihin lisättäviä valmiita tekstiosioita siten, että esityslistojen ja pöytäkirjojen laatiminen käy nopeasti valmiita pohjia hyödyntämällä.
  • Mahdollistetaan pöytäkirjojen otteiden ottaminen ja tulostaminen.

Tavoitteiden tarkemmat kuvaukset ja prioriteetit löytyvät vaatimusmäärittelydokumentista[3]. Tavoitteet saattavat vielä muuttua ja tarkentua projektin aikana.

3.3 Tavoitteet oppimisen osalta

Jokainen projektiryhmän jäsen on määritellyt itse omat oppimistavoitteensa seuraavasti:

  • Matti Leinonen haluaa oppia lisää WWW-sovelluksista sekä niiden kehittämisessä käytettävistä teknologioista, kuten JavaScriptistä (TypeScriptistä) ja Pythonista. Leinonen haluaa oppia myös projektin hallinnan käytänteitä, joiden avulla työskentely saadaan pidettyä tarkoituksenmukaisena ja koko ajan etenevänä.

  • Ronja Lindholm haluaa oppia uutena asiana palaverityöskentelyä ja projektitoimintaa yleisesti. Tavoitteena on myös oppia uusia tekniikoita ja ohjelmointikieliä, kuten TypeScript ja Sass. Lisäksi ennestään jo hieman tutut ohjelmointikielet tulisi olla paremmin hallussa kurssin loppupuolella.

  • Visa Naukkarinen haluaa saada kokemusta laajan järjestelmän kehittämisestä projektimuotoisesti ja erityisesti siihen kuuluvasta ryhmätyöstä. Lisäksi tavoitteena on oppia WWW-sovellusten kehittämistä TypeScriptillä ja AngularJS:llä.

  • Rami Pasanen haluaa oppia projektimuotoista työskentelyä ryhmässä, projektin hallintaa ja ryhmän johtamista sekä raportointia. Toissijaisena tavoitteena on WWW-teknologioiden osaamisen syventäminen.

  • Enni Stylman haluaa oppia ymmärtämään sovelluskehitystä ja sovellusten suunnittelua prosessina laajemmin ja syvemmin. Tavoitteena on oppia uusia ohjelmointikieliä ja pyrkiä syventämään jo aiempaa osaamista. Henkilökohtaisena haaveena olisi myös löytää omia vahvuuksia ja oma paikka it-alan osaamiskentältä.

3.4 Projektin tulokset

Projektissa kehitetään seuraavat tulokset:

  • Ajankäyttöraportti kertoo projektin jäsenten ajankäytön tehtävittäin.
  • Käyttöohjeessa kerrotaan, miten kehitettyä sovellusta käytetään.
  • Lisenssisopimuksella projektiryhmä sitoutuu sijoittamaan projektissa kirjoittamansa lähdekoodin The MIT License -lisenssin[4] alaisuuteen, sekä projektin dokumentit ja muun materiaalin Creative Commons Attribution 4.0 International -lisenssin[5] alaisuuteen.
  • Luokkadokumentit kuvaavat sovelluksen rakenteen sekä luokkien, aliohjelmien ja attribuuttien merkityksen. Luokkadokumentit generoidaan suoraan lähdekoodista.
  • Lähdekoodi sisältää sovellusta varten kirjoitetun ohjelmakoodin.
  • Palaverien dokumentit sisältävät esityslistat ja pöytäkirjat, joissa kerrotaan palavereissa käsitellyt ja päätetyt asiat.
  • Projektiraportti kuvaa projektin toteutuneen läpiviennin, eri osa-alueiden tavoitteiden toteutumisen sekä toteutuman ja suunnitelman eroja ja syitä.
  • Projektisuunnitelmassa kuvataan projektin taustoja, tavoitteita, aikataulu ja käytänteet, joita noudattaen projekti aiotaan viedä läpi.
  • Sovellusraportti kuvaa sovelluksen käyttöliittymää, rakennetta, tavoitteiden ja vaatimusten toteutumista sekä toteutusratkaisuja ja jatkokehitysideoita.
  • Sähköpostiarkistot sisältävät projektin aikana projektin molemmille sähköpostilistoille lähetetyt viestit.
  • Testaussuunnitelmat kuvaavat, miten sovelluksen ominaisuuksia aiotaan testata ja miten testauskerrat suoritetaan.
  • Testausraportit käsittelevät testauskertojen tuloksia sekä mahdollisia testauksessa havaittuja virheitä ja huomioita.
  • Tilakatsauksissa kuvataan projektin tilaa tiettynä ajanhetkenä.
  • Vaitiolosopimuksella jokainen ryhmän jäsen sitoutuu pitämään tiedekunnan kokousdokumenttien luottamukselliset tiedot sekä kehityksen aikana nähdyt tietojärjestelmän henkilötiedot salassa.
  • Vaatimusmäärittely kuvaa ja priorisoi toiminnot, jotka kehitettävän sovelluksen halutaan tarjoavan käyttäjille.

4. Resurssit

Luvussa kuvataan projektiin osallistuvia henkilöitä sekä projektiryhmän käytettävissä olevia tiloja, laitteita ja työkaluja sekä projektiryhmälle järjestettäviä perehdytyksiä.

4.1 Projektiorganisaatio

Projektiorganisaatio koostuu projektiryhmästä, tilaajan edustajista ja ohjaajista.

Projektiryhmään kuuluvat Matti Leinonen, Ronja Lindholm, Visa Naukkarinen, Rami Pasanen ja Enni Stylman. Projektin alkaessa ryhmän jäsenten tietotaidot olivat seuraavanlaiset:

  • Leinosella on ohjelmointikokemusta sekä yliopistokursseilta että työelämästä.
  • Lindholm on käynyt useita ohjelmointikursseja, mutta projektityöskentely ja kokouskäytänteiden tuntemus on vähäistä.
  • Naukkarisella on melko paljon kokemusta sekä pelien että sovellusten ohjelmoinnista, mutta projektit ja laajempien ohjelmistojen kehitys ovat uutta.
  • Pasasella on runsaasti ohjelmointikokemusta, mutta ei aiempaa kokemusta projektityöskentelystä.
  • Stylmanilla on kokemusta kokouskäytänteistä sekä toiselta alalta projektityöskentelystä ja vaatimusmäärittelyistä. Hänen IT-alan kokemus on vähäistä ja ohjelmointiosaaminen on kokonaan peräisin kursseilta.

Olet aika lyhyesti omalta osaltasi kuvaillut. Pitäisikö muillakin olla suunnilleen tuon verran kerrottu? Itsellänikin on siis aika samanlainen tilanne eli ei ole projektitoiminnasta kokemusta mutta ohjelmointia on tullut tehtyä. Tosin en itse ole muutoin kuin kursseille / omaan käyttöön tehnyt sitä. Voisi kai sanoa, että olen tehnyt paljon pienempiä ohjelmia sekä opiskellut pelinkehitystä.

06 Mar 18

Santanen halusi jokaiselta yhden virkkeen mittaisen kuvauksen. Ts. Ennin oma voi olla liian pitkä.

08 Mar 18

Sovelluksen tilaajana on Jyväskylän yliopiston informaatioteknologian tiedekunta, jonka edustajia ovat Eija Hatanpää, Jaana Markkanen ja Vesa Lappalainen. Hatanpää ja Markkanen edustavat tiedekunnan kokousdokumenttien laatijoita, kun taas Lappalainen on kokousdokumenttien lukijan ohella myös tilaajan teknisen puolen edustaja.

Projektin vastaavana ohjaajana toimii Jukka-Pekka Santanen. Teknisenä ohjaajana on Mika Lehtinen, joka avustaa projektiryhmää erityisesti TIM:in kehitykseen liittyvissä asioissa.

Projektin sidosryhmiä ovat käytettävyysasiantuntija Johanna Silvennoinen ja projektiviestintäkurssin opettajat Hanna Kivimäki ja Kati Rantala-Lehtola. Jyväskylän yliopiston ATK-lähituki vastaa projektiryhmän tietokoneiden ja niihin liittyvien sovellusten asentamisesta ja toimintakunnossa pitämisestä.

4.2 Tilat ja laitteet

Projektiryhmällä on käytössä huone Ag C225.3. Tilan puhelinnumero on 040-8053314. Huoneessa on viisi tietokonetta, joissa on kaikissa Windows 10 -käyttöjärjestelmä. Tietokoneiden ja niihin liittyvien sovellusten asentamisesta ja toimintakunnossa pitämisestä vastaa Jyväskylän yliopiston ATK-tuki.

Muita käytettävissä olevia tiloja ovat taukohuone, jonne yliopisto kustantaa ilmaiset kahvit, teet ja mehut projektin ajaksi. Kokoushuone Ag C226.1 on varattavissa palavereita varten.

Projektiryhmällä on projektin ajan käytettävissään rajaton tulostuskiintiö yliopiston Print it -palveluun projektin tulosten tulostamista varten.

4.3 Kehitys- ja dokumentointityökalut

Projektissa hyödynnetään seuraavia kehitys- ja dokumentointityökaluja:

  • Projektin dokumentit laaditaan TIM-ympäristöön.
  • Versiohallintaan käytetään Gitiä GitLab-palvelua hyödyntäen.
  • Projektin työtunneista pidetään kirjaa Excel-pohjaisella työajankirjaussovelluksella.
  • Projektisuunnitelmassa esitettävä Gantt-kaavio laaditaan GanttProject-sovelluksella.
  • Projektiryhmän jäsenet saavat opiskelijalisenssin PyCharm-kehitysympäristöön, jolla TIMin kehitys ja testaus pääosin tapahtuvat.

4.4 Perehdytykset

Sovellusprojektin rinnalla järjestettävään oheiskurssiin Sovellusprojektin hallintaa, viestintää ja työkaluja (TIES412, 1 op) sisältyvät seuraavat perehdyttävät luennot:

  • Aloitusluento (2t),
  • Versiohallinta (2t),
  • Vaatimusmäärittely (2t),
  • Projektin suunnittelu ja hallinta (4t),
  • Käytettävyyspäivä (6t) sekä
  • Tekijänoikeus ja sopimukset (3t).

Lisäksi projektin tekninen ohjaaja Mika Lehtinen piti projektiryhmälle kahden tunnin perehdytyksen TIM-järjestelmän kehittämiseen maanantaina 5.2.2018. Tarvittaessa projektiryhmälle järjestetään lisää vastaavia perehdytyksiä.

Projektiryhmän jäsenet Naukkarista ja Leinosta lukuunottamatta osallistuvat myös XYHI004 Projektiviestintä IT-alalla -oheiskurssille, jolla perehdytään projektissa tarvittaviin viestintä- ja vuorovaikutustaitoihin. Leinonen oli mukana kurssin ensimmäisissä tapaamisissa, mutta jätti kurssin kesken.

5. Käytänteet

Luvussa määritellään projektin käytänteet liittyen tiedotukseen, palavereihin, päätöksentekoon, versiointiin, lähdekoodin ja dokumenttien kehitykseen, sekä tiedostojen ja hakemistojen nimeämiseen.

5.1 Tiedotus

Projektiorganisaatiota varten on luotu oma sähköpostilista titus@korppi.jyu.fi. Sen kautta tiedotetaan sellaisista projektin läpivientiin liittyvistä asioista, jotka ovat merkittäviä projektiryhmän lisäksi muulle organisaatiolle, kuten esimerkiksi tilaajille. Lisäksi sähköpostilistaa voidaan käyttää tilaajan edustajien tavoittamiseen esimerkiksi tilaajan toiveita koskevan lisätiedon kysymiseen. Listalle lähetetyt viestit ovat nähtävissä arkistossa osoitteessa https://korppi.jyu.fi/kotka/servlet/list-archive/titus/. Listalla olevat sähköpostiosoitteet löytyvät osoitteesta https://korppi.jyu.fi/kotka/servlet/list-archive/titus/dist.html.

Sähköpostilista titus_opetus@korppi.jyu.fi on projektiryhmän, ohjaajien ja tilaajan teknisen edustajan käyttöön. Listaa käytetään sellaiseen projektiryhmän ja ohjaajien väliseen viestintään, joka ei ole tilaajan kannalta olennaista. Esimerkiksi kurssin suorittamisen yksityiskohtiin liittyvät asiat voivat olla tällaisia. Listalle lähetetyt viestit ovat nähtävissä arkistossa osoitteessa https://korppi.jyu.fi/kotka/servlet/list-archive/titus_opetus/. Listalla olevat sähköpostiosoitteet löytyvät osoitteesta https://korppi.jyu.fi/kotka/servlet/list-archive/titus_opetus/dist.html.

Projektipäällikkö laatii viikoittain projektin tilakatsauksen, jossa kerrotaan projektin tehtävien ja sovelluksen tilasta, etenemisestä ja muutoksista edelliseen tilakatsaukseen verrattuna. Lisäksi tilakatsauksessa voidaan tuoda esille asioita, jotka haittaavat projektiryhmän työskentelyä. Kunkin tilakatsauksen valmistumisesta tiedotetaan projektiorganisaatiota sähköpostilistalle titus@korppi.jyu.fi. Tilakatsaukset sijoitetaan projektin TIM-kansiossa sijaitsevaan Dokumentit/Tilakatsaukset -alikansioon[6].

Projektiryhmä tiedottaa projektiorganisaatiota kaikista projektin läpivientiin liittyvistä muutoksista tai toimenpiteistä, joilla on merkitystä projektiryhmän tulosten valmistumiseen. Tiedotus tehdään viikottaisessa tilakatsauksessa tai kiireellisissä tilanteissa omalla sähköpostilla. Projektiryhmä tiedottaa myös sellaisista kohtaamistaan ongelmista ja haasteista, joiden koetaan hidastavan projektia ja joihin muulla projektiorganisaatiolla voisi olla ratkaisu. Tarvittaessa projektiryhmä käy kysymässä apua tai tarkennusta asioihin myös kasvotusten tilaajien edustajien työhuoneista.

Toisinaan tiedottamiseen voidaan käyttää myös TIM-järjestelmää. Erityisesti projektin TIM-kansioon on luotu erillinen keskustelusivu[7], jota käytetään projektiryhmän ja tilaajan teknisen edustajan väliseen viestintään. Tarvittaessa TIM-kansioon voidaan luoda myös muita dokumentteja, joissa kuvataan tarkemmin projektin tiettyjen tulosten kehitystä tai kehittämisessä kohdattuja ongelmia. Näistä muista dokumenteista tiedotetaan erikseen joko sähköpostilistalla tai keskustelusivulla.

Ryhmän sisäinen viestintä tapahtuu pääasiassa kasvotusten projektihuoneessa sekä WhatsApp-ryhmässä. Osa ryhmän sisäisestä kommunikaatiosta hoidetaan TIM-sivujen välityksellä sekä sähköpostitse erityisesti, jos jonkin tiedon halutaan säilyvän pitkään.

Kommunikoidessaan tilaajan edustajien ja ohjaajien kanssa projektiryhmän jäsenet ensisijaisesti lähettävät viestinsä sähköpostilistoille, jotta viestit tulevat koko projektiryhmän ja tarvittaessa myös koko projektiorganisaation tietoisuuteen. Tilaajan edustajien ja ohjaajien pyyntöihin ja kysymyksiin pyritään vastaamaan kahden arkipäivän sisällä. Jos tarkka vastaaminen vaatii esimerkiksi tiedonhakua tai muuta tehtävää, jota ei saada tehtyä kahdessa arkipäivässä, projektiryhmä vastaa pyyntöön ja kertoo arvioidun ajankohdan, jolloin vastaaminen on mahdollista. Tilaajan edustajat ja ohjaajat pyrkivät vastaavasti vastaamaan projektiryhmän pyyntöihin ja kysymyksiin kahden arkipäivän sisällä.

5.2 Palaverit

Projektin palaverit järjestetään helmi- ja maaliskuun aikana pääosin torstaina keskipäivällä. Huhti- ja toukokuun palavereiden aikataulusta sovitaan myöhemmin. Helmikuussa palavereita on pidetty viikon välein, jotta tilaajan tarpeet ja haasteet on saatu selville. Myöhemmin palavereita ei tarvitse pitää yhtä tiheään, koska projektiryhmän aika menee todennäköisesti enemmän itse toteutukseen kuin tilaajien tarpeiden selvittämiseen. Siten palavereita pidetään projektin edettyä pidemmälle lähtökohtaisesti vain joka toinen viikko. Tarvittaessa palavereiden väli voi olla myös lyhyempi tai pidempi.

Kussakin palaverissa tulee olla edustus jokaiselta projektiorganisaation osapuolelta, jotta palaveri olisi päätösvaltainen. Paikalla täytyy siten olla vähintään yksi edustaja projektiryhmästä, yksi tilaajien edustaja ja vastaava ohjaaja. Palaverin esityslista täytyy toimittaa projektiorganisaatiolle vähintään 24 tuntia ennen palaverin alkua, jotta palaveri on laillinen.

Palaverissa valitaan projektiryhmän jäsenistä puheenjohtaja ja sihteeri. Jokaisen projektiryhmän jäsenen tulee toimia projektin aikana vähintään kerran molemmissa tehtävissä. Sihteeri laatii palaverin esityslistan ja toimittaa sen projektiorganisaatiolle ajoissa. Puheenjohtaja ohjaa palaverin keskustelua esityslistan mukaan.

Sihteeri kirjaa muistiin palaverissa keskustellut asiat ja erityisesti sovitut päätökset sekä kirjoittaa niistä pöytäkirjan. Pöytäkirja toimitetaan puheenjohtajalle tarkastettavaksi. Jos sihteeri on laatinut vasta ensimmäisen pöytäkirjansa, puheenjohtaja toimittaa pöytäkirjan huomioiden kanssa edelleen vastaavalle ohjaajalle tarkastettavaksi. Puheenjohtajan ja mahdollisten vastaavan ohjaajan palautteiden jälkeen sihteeri tekee pöytäkirjaan vaaditut korjaukset ja toimittaa pöytäkirjan koko projektiorganisaatiolle.

Puheenjohtaja toimittaa tarvittaessa pöytäkirjan vastaavalle ohjaajalle viimeistään kolme arkipäivää palaverin jälkeen. Sihteeri toimittaa valmiin ja parannellun pöytäkirjan projektiorganisaatiolle viimeistään kahdessa arkipäivässä saatuaan palautteen puheenjohtajalta, ohjaajalta tai muilta projektiorganisaatioon kuuluvilta.

5.3 Lähdekoodi ja dokumentaatio

Lähdekoodissa noudatetaan TIM-järjestelmän kehittäjille laaditussa TIMin koodikäytänteet[8] -dokumentissa määriteltyjä käytänteitä.

Python-koodissa noudatetaan luvussa 2.2 mainittua PEP8-tyyliohjetta. PyCharm-kehitysympäristö osaa osin muotoilla koodin PEP8:n mukaiseksi, mutta muissa tapauksissa jäsenet ottavat mallia tyyliohjeesta tai valmiista TIMin lähdekoodista. Aliohjelmiin määritellään parametrien ja paluuarvon tyypit.

TypeScriptin ja AngularJS:n osalta noudatetaan camelCase-nimeämistyyliä. Jos on mahdollista, suositaan AngularJS:n ominaisuuksia tavallisen JavaScriptin tai jQueryn ominaisuuksien sijaan. Esimerkiksi AJAX-pyynnöissä käytetään AngularJS:n $http-palvelua ja funktiota getElementById vältetään. Koodi kommentoidaan JSDocin mukaisesti.

Kaikki luokat, aliohjelmat ja metodit kommentoidaan. Sekä koodi että kommentit kirjoitetaan englanniksi. Valmiiseen koodiin ei jätetä virheilmoituksia eikä varoituksia.

5.4 Lähdekoodin versiohallinta

Lähdekoodin versiohallintaan käytetään Gitiä GitLab-alustalla. Gitin käytössä noudatetaan TIMin koodikäytänteet -dokumentissa[8] määriteltyjä käytänteitä.

Kehitys tapahtuu titus-haarassa, joka on haara (engl. fork) angular-refactor-haarasta. Tarvittaessa jokainen projektiryhmän jäsen voi luoda omia kehityshaaroja titus-haaran pohjalta, joiden koodi liitetään titus-haaraan uusien ominaisuuksien ollessa valmiita. Lähdekoodi löytyy osoitteesta https://gitlab.com/Rampastring/tim.

Lähdekoodit päivitetään testausympäristöön aina, kun projektin tavoitteissa määriteltyjä ominaisuuksia on toteutettu tai valmiiksi toteutettuihin ominaisuuksiin on tehty merkittäviä muutoksia, joita on syytä testata.

5.5 Dokumenttien versiointi

Dokumenttien versioinnissa käytetään kolmiportaista numerointia. Viimeistä numeroa käytetään ryhmän sisäiseen numerointiin, toista numeroa ryhmän ulkopuolelle (ohjaajille tai tilaajan edustajille) julkistettaviin versioihin ja ensimmäistä numeroa hyväksyttyihin versioihin. Ryhmän sisäinen numerointi alkaa versiosta 0.0.1, ja viimeistä numeroa kasvatetaan aina yhdellä uudessa sisäisessä versiossa. Ensimmäinen vastaavalle ohjaajalle tai tilaajan edustajille julkistettu versio numeroidaan 0.1.0. Keskimmäistä numeroa kasvatetaan yhdellä aina, kun ryhmän ulkopuolelle julkistetaan uusi versio dokumentista. Ensimmäinen hyväksytty versio numeroidaan 1.0.0, ja uusien hyväksyttyjen versioiden yhteydessä kasvatetaan toista numeroa. Esimerkiksi toisen hyväksytyn version numero on 1.1.0, ja kolmannen 1.2.0.

Meneekö kappaleen lopussa numerointi aivan oikein? Että toinen hyväksytty versio olisi 1.1.0? Miten numeroidaan siinä tapauksessa, että kyseessä on ensimmäinen hyväksytty versio, johon on tehty muutoksia ja muutoksineen se on julkaistu muulle projektiorganisaatiolle, mutta tilaaja/ohjaajat eivät ole vielä hyväksyneet muutoksia?

05 Apr 18

Menee oikein, sillä jossain Santasen ohjeessa (en tosin muista, että missä) sanottiin, että "ylimmän" numeron muuttaminen on perusteltua vain jos dokumenttiin tehdään erittäin suuria muutoksia, ts. se kirjoitetaan melkein kokonaan uudestaan ensimmäisen hyväksynnän jälkeen.

Järjestelmä tuntuu kieltämättä minustakin oudolta, mutta noh. Kuvailemassasi tapauksessa kai vain kasvatetaan toista numeroa, että se on esim. 1.1.0, ja se pidetään samana hyväksymisestä riippumatta. Näin menettelin ainakin projektisuunnitelman kanssa.

06 May 18

5.6 Testaus

Projektin aikana sovellukseen kehitettyjä toimintoja ja ominaisuuksia testataan automaattitesteillä, toiminnallisella testauksella ja käytettävyystestauksella.

Automaattitestejä laadittaessa noudatetaan TIMin kehitysohjeiden automaattitestauksen ohjetta[9]. Ensisijaisesti suositaan palvelintestejä, koska niillä tulee testattua palvelimen reitit (engl. route) kokonaisvaltaisesti. Yksityiskohtaisemmille toiminnoille kirjoitetaan yksikkötestejä. Lisäksi sovelluksen selainpohjaisen käyttöliittymän testaamista varten kirjoitetaan selaintestejä. Projektin aikana testataan erilaisilla automaattitesteillä ainakin

  • kahta ominaisuutta palvelintesteillä,
  • kahta moduulia yksikkötesteillä,
  • yhtä testiskenaariota selaintestillä.

Automaattitestien laadinta tiettyä sovelluksen osaa varten on kehittäjien vastuulla. Tarkemmat testauskohteet sovitaan teknisen ohjaajan kanssa projektin aikana.

Sovellukseen kehitettyjä uusia toimintoja testataan toiminnallisella testauksella. Toimintojen testaamista varten laaditaan testitapaukset, joiden suorittamisella varmistetaan, että toiminnot suoriutuvat niille tarkoitetuista tehtävistä ja täyttävät vaatimukset. Testauksessa hyödynnetään tarvittaessa tiedekuntaneuvoston kokousten materiaaleja, jotka toteutetaan uudelleen TIMin ominaisuuksilla. TIMin ominaisuuksilla materiaalien laadinnan tulee olla kokonaisuutena helpompaa ja lopputuloksen vastaava tai suotavampi.

"TIMin ominaisuuksilla materiaalien laadinnan tulee olla kokonaisuutena helpompaa ja lopputuloksen vastaava tai suotavampi."
Suotavampi? Sanavalinta on ehkä hieman erikoinen.

05 Apr 18

Käytettävyystestauksella testataan, onko toimintoja varten laadittu käyttöliittymä helppokäyttöinen ja intuitiivinen. Käytettävyystestauksessa laaditaan tehtävänantoja, jotka suorittava kuuluu tilaajan edustajiin, muttei ole käyttänyt TIMiin kehittäviin toimintoihin liittyvää käyttöliittymää aiemmin. Ensisijaisesti testausta varten pyritään saamaan koekäyttäjäksi henkilö, joka kuuluu myös sovelluksen ja testattavien toimintojen loppukäyttäjiin.

Sekä toiminnallista testausta että käytettävyystestausta varten laaditaan erilliset testaussuunnitelmat, joissa kuvaillaan testauskerran läpivienti, testitapaukset ja tehtävänannot. Testauskerran jälkeen laaditaan testausraportti, jossa kuvataan testauskerralla suoritettujen testitapausten ja tehtävänantojen johtopäätökset ja huomiot. Raporttiin kirjataan myös mahdolliset suorittamatta jääneet testitapaukset ja tehtävänannot sekä syyt sille, miksei jotain testitapausta tai tehtävänantoa suoritettu. Mahdollisista virheistä ja havainnoista annetaan ohjeet, joilla ne saa toistettua. Lisäksi mahdolliset virheiden korjausehdotukset tulee kirjata raporttiin.

Toiminnallinen testaus suoritetaan sovelluksen olennaisten uusien toimintojen toteuttamisen loppuvaiheessa ja käytettävyystestaus silloin, kun uusia toimintoja varten on luotu vaatimukset täyttävä käyttöliittymä. Mahdollisten testauskerran perusteella löydettyjen ongelmien korjaamisen jälkeen harkitaan, kannattaako testauskerta suorittaa uudelleen. Erityisesti laajojen muutos- tai korjaustoimenpiteiden jälkeen testauskerrat pyritään suorittamaan uudelleen.

5.7 Päätöksenteko

Projektia koskevat päätökset tehdään ensisijaisesti palavereissa. Projektiryhmä päättää sisäisesti sellaiset projektin läpivientiin liittyvät asiat, jotka eivät suoraan vaikuta projektin tuloksiin ja läpivientiin. Tällaisia asioita ovat esimerkiksi työnjako, vastuualueet ja ryhmän sisäiset käytänteet. Ryhmän sisäisiä asioita koskevissa ristiriitatilanteissa projektipäälliköllä on tarvittaessa oikeus tehdä lopullinen päätös kuultuaan muita projektiryhmän jäseniä.

Mikäli palavereiden ulkopuolella ilmenee tarve tehdä projektiin vaikuttavia päätöksiä, siitä ilmoitetaan muulle projektiorganisaatiolle. Tällöin joko sovitaan palaverista, jossa asia päätetään, tai päätetään asia sähköpostin kautta, kunhan jokaisen projektiorganisaation osajoukon edustajat hyväksyvät päätöksen.

5.8 Tulosten katselmoinnit, hyväksyminen sekä luovutus

Tekninen ohjaaja katselmoi projektiryhmän kirjoittaman lähdekoodin vähintään kahdesti projektin aikana. Ohjaajalle on annettu oikeudet ryhmän Git-säilöön, joten hän voi tarvittaessa tarkastella lähdekoodia milloin tahansa projektin aikana.

Projektin lopussa lähdekoodi hyväksytetään teknisellä ohjaajalla, ellei sitä ole hyväksytty jo katselmoinnissa. Lisäksi toteutusratkaisut ja mahdolliset käyttöliittymäkomponentit hyväksytetään tilaajalla. Hyväksymisen jälkeen tekninen ohjaaja yhdessä projektiryhmän kanssa liittää ryhmän kirjoittaman koodin osaksi TIM-järjestelmän tuotantoversiota.

Tilaajan edustaja ja vastaava ohjaaja hyväksyvät allekirjoituksillaan projektin olennaisimmat dokumentit, kuten käyttöohjeet, projektisuunnitelman, projektiraportin, sovellussuunnitelmat, sovellusraportin, testaussuunnitelmat ja vaatimusmäärittelyn. Palaverien pöytäkirjat hyväksytään seuraavassa palaverissa tai sähköpostitse.

Projektin lopussa eri tulokset tulostetaan ja kootaan projektikansioon. Lisäksi kansioon sijoitetaan tulokset sisältävä CD-levy.

5.9 Tiedostojen ja hakemistojen nimeämiskäytänteet

Lähdekooditiedostot nimetään englanniksi noudattaen TIMin kehityksen[8] ja käytettävän ohjelmointikielen yleisiä käytänteitä. Projektin dokumentit laaditaan suomeksi ja nimetään tarkoituksen mukaan, esimerkiksi projektisuunnitelma. Mikäli samankaltaisia dokumentteja laaditaan useita, liitetään nimeen myös alaviivan jälkeen päivämäärä siten, että ensin tulee vuosi, sitten kuukausi ja viimeisenä päivä, esimerkiksi tilakatsaus_20180214. Nimissä ei käytetä ääkkösiä ja välilyöntien sijasta käytetään alaviivoja.

TIMin dokumenttien otsikot aloitetaan isolla kirjaimella. Vaikka esimerkiksi projektisuunnitelman tiedostonimi alkaa pienellä, niin dokumentin otsikkona on kuitenkin "Projektisuunnitelma". Lisäksi mahdolliset tiedostonimessä olevat päivämäärät sisällytetään otsikkoon tavallisessa suomalaisessa kalenterimuodossa, ilman etunollia.

5.10 Hakemistorakenne

Projektin TIM-kansiossa sekä projektin lopussa kirjoitettavalla CD-levyllä noudatetaan seuraavaa hakemistorakennetta. Hakemistorakenteessa kauttaviiva nimen perässä merkitsee, että kyseessä on tiedoston sijaan hakemisto.

dokumentit/
    ajankaytto
    projektiraportti
    projektisuunnitelma
    sovellusraportti
    sovellussuunnitelma
    vaatimusmaarittely
    katselmoinnit/
    sopimukset/
    testaus/
    tilakatsaukset/
kayttoohjeet/
palaverit/
    esityslistat/
    poytakirjat/
sahkopostiarkistot/
    titus
    titus_opetus
software/
    class_documentation/
    source_code/

6. Tehtäväkokonaisuudet, tehtävät ja tehtävänjako

Luku kuvaa projektin tehtäväkokonaisuuksia, niihin liittyviä tehtäviä ja työn määrää sekä projektiryhmän jäsenten vastuualueita ja tehtäväjakoa.

6.1 Tulokset ja vastuualueet

Projektipäällikkönä toimii Rami Pasanen ja varaprojektipäällikkönä Matti Leinonen. Taulukko 6.1 luettelee projektin olennaiset dokumentit ja sovellukseen toteuttavat toiminnallisuudet sekä niistä vastaavat jäsenet.

Asiakohdan läsnäolotaulukon generoiva liitännäinen toteutetaan vain, mikäli projektissa riittää aikaa. Se ei ole projektin valmistumisen kannalta pakollinen.

Tulos Vastuuhenkilö
Projektisuunnitelma Rami Pasanen
Projektiraportti Rami Pasanen
Sovellusraportti Rami Pasanen
Toiminnallisen testauksen dokumentit Matti Leinonen
Käytettävyystestauksen dokumentit Enni Stylman
Vaatimusmäärittely Enni Stylman
Taulukkomuoto Matti Leinonen
Graafinen taulukkoeditori Matti Leinonen
PDF-liitteiden integrointi TIMiin Visa Naukkarinen
PDF-liitteiden yhdistäminen ja leimaaminen Visa Naukkarinen
Pöytäkirjojen ja otteiden laadintaan
liittyvät TIM-preamblet ja makrot
Ronja Lindholm
Kokouskutsusta pöytäkirjaksi -muunnin Ronja Lindholm
Pöytäkirjojen otteiden tulostaminen Rami Pasanen
Asiakohdan läsnäolotaulukon generoiva
liitännäinen (ajan salliessa)
Enni Stylman
Käyttöohje Visa Naukkarinen

Onkohan tässä jo liikaa tekemistä, kun mukana on eistyslistasta pöytäkirjaksi -muunnin, pöytäkirjojen otteiden tulostustoiminto ja lisäksi asiakohdan läsnäolotaulukon generoiva liitännäinen. Myös testaus tulee viemään melko runsaasti aikaa.

Meidän pitänee neuvotella tilaajien kanssa näiden prioriteeteista, ja tylysti leikata esimerkiksi graafisen taulukkoeditorin tunneista jos se tulee tarpeen.

16 Mar 18 (edited 16 Mar 18)

Jos kaikille käyttöohjeille tarvitsee yhden tietyn vastuuhenkilön, saa laittaa minun nimeni siihen.

26 Mar 18

6.2 Tehtävät, työmäärä ja tarkempi tehtävänjako

Luku kuvaa projektin tehtäväkokonaisuudet, kokonaisuuksiin liittyvät yksittäiset tehtävät sekä kunkin jäsenen ennakoidun tehtäviin käytettävät työtunnit. Työtunnit on arvioitu katsomalla Timantti-projektin[10] toteutuneita työtunteja, sekä ryhmän suunnitelmia ja toteutuneita työtunteja ennen projektisuunnitelman valmistumista.

Saatan joutua lisäämään tunteja suunnittelun puolella vielä - luultavasti karsimalla toteutuksesta, jonne olin laittanut niitä ronskisti.

03 Mar 18

Kyseessä on arvio joka todennäköisesti menee kuitenkin joltain osin metsään, joten ei kannata ottaa liian vakavasti jos suunnitellut tunnit jakautuukin eri tavalla.

03 Mar 18
Kuva 6.1. Työnjako ja ajankäyttösuunnitelma.
Kuva 6.1. Työnjako ja ajankäyttösuunnitelma.

7. Projektin läpivienti

Luku kuvaa projektin läpiviennissä käytetyn prosessin ja projektin aikataulun.

7.1 Prosessi

Projekti jakautuu useaan erilliseen tehtäväkokonaisuuteen, joihin saattaa tulla tilaajan edustajilta paljon muutospyyntöjä. Siten projektissa noudatetaan prosessia, joka on ensisijaisesti inkrementaalinen ja toissijaisesti iteratiivinen.

Projektissa on kolme kolmen viikon mittaista kehitysvaihetta, joiden alussa suunnitellaan toteutus ja sovitaan tarkka työnjako. Ennen ensimmäistä kehitysvaihetta oli määrittely- ja suunnitteluvaihe, jonka aikana tutkittiin kohdealuetta, määriteltiin alustavia vaatimuksia sekä suunniteltiin projektin läpivientiä. Projektissa työstetään sovelluksen eri toimintoja yhtä aikaa eri jäsenten toimesta. Valmistuttuaan tulokset integroidaan projektin TIM-säilön päähaaraan.

Ensimmäisessä kehitysvaiheessa aloitetaan taulukkoliitännäisen toteutus ja toteutetaan PDF-liitteiden yhdistäminen kooditasolla. Pöytäkirjoihin liittyvien toimintojen vaatimuksia selvitetään.

Toisessa kehitysvaiheessa toteutetaan taulukkoliitännäinen loppuun. PDF-liitteiden yhdistämiselle kehitetään käyttöliittymä ja PDF-liitteiden integrointi TIM-dokumentteihin viimeistellään. Lisäksi toteutetaan pöytäkirjojen otteiden muodostustoiminto ja muunnin, joka muuttaa kokouskutsun pöytäkirjaksi. Taulukkopluginille ja PDF-liitteiden yhdistämiselle suoritetaan toiminnallinen testaus.

Kolmannessa kehitysvaiheessa toteutetaan graafinen taulukkoeditori ja suoritetaan sille sekä käytettävyystestaus että toiminnallinen testaus. Mikäli aikaa jää, toteutetaan myös automatisoitu pöytäkirjan asiakohdan läsnäolotaulukon generointi pöytäkirjan alusta löytyvän ison läsnäolotaulukon perusteella.

Viimeisen kehitysvaiheen jälkeen sovellus viimeistellään. Viimeistelyssä lähdekoodi katsotaan läpi ja siistitään sekä mahdolliset testauksessa ilmi tulleet ongelmat korjataan. Lisäksi kirjoitetaan käyttöohje, sovellusraportti ja projektiraportti. Viimeistelyn jälkeen projektin tulokset kootaan ja luovutetaan tilaajalle, minkä jälkeen projekti päättyy.

Osa toiminnoista, kuten TIM-preamblet ja makrot, voivat aiheuttaa paljon muutospyyntöjä projektin aikana. Näitä tuloksia työstetään iteratiivisesti usean kehitysvaiheen aikana siten, että ensin tehdään yksi vaatimukset täyttävä versio, jota testataan ja joka tarkastetaan tilaajalla. Mahdollisten muutospyyntöjen jälkeen tehdään uusi versio, joka tarkastetaan uudelleen. Prosessi jatkuu, kunnes toiminto hyväksytään. Toiminto voidaan integroida TIM-säilön päähaaraan useita kertoja, ennen kuin se on projektin kannalta lopullisesti valmis.

7.2 Aikataulu

Projektin aloitusluento oli 29.1.2018. Kehitettävä sovellus on tarkoitus saada valmiiksi toukokuun alkuun mennessä. Toukokuussa sovellukseen tehdään vielä mahdollisia pieniä korjauksia ja muuta hienosäätöä. Lisäksi toukokuussa kirjoitetaan käyttöohjeet sekä sovellus- ja projektiraportit. Dokumenttien ja lähdekoodin hyväksymisen jälkeen tulokset luovutetaan tilaajalle ja projekti päättyy. Mikäli projekti pysyy tavoiteaikataulussa, projekti päättyy 18.5.2018. Projektille on varattu pelivaraa puolitoista viikkoa, joten tarvittaessa projektia voidaan jatkaa myös toukokuun loppuun.

Kuva 7.1 esittää projektin suunnitellun aikataulun. Projekti päättyy suunnitellussa aikataulussa, mikäli projektin ja oheiskurssien työmäärä vastaa ennakoitua ja ryhmän jäsenet pitäytyvät keskimäärin 20 tunnin viikkotyöajassa.

Kuva 7.1. Projektin suunniteltu aikataulu.
Kuva 7.1. Projektin suunniteltu aikataulu.

8. Riskit

Luku käsittelee projektiin liittyviä ennakoituja riskejä ja niiden todennäköisyyksiä, haittavaikutuksia sekä hallintaa.

8.1 Riskien todennäköisyydet ja haitat

Projektin riskit on arvioitu aikaisemman Timantti-projektin projektisuunnitelman[1] perusteella sekä keskustelemalla projektiryhmän sisällä ja ohjaajien kanssa. Riskien todennäköisyyksien ja haittavaikutusten arvioinnissa käytetty asteikko on pieni, keskisuuri ja suuri. Riskit sekä niiden arvioidut todennäköisyydet ja haittavaikutukset on esitelty taulukossa 9.1.

Riski Todennäköisyys Haittavaikutus
Jäsenten poissaolot Pieni Keskisuuri
Jäsenten muut sitoumukset Keskisuuri Suuri
Vaatimusten lisääntyminen ja muuttuminen Suuri Keskisuuri
Tilaajan edustajien erilaiset tarpeet ja toiveet Keskisuuri Keskisuuri
Kokemattomuus projektin hallinnasta Suuri Pieni
Kokemattomuus TIM-järjestelmästä ja työkaluista Keskisuuri Pieni

8.2 Jäsenten poissaolot

Yksikään projektiryhmän jäsen ei ole suunnitellut matkoja projektin ajalle. Siten ainoa poissaoloja aiheuttava asia on mahdolliset jäsenten sairastumiset tai yllättävät elämänmuutokset. Poissaolot hidastaisivat projektia ja vaikeuttaisivat kommunikaatiota. Tavallisten tautien ei odoteta aiheuttavan projektille suurta haittaa, joskin mahdollisia ovat myös merkittävämmät ongelmat, kuten työuupumus.

Poissaolojen aiheuttamaa riskiä pyritään minimoimaan siten, että jokaista tehtävää on työstämässä aina vähintään kaksi projektiryhmän jäsentä. Tällöin tehtävä ei pysähdy siihen, että jäsenistä yksi on poissa. Mikäli projektin aikana ilmaantuu ennakoitavia poissaoloja, voi poissaoleva jäsen pyrkiä tekemään enemmän töitä ennen poissaoloa, jotta poissaolo hidastaisi projektin etenemistä mahdollisimman vähän.

8.3 Jäsenten muut sitoumukset

Projektiryhmän jäsenillä on projektin aikana vaihtelevasti menossa toisia kursseja. Lisäksi ryhmän jäsenistä kolme on osa-aikaisesti töissä. Toisilla kursseilla ja töissä vaaditut tehtävät vähentävät työaikaa, jota projektiryhmän jäsenet voivat käyttää itse projektiin.

Toukokuun alussa Stylmanilla alkaa kokopäiväinen työ. Todennäköisesti kesäkuun alusta myös muilla projektiryhmän jäsenillä alkaa kokopäiväisiä sitoumuksia, jotka merkittävästi vähentävät viikoittaista projektiin käytettävää aikaa. Kesäkuusta lähtien pienempi viikoittainen työaika voi viivästyttää projektia useilla viikoilla, mikäli projektia ei saada valmiiksi toukokuun loppuun mennessä.

Myöhään keväällä ja kesällä alkavien kokopäivätöiden aiheuttamaa riskiä pyritään minimoimaan tekemällä projekti valmiiksi tavoiteaikataulussa ennen kesäkuun alkua. Toisten kurssien ja osa-aikatöiden aiheuttamaa riskiä minimoidaan seuraamalla projektiryhmän jäsenten työmäärää viikoittaisissa tilakatsauksissa. Mikäli työmäärä jää jollain viikolla jälkeen tavoitteesta, jäsenen on tehtävä vastaavasti enemmän työtä tulevina viikkoina, jotta projektin viivästyminen voidaan välttää.

8.4 Vaatimusten lisääntyminen ja muuttuminen

Projektin aikana tilaajien esittämät vaatimukset todennäköisesti lisääntyvät, kun toteuttaviin kokonaisuuksiin keksitään lisää mahdollisia ominaisuuksia. Vaatimusten lisääntyessä projekti voi viivästyä, sillä ryhmä joutuu ottamaan huomioon asioita, joita ei ole tiedetty suunnitellessa aikataulua tai toteutuksen alkuvaiheessa. Jo toteuttuja toimintoja saatetaan joutua muuttamaan ja suunnittelemaan uudelleen uusien vaatimusten täyttämiseksi, mikä kasvattaa työn määrää.

Vaatimusten lisääntymistä ei voi estää, mutta vaatimusten määrittelyllä ja hallinnalla voidaan vaikuttaa siihen, paljonko uudet vaatimukset hidastavat projektia. Alkuperäisten vaatimusten perusteella toiminnoista pyritään toteuttamaan ensin yksinkertaiset versiot, joita on tarvittaessa helppo laajentaa tai toteuttaa uudelleen eri tavalla tilaajan uusien vaatimusten täyttämiseksi. Lisäksi vielä toteuttamattomia vaatimuksia pyritään rajaamaan projektin ulkopuolelle, mikäli ne uhkaavat viivästyttää projektia.

8.5 Tilaajan edustajien erilaiset tarpeet ja toiveet

Tilaajista tiedekunnan kokousdokumenttien laatijoiden intressinä on kokousdokumenttien laatimisen helpottaminen TIM-järjestelmän avulla. Tilaajan tekninen edustaja haluaa lisäksi kehittää itse TIM-järjestelmää. Palavereissa onkin ilmennyt tilaajan edustajilla olevan erilaisia tarpeita ja toiveita toteutettavien toimintojen suhteen. Lisäksi joidenkin toimintojen prioriteeteistä on oltu erimielisiä.

Projektiryhmän tulee ottaa ratkaisuissaan huomioon sekä kokousdokumenttien laatijat että tilaajan tekninen edustaja, jolloin erilaiset tarpeet ja toiveet hankaloittavat vaatimusten ja niiden prioriteettien selvittämistä. Epäselvät vaatimukset ja prioriteetit voivat viivästyttää projektia, jos kehitetyt toiminnot eivät vastaakaan kaikkien tilaajan edustajien toiveita ja valmista toteutusta joudutaan muuttamaan.

Riskiä pyritään ehkäisemään olemalla aktiivisesti yhteydessä sekä kokousdokumenttien laatijoihin että tilaajan tekniseen edustajaan. Mikäli ristiriitaisia toiveita ilmenee, yritetään tilaajan eri edustajat saada muodostamaan keskenään yhteinen näkemys ja uudelleenpriorisoimaan toimintoja mahdollisimman varhaisessa vaiheessa.

8.6 Kokemattomuus projektin hallinnasta

Projektipäälliköllä ei ole lainkaan kokemusta projektin hallinnasta. Myös osalla muista ryhmän jäsenistä projektikokemus on rajallista. Siten työtuntien ja aikataulujen arviointi on haastavaa sekä kokemuksen puute projektityöskentelystä voi ajoittain vaikeuttaa esimerkiksi ryhmän sisäistä kommunikointia sekä yhteistyötä tilaajan edustajien kanssa.

Riskin vaikutusta minimoidaan olemalla aktiivisesti yhteydessä muihin niin projektiryhmän sisällä kuin myös projektiorganisaatiossa. Ohjaajilta ja tilaajan tekniseltä edustajalta kysytään tarvittaessa neuvoa. Viikoittaisissa tilakatsauksissa pidetään tarkasti silmällä projektin tilaa. Tarvittaessa sovitaan korjaavista toimenpiteistä, mikäli projekti ei ole edennyt toivotusti.

8.7 Kokemattomuus TIM-järjestelmästä ja työkaluista

Projektin jäsenillä on rajallisesti kokemusta joistain TIM-järjestelmässä käytetyistä ohjelmointikielistä, kuten Pythonista ja AngularJS:stä. Lisäksi projektiryhmällä ei ole lainkaan aiempaa kokemusta TIM-järjestelmän kehittämisestä tai tietoa sen sisäisestä toiminnasta. Siten projektiryhmällä menee aikaa tutustuessa TIM-järjestelmän rakenteeseen, lähdekoodiin ja kehitystyökaluihin, mikä voi hidastaa projektin etenemistä.

Riskin ehkäisynä aikatauluun on varattu runsaasti aikaa työkaluihin tutustumiselle ja suunnittelulle. Kaikilla jäsenillä on jonkin verran ja joillain verrattain runsaasti ohjelmointikokemusta, joten kielten opettelun ei odoteta olevan haastavaa. TIM-järjestelmän rakenteen ja lähdekoodin ymmärtämiseen sekä toimintojen kehittämiseen saadaan tarvittaessa apua tekniseltä ohjaajalta.

9. Yhteenveto

Titus-projekti kehittää Jyvaskylän yliopiston informaatioteknologian tiedekunnassa kehitettyyn TIM-järjestelmään toimintoja, jotka helpottavat IT-tiedekunnan tiedekuntaneuvoston kokousdokumenttien laadintaa. Tavoitteena on korvata TIM-järjestelmällä useita nykyisessä kokousdokumenttien laadintaprosessissa käytettyjä työkaluja sekä siten yksinkertaistaa ja helpottaa dokumenttien laadintaprosessia. Toteutetuista toiminnoista tehdään mahdollisimman yleiskäyttöisiä siten, että ne hyödyttävät tiedekuntaneuvoston lisäksi myös muita TIM-järjestelmän käyttäjiä.

Projekti läpiviedään kevään 2018 aikana. Suurimmat riskit projektille ovat projektiryhmän jäsenten muut sitoumukset sekä projektin vaatimusten lisääntyminen ja muuttuminen projektin aikana. Riskit voivat aiheuttaa projektin viivästymisen. Riskeihin on varauduttu seuraamalla projektin tilaa aktiivisesti, mikä mahdollistaa tarvittavien korjausliikkeiden tekemisen ajoissa. Mikäli projekti kuitenkin viivästyy, on viivästymiseen varauduttu puolentoista viikon pelivaralla toukokuun lopussa.

Sovellusprojektissa projektiryhmän jäsenet oppivat projektimuotoista ryhmätyöskentelyä ja saavat kokemusta sovelluskehityksen läpiviennistä. Lisäksi ryhmän jäsenet saavat kokemusta projektissa käytetyistä ohjelmointikielistä ja työkaluista, kuten Pythonista ja AngularJS:stä.

Lähteet

[1] Miika Kujala, Topi Latva-Salo, Tuomas Porvali ja Marja Similä, Timantti-sovellusprojektin projektisuunnitelma, saatavilla osoitteesta https://tim.jyu.fi/view/kurssit/tie/proj/2017/timantti/dokumentit/projektisuunnitelma, Jyväskylän yliopisto, informaatioteknologian tiedekunta, 2017.

[2] Guido van Rossum, Barry Warsaw and Nick Coghlan, PEP8 -- Style Guide for Python, saatavilla osoitteesta https://www.python.org/dev/peps/pep-0008/, Python Software Foundation. Viitattu 16.3.2018.

[3] Matti Leinonen, Ronja Lindholm, Visa Naukkarinen, Rami Pasanen ja Enni Stylman, Titus-projektin vaatimusmäärittely, saatavilla osoitteesta https://tim.jyu.fi/view/kurssit/tie/proj/2018/titus/dokumentit/vaatimusmaarittely, Jyväskylän yliopisto, informaatioteknologian tiedekunta, 2018.

[4] Opensource.org, The MIT License | Open Source Initiative, saatavilla osoitteesta https://opensource.org/licenses/MIT, Opensource.org. Viitattu 14.2.2018.

[5] Creative Commons, Creative Commons - Attribution 4.0 International - CC BY 4.0, saatavilla osoitteesta https://creativecommons.org/licenses/by/4.0/, Creative Commons. Viitattu 14.2.2018.

[6] Matti Leinonen, Ronja Lindholm, Vesa Naukkarinen, Rami Pasanen ja Enni Stylman, Titus-projektin tilakatsaukset, saatavilla osoitteesta https://tim.jyu.fi/view/kurssit/tie/proj/2018/titus/dokumentit/tilakatsaukset, Jyväskylän yliopisto, informaatioteknologian tiedekunta, 2018.

[7] Matti Leinonen, Ronja Lindholm, Vesa Naukkarinen, Rami Pasanen ja Enni Stylman, Titus-projekti, Keskustelua projektiin liittyen, saatavilla osoitteesta https://tim.jyu.fi/view/kurssit/tie/proj/2018/titus/keskustelua-projektiin-liittyen, Jyväskylän yliopisto, informaatioteknologian tiedekunta, 2018.

[8] TIMin kehittäjät, TIMin koodikäytänteet, saatavilla osoitteesta https://tim.jyu.fi/view/tim/TIMin-kehitys/Koodikaytanteet, Jyväskylän yliopisto, informaatioteknologian tiedekunta. Viitattu 14.2.2018.

[9] TIMin kehittäjät, Testaaminen, saatavilla osoitteesta https://tim.jyu.fi/view/tim/TIMin-kehitys/Testaaminen, Jyväskylän yliopisto, informaatioteknologian tiedekunta. Viitattu 18.2.2018.

[10] Miika Kujala, Topi Latva-Salo, Tuomas Porvali ja Marja Similä, Timantti-sovellusprojektin projektiraportti. Jyväskylän yliopisto, informaatioteknologian tiedekunta, 2017.

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.