TIMCAN-projektin projektisuunnitelma

Versio 1.0.0
Julkinen
25.4.2019

Allekirjoitukset

Hyväksyjä Päivämäärä Allekirjoitus Nimenselvennys
Projektipäällikkö Elisa Nauha
Tilaajan edustaja Ari Huhta
Ohjaaja Jukka-Pekka Santanen

Muutoshistoria

Versio Päivämäärä Muutokset Tekijät
0.0.1 11.2.2019 Hahmoteltiin pohjaa ja aloitettiin kirjoittaminen. EN
0.0.2 18.2.2019 Jatkettiin kirjoittamista johdannosta, käsitteistä, taustasta ja tavoitteista. EN
0.0.3 20.2.2019 Hahmoteltiin prosessimallia. EN
0.0.4 25.2.2019 Kirjoitettiin prosessimalli ja aikataulu Gantt-kaavioineen. EN
0.0.5 26.2.2019 Kirjoitettiin riskeistä. EN
0.0.6 27.2.2019 Kirjoitettiin käytänteistä. EN
0.0.7 28.2.2019 Kirjoitettiin testauksesta ja yhteenveto. EN
0.0.8 4.3.2019 Tarkistettiin teksti sekä korjattiin virheitä ja ehdotettiin muutoksia. JK
0.0.9 5.3.2019 Korjattiin pieniä virheitä ja muokattiin projektiorganisaatiolle julkistettavaksi. EN
0.1.0 5.3.2019 Luovutettiin vastaavalle ohjaajalle tarkistettavaksi. EN
0.1.1 13.3.2019 Korjattiin vastaavan ohjaajan huomioita luvuista 1-2. EN
0.1.2 19.3.2019 Korjattiin vastaavan ohjaajan huomioita luvuista 3-4. EN
0.2.0 20.3.2019 Korjattiin vastaavan ohjaajan huomioita luvuista 5-9. EN
0.2.1 25.3.2019 Korjattiin vastaavan ohjaajan huomioita luvuista 1-3 EN
0.3.0 26.3.2019 Korjattiin vastaavan ohjaajan huomioita luvuista 4-9 sekä uusittiin kuvat 6.1 ja 7.1. EN
0.3.1 28.3.2019 Korjattiin tilaajan edustajien huomioita. EN
0.3.2 4.4.2019 Korjattiin vastaavan ohjaajan huomioita. EN
1.0.0 25.4.2019 Tarkastettiin tulostuksen muotoilu EN

Projektiorganisaatio

Projektiryhmä

  • Hanna Alatalo (HA), hanna.m.alatalo@student.jyu.fi
  • Jarkko Kuivanen (JK), jarkko.t.kuivanen@student.jyu.fi
  • Elisa Nauha (EN), elisa.k.nauha@student.jyu.fi
  • Jere Ojala (JO), jere.j.ojala@student.jyu.fi
  • Kimmo Urtamo (KU), kimmo.j.urtamo@student.jyu.fi

Tilaajan edustajat

  • Ari Huhta, ari.huhta@jyu.fi
  • Dmitri Leontjev, dmitri.leontjev@jyu.fi

Ohjaajat

  • Visa Naukkarinen, tekninen ohjaaja, visa.naukkarinen@gmail.com
  • Jukka-Pekka Santanen, vastaava ohjaaja, santanen@mit.jyu.fi

TIM-asiantuntijat

  • Vesa Lappalainen, vesa.t.lappalainen@jyu.fi
  • Mika Lehtinen , mika.k.lehtinen@student.jyu.fi

Yhteystiedot

Avainsanat

Adaptiivinen palaute, aikataulu, dynaaminen arviointi, kielentutkimus, käytänteet, liitännäinen, opetus, oppimisympäristö, plugin, projekti, projektisuunnitelma, prosessi, resurssit, riskit, tavoitteet, testaus, TIM.

Tiivistelmä

TIMCAN-projektissa TIM-järjestelmään kehitettävät ominaisuudet korvaavat soveltavan kielentutkimuksen keskuksen käyttämän erillisen ICAnDoiT-ohjelman. ICAnDoiT-ohjelmaa on käytetty kielen oppimisen tutkimukseen erityisesti adaptiivisen palautteen vaikutuksen arvioinnissa [1]. Kehitettävät ominaisuudet mahdollistavat adaptiivisen palautteen rakentamisen, sen antamisen oppilaalle tai koehenkilölle tehtäviä tehdessä ja oppimista kuvaavien raporttien muodostamisen tutkimustarkoituksiin. Dokumentti kuvaa projektin taustoja, tavoitteita, käytössä olevat resurssit, projektissa noudatettavat käytänteet, tehtäväjaon, työmäärän, aikataulun, sekä riskien hallinnan.

1. Johdanto

TIMCAN-projekti kehittää Jyväskylän yliopiston informaatioteknologian tiedekunnassa kehitettyä TIM-järjestelmää paremmin soveltuvaksi soveltavan kielentutkimuksen keskuksen tutkimukseen. Heidän käytössään olleen ICAnDoiT-ohjelman jatkokehitys ja ylläpito on lopetettu. Projektissa kehitetään TIM-järjestelmään vastaavat toiminnallisuudet kuin ICAnDoiT-ohjelmassa.

ICAnDoiT-ohjelmalla laaditaan tutkimuskäyttöön kielen osaamista mittaavia testejä, joita koehenkilöt tekevät valvotuissa olosuhteissa. ICAnDoiT-ohjelman tärkein ominaisuus on adaptiivinen palaute, jossa koehenkilön tehtävään saama palaute riippuu koehenkilön aiemmista vastauksista ja täten osaamistasosta. Tehtäviä varten on kehitettävä uudenlaisia kysymystyyppejä TIM-järjestelmään. Tutkimusta varten on myös tärkeää saada raportti koehenkilön vastauksien kulusta ml. annetuista vastauksista ja saadusta palautteesta sekä vastaamiseen ja palautteen lukemiseen käytetystä ajasta. Lisäksi projektin tavoitteena on huomioida kehitettävien ominaisuuksien soveltuvuus myös muiden TIM-järjestelmän käyttäjien tarpeisiin.

Projektisuunnitelman laatimisessa on otettu mallia Titus-projektin projektisuunnitelmasta [2]. Projektissa laaditaan myös vaatimusmäärittely, sovellussuunnitelmia, testausdokumentteja, sovellusraportti, käyttöohjeet ja projektiraportti. Vaatimusmäärittelyssä [3] kuvataan vaatimukset, jotka kehitettävän sovelluksen tulee täyttää. Sovellussuunnitelmissa kuvataan sovelluksen osien rakennetta ja logiikkaa. Testausdokumenteissa kuvataan sovelluksen testauksen tavoitteet, testitapaukset ja testausten tulokset. Sovellusraportissa kuvataan toteutetun sovelluksen käyttöliittymää ja rakennetta, tavoitteiden ja vaatimusten toteutumista sekä toteutusratkaisuja ja jatkokehitysideoita. Käyttöohjeissa neuvotaan sovelluksen peruskäyttö uusille käyttäjille. 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ääriä ja projektiryhmän jäsenten vastuualueet. 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 ja kohdealue

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

  • Adaptiivinen palaute on palautetta, joka riippuu koehenkilön tai oppilaan vastauksista ja aiemmasta suoritustasosta sekä muuttuu testin aikana riippuen suoriutumisesta.
  • Alasvetovalikko (engl. dropdown) on kysymystyyppi, jossa avattavasta listasta voi valita vastausvaihtoehdon.
  • Harjoitustehtävä (engl. practice item) on tehtäväsarjan alussa esiintyvä tehtävä, joka esittelee kunkin tehtävätyypin mekaanisen vastaamistavan.
  • ICAnDoiT on tilaajalle aiemmin kehitetty ohjelma, joka mahdollistaa adaptiivisen palautteen tutkimuksen kielenoppimisessa.
  • Kysymystyyppi on TIM:iin toteutettu kysymystyyppi, jota voi käyttää tehtävien laatimisessa.
  • Lopetusehto (engl. stopping condition) on tehtäväsarjalle määritelty ehto, jonka toteutuessa tehtäväsarjan suoritus lopetetaan ja siirrytään testin seuraavaan tehtäväsarjaan.
  • Mallitehtävä (engl. sample item) on ICAnDoiT-ohjelmassa tehtäväsarjan tehtävien malli, jolle määritellään muille tehtäville yhtenäinen palaute.
  • Palaute-plugin (engl. feedback plugin) on TIM:iin toteutettava liitännäinen, jossa määritellään tehtäväsarjan tehtäville palaute, vrt. ICAnDoiT-ohjelman mallitehtävä.
  • Raahaa ja pudota (engl. drag & drop) on kysymystyyppi, jossa yhdestä kentästä siirretään hiiren avulla sanoja toiseen kenttään. Vastaus muodostuu sanojen järjestyksestä.
  • Tehtävä (engl. question item) on yksittäinen tehtävä sarjassa ja perustuu mallitehtävään.
  • Tehtäväsarja (engl. task) on kokoelma samanlaisia tehtäviä, joilla on yhtenäinen toisistaan riippuva palaute.
  • Testi (engl. test) on kokoelma tehtäväsarjoja, jonka koehenkilö tai oppilas suorittaa kerralla.
  • TIM (The Interactive Material) on Jyväskylän yliopistossa kehitetty vuorovaikutteinen oppimisympäristö.
  • TIM-dokumentti on yksi sivu TIM-järjestelmässä, ja sillä on oma WWW-osoite.
  • TIM-lohko (engl. TIM-block) on TIM-dokumentin osio. Se on yleisesti yksi tai useampi tekstikappale tai muu yhtenäinen kokonaisuus (kuten plugin, huom. ei inline plugin), jolla on muista erillinen muokattava YAML-merkintä.

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.
  • 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.
  • JSON (JavaScript Object Notation) on tiedon siirtämiseen ja tallentamiseen tarkoitettu avoimen standardin merkintäkieli.
  • 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.
  • 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 merkintäkieli.

2.3 Ohjelmistokehityksen käsitteet ja työkalut

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

  • camelCase viittaa tapaan nimetä esimerkiksi luokkia ja aliohjelmia lähdekoodissa siten, että nimen jokainen sana aloitetaan isolla kirjaimella.
  • Docker on sovellus, jonka avulla ajetaan sovelluksia virtuaalisoidussa säilössä.
  • Plugin tai liitännäinen on TIM-järjestelmän osa, joka lisää toiminnallisuutta dokumentteihin. Erillinen inline-plugin mahdollistaa pluginien liittämisen normaalin tekstin sekaan.
  • PEP8 [4] määrittelee Python-ohjelmia kirjoittaessa suositeltuja ohjeita ja sääntöjä.
  • PyCharm on erityisesti Python-ohjelmien kirjoittamiseen käytetty ohjelmointiympäristö. Sitä käytetään myös TIMin kehittämiseen.

3. Tausta ja tavoitteet

Luvussa kuvataan TIMCAN-projektin taustaa ja tavoitteita. Luvussa esitellään projektin kohdealuetta, kehitettävään TIM-järjestelmään toteutettavia ominaisuuksia ja projektin oppimistavoitteita. Lisäksi kuvataan projektissa laadittavat dokumentit.

3.1 Projektin tausta ja tavoitteet

TIMCAN-projekti jatkokehittää informaatioteknologian tiedekunnan TIM-järjestelmää. Kehityksen päämääränä on tehdä TIM-järjestelmästä sopiva soveltavan kielentutkimuksen keskuksen tarpeisiin. Tällä hetkellä keskuksen käytössä on ICAnDoiT-ohjelmisto, jota ei enää jatkokehitetä eikä ylläpidetä. Projektissa ICAnDoiT-ohjelmiston ominaisuudet toteutetaan TIM-järjestelmään.

Tärkein ICAnDoiT-ohjelmiston ominaisuus on adaptiivisen palautteen antaminen. Adaptiivinen palaute ja sen vaikutus on ajankohtainen osa-alue kielen oppimisen tutkimusta. Adaptiivisessa palautteessa oppilaan tai koehenkilön tehtävästä saama palaute riippuu vastauksen ohella siitä, mitä hän on vastannut aiempiin tehtäviin. Tutkimustarkoituksiin tarvitaan raportti oppilaan vastauksista ja saadusta palautteesta sekä tehtävien ja palautteen lukemiseen käytetystä ajasta.

Testit laaditaan dokumentteinä TIM-järjestelmään projektissa kehitettäviä ominaisuuksia hyödyntäen. Jokainen tehtäväsarja testissä on yksi TIM-dokumentti ja kukin tehtävä on yksi TIM-lohko. Testin laatimisen tulisi olla mahdollisimman suoraviivaista, sillä adaptiivisen palautteen rakentaminen itsessään on logiikaltaan monimutkaista. Testin toteuttamiseksi tarvitaan uusia tehtävätyyppejä, jotka ovat löytyneet ICAnDoiT-ohjelmistosta, mutta joita ei ole toteutettu TIM-järjestelmään.

Projektin päämääränä on myös TIM-järjestelmän kehittäminen. Projektissa TIM:iin kehitetyistä 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 soveltavan kielentutkimuksen keskuksen tutkimusprojekteja. Tutkijoiden ohella kehitystyössä tulee huomioida myös TIM:iä käyttävät opettajat ja opiskelijat. Kehitettäviä ominaisuuksia kuvataan tarkemmin luvussa 3.2.

3.2 Tavoitteet sovelluksen osalta

TIMCAN-projektissa kehitetään TIM-sovellusta siten, että sen avulla voi luoda testejä, joissa oppilaat tai koehenkilöt saavat vastauksiinsa adaptiivista palautetta, kuten ICAnDoiT-ohjelmassa. Kehitettävistä toiminnoista pyritään tekemään mahdollisimman helppo- ja yleiskäyttöisiä siten, että niistä olisi hyötyä myös muille TIM:in käyttäjille.

Projektin tavoitteena on toteuttaa TIM-järjestelmään seuraavat ominaisuudet:

  • Kaksi uutta kysymystyyppiä tulee voida sijoittaa TIM-dokumentissä normaalin tekstin sekaan (ns. inline plugin). Kyseiset kysymystyypit ovat alasvetovalikko (engl. dropdown) sekä raahaa ja pudota (engl. drag&drop).
  • Testiä rakennettaessa TIM-dokumenttiin tulee voida
    • koostaa testi useasta tehtäväsarjasta, joille määritellään oma adaptiivinen palaute,
    • koostaa yksi tehtäväsarja useasta samanlaisesta kysymyksestä, ja
    • määritellä tehtäväsarjoille lopetusehtoja, joiden toteutuessa siirrytään seuraavaan tehtäväsarjaan tai testin loppuun.
  • Testinäkymässä oppilas suorittaa testin tehtävä kerrallaan ilman testiin liittymättömiä TIM:in käyttöliittymäelementtejä. Tehtävään vastaamisen jälkeen tulee aina näkyviin palaute ennen seuraavaan tehtävään siirtymistä.
  • CSV-muotoinen raportti sisältää oppilaan vastaukset ja palautteet, sekä kuinka kauan oppilas luki kutakin näkymää.

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:

  • Hanna Alatalo haluaa syventää Python-osaamistaan palvelinohjelmoinnissa. Hänen tavoitteena on myös oppia WWW-sovelluskehityksen perusteita ja harjoitella ohjelmistosuunnittelua vaatimusmäärittelyn perusteella.

  • Jarkko Kuivanen haluaa oppia erityisesti palvelinpuolen ohjelmointia ja Python-kielellä ohjelmointia. Myös tietokantaosaamisen kasvattaminen ja projektityöskentelyn terävöittäminen ovat tavoitteena.

  • Elisa Nauha haluaa oppia IT-alalle tyypillisiä projektimuotoisen työtavan käytänteitä. Hänen tavoitteena on myös saada kokemusta käytössä olevan ohjelmiston kehittämisestä.

  • Jere Ojala haluaa saada kokemusta työskentelystä asiakasprojekteissa ja projektiryhmissä sekä suunnitteluvaiheista ja ohjelmointikäytänteistä. Uusiin kieliin ja tekniikoihin perehtyminen on myös hänen tavoitteena.

  • Kimmo Urtamo haluaa kerätä kokemusta projektityöskentelystä oikeaan käyttöön tulevan sovelluksen kehityskaaren aikana sekä opetella käyttämään projektissa hyödynnettäviä ohjelmointikieliä ja -tekniikoita.

3.4 Projektin tulokset

Projektin läpivientiä koskevat dokumentit kirjoitetaan suomen kielellä. Kehitettävää sovellusta ja sen käyttöä koskevat dokumentit kirjoitetaan englannin kielellä, jotta soveltavan kielentutkimuksen keskuksen kanssa yhteistyötä tekevät kansainväliset tutkijat voivat käyttää ohjelmaa.

Projektin läpivientiä koskevat tulokset (kirjoitetaan suomen kielellä) ovat seuraavat:

  • Ajankäyttöraportti sisältää projektin jäsenten ajankäytön tehtävittäin.
  • Lisenssisitoumuksella projektiryhmä sitoutuu sijoittamaan projektissa kirjoittamansa lähdekoodin The MIT License -lisenssin [5] alaisuuteen, sekä projektin dokumentit ja muun materiaalin Creative Commons Attribution 4.0 International -lisenssin [6] alaisuuteen.
  • Palaverien dokumentit sisältävät esityslistat ja pöytäkirjat, joissa kerrotaan palavereissa käsitellyt ja päätetyt asiat.
  • Projektisuunnitelma kuvaa projektin taustoja, tavoitteita, käytössä olevat resurssit, projektin läpiviennin käytänteet, tehtäväjaon, työmääriän, aikataulun ja riskien hallinnan.
  • Projektiraportti kuvaa projektin toteutuneen läpiviennin, eri osa-alueiden tavoitteiden toteutumisen sekä toteutuman ja suunnitelman eroja ja syitä.
  • Sähköpostiarkistot sisältävät projektin aikana projektin molemmille sähköpostilistoille lähetetyt viestit.
  • Tilakatsauksissa kuvataan projektin tilaa tiettynä ajanhetkenä.
  • Vaitiolosopimuksella jokainen ryhmän jäsen sitoutuu pitämään kehityksen aikana nähdyt tietojärjestelmien yksittäisiin henkilöihin liitettävissä olevat tiedot tai materiaalit sekä Titus-projektin luottamukselliset materiaalit salassa.

Kehitettyä ohjelmistoa koskevat tulokset (kirjoitetaan englannin kielellä) ovat seuraavat:

  • Lähdekoodi sisältää sovellusta varten kirjoitetun ohjelmakoodin.
  • Käyttöohjeessa kerrotaan, miten kehitettyä sovellusta käytetään.
  • Sovellusraportti kuvaa sovelluksen käyttöliittymää ja rakennetta, tavoitteiden ja vaatimusten toteutumista sekä toteutusratkaisuja ja jatkokehitysideoita.
  • Sovellussuunnitelmat kuvaavat sovelluksen osien käyttöliittymää, rakennetta ja logiikkaa.
  • Testaussuunnitelmat kuvaavat, miten sovelluksen ominaisuuksia aiotaan testata ja miten testauskerrat suoritetaan.
  • Testausraportit käsittelevät testauskertojen tuloksia sekä mahdollisia testauksessa havaittuja virheitä ja huomioita.
  • Vaatimusmäärittely kuvaa ja priorisoi tiedot ja toiminnot, jotka kehitettävä sovellus tarjoaa käyttäjille.

4. Resurssit

Luvussa kuvataan projektiin osallistuvia henkilöitä, 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, vastaavasta ohjaajasta, teknisestä ohjaajasta ja TIM-asiantuntijoista.

Projektiryhmään kuuluvat Hanna Alatalo, Jarkko Kuivanen, Elisa Nauha, Jere Ojala ja Kimmo Urtamo. Projektin alkaessa ryhmän jäsenten tietotaidot olivat seuraavanlaiset:

  • Alatalolla on jonkin verran ohjelmointikokemusta mm. Pythonista. Hän on suorittanut myös aineopintojen projektityön.
  • Kuivasella on muilta kursseilta hankittua kokemusta WWW-käyttöliittymien ohjelmoinnista JavaScriptillä sekä projektiosaamista työelämästä.
  • Nauhalla on kokemusta kokouskäytänteistä ja toiselta alalta projektityöskentelystä. Hänen IT-alan kokemus on rajoittunut sivusta seuraamiseen ja ohjelmointiosaaminen on peräisin kursseilta.
  • Ojalalla on jonkin verran projektikokemusta aineopintojen projektityöstä sekä ohjelmointikokemusta suoritettujen kurssien ja harrastuneisuuden pohjalta.
  • Urtamolla on aikaisempaa projektikokemusta aineopintojen projektityöstä ja ohjelmointikokemusta suoritettujen kurssien pohjalta.

Sovelluksen tilaajana on Jyväskylän yliopiston soveltavan kielentutkimuksen keskus, jonka edustajia ovat Dmitri Leontjev ja Ari Huhta. Projektin vastaavana ohjaajana toimii Jukka-Pekka Santanen. TIM-asiantuntijoina toimivat Mika Lehtinen ja Vesa Lappalainen. Teknisenä ohjaajana toimii Visa Naukkarinen, joka avustaa projektiryhmää erityisesti TIM:in kehitykseen liittyvissä asioissa.

Projektin sidosryhmänä toimii Tipi-ryhmä, joka kehittää osittain samanlaisia ominaisuuksia TIM-järjestelmään. Sidosryhmänä toimivat myös projektiviestintäkurssin opettajat Hanna Kivimäki ja Kati Rantala-Lehtola. Jyväskylän yliopiston ATK-lähituki vastaa projektiryhmän tietokoneiden ja yleisten sovellusten asentamisesta ja toimintakunnossa pitämisestä.

4.2 Tilat ja laitteet

Projektiryhmällä on käytössä huone Ag C225.4. Tilan puhelinnumero on 040-3573835. Huoneessa on viisi tietokonetta, joissa on kaikissa Windows 10 -käyttöjärjestelmä.

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

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

Projekteille on luotu TIM-etäkone, johon projektiryhmät voivat laittaa tuloksiaan muiden katseltaviksi ja kokeiltaviksi. Etäkoneen URL-osoite on https://timdevs2.it.jyu.fi.

4.3 Kehitys- ja dokumentointityökalut

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

  • Projektin dokumentit laaditaan TIM-ympäristöön.
  • Jäsenten työtunneista pidetään kirjaa Excel-pohjaisella työajankirjaussovelluksella.
  • Versiohallintaan käytetään Gitiä GitLab-palvelua hyödyntäen.
  • Projektiryhmän jäsenet ovat hakeneet 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 (3t),
  • 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 kaksi kahden tunnin perehdytystä TIM-järjestelmän kehittämiseen tiistaina 12.2.2019 ja torstaina 14.2.2019. Tarvittaessa projektiryhmälle järjestetään lisää vastaavia perehdytyksiä mm. TIM:in testauskäytänteistä.

Kaikki projektiryhmän jäsenet osallistuvat myös XYHI004 Projektiviestintä IT-alalla -oheiskurssille, jolla perehdytään projektissa tarvittaviin viestintä- ja vuorovaikutustaitoihin.

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 sähköpostilista timcan@korppi.jyu.fi. Sen kautta tiedotetaan sellaisista projektin läpivientiin liittyvistä asioista, jotka ovat merkittäviä projektiryhmän lisäksi muulle organisaatiolle mukaan lukien 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/timcan/. Listalla olevat sähköpostiosoitteet löytyvät osoitteesta https://korppi.jyu.fi/kotka/servlet/list-archive/ timcan/dist.html.

Sähköpostilista timcan_opetus@korppi.jyu.fi on perustettu projektiryhmän, ohjaajien ja TIM-asiantuntijoiden 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 tai teknisten toteutusratkaisujen 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/timcan_opetus/. Listalla olevat sähköpostiosoitteet löytyvät osoitteesta https://korppi.jyu.fi/kotka/servlet/ list-archive/timcan_opetus/dist.html.

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

Projektiryhmä tiedottaa projektiorganisaatiota kaikista projektin läpivientiin liittyvistä muutoksista tai toimenpiteistä, joilla on merkitystä projektiryhmän tulosten valmistumiseen. Tiedotus tehdään viikoittaisessa tilakatsauksessa, palavereissä tai kiireellisissä tilanteissa erikseen 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 edustajilta tai ohjaajilta.

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 palavereissä, jolloin pöytäkirjaan kirjataan linkki.

Ryhmän sisäinen viestintä tapahtuu pääasiassa kasvotusten projektihuoneessa sekä Slack-ryhmässä. Osa ryhmän sisäisestä kommunikaatiosta hoidetaan 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, ohjaajat ja TIM-asiantuntijat pyrkivät vastaavasti vastaamaan projektiryhmän pyyntöihin ja kysymyksiin kahden arkipäivän sisällä.

5.2 Palaverit

Projektin palaverit järjestetään lähtökohtaisesti kaikille sopivana ajankohtana, joka päätetään edellisen kokouksen lopussa. 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.

Palaveri on päätösvaltainen, kun paikalla on vähintään yksi edustaja projektiryhmästä, yksi tilaajien edustaja ja vastaava ohjaaja. Palaveri on laillinen, kun esityslista on toimitettu projektiorganisaatiolle vähintään 24 tuntia ennen palaverin alkua.

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. Puheenjohtaja ohjaa palaverin keskustelua esityslistan mukaan.

Sihteeri kirjaa muistiin palaverissa keskustellut asiat ja erityisesti sovitut päätökset sekä kirjaa ne pöytäkirjan. Pöytäkirja toimitetaan puheenjohtajalle tarkastettavaksi. Jos sihteeri on laatinut vasta ensimmäisen pöytäkirjansa, puheenjohtaja toimittaa pöytäkirjan huomioidensa kera 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. Pöytäkirja tulee toimittaa lähtökohtaisesti kolmen arkipäivän sisällä, mutta viimeistään seuraavan kokouksen esityslistan yhteydessä eli 24 tuntia ennen palaveriä, jolloin kaikilla on aikaa tutustua siihen.

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 [4]. 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 timcan-haarassa, joka on haara (engl. fork) angular-refactor-haarasta. Tarvittaessa jokainen projektiryhmän jäsen voi luoda omia kehityshaaroja timcan-haaran pohjalta, joiden koodi liitetään timcan-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.

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]. Yksinkertaisille aliohjelmille kirjoitetaan mahdollisuuksien mukaan yksikkötestejä. Sovelluksen selainpohjaisen käyttöliittymän testaamista varten kirjoitetaan selaintestejä. 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.

Käytettävyystestauksella testataan, onko toimintoja varten laadittu käyttöliittymä tarpeeksi helppokäyttöinen. Käytettävyystestauksessa laaditaan tehtäviä, jotka suorittaa koekäyttäjänä mieluiten projektiorganisaatioon kuulumaton henkilö. Ensisijaisesti testausta varten pyritään saamaan koekäyttäjiksi kaksi henkilöä, jotka kuuluvat sovelluksen ja testattavien toimintojen loppukäyttäjiin, joista toisella ei ole kokemusta ICAnDoiT-ohjelmiston käytöstä.

Sekä toiminnallista testausta että käytettävyystestausta varten laaditaan erilliset testaussuunnitelmat, joissa kuvataan testauskerran läpivienti, testitapaukset ja tehtävät. Testauskerran jälkeen laaditaan testausraportti, jossa kuvataan testauskerralla suoritettujen testitapausten ja tehtävien johtopäätökset ja huomiot. Raporttiin kirjataan myös mahdolliset suorittamatta jääneet testitapaukset ja tehtävät sekä syyt sille, miksei jotain testitapausta tai tehtävää suoritettu. Mahdollisista virheistä ja havainnoista kirjataan 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 tulee suorittaa 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 osapuolen 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 ja TIM-asiantuntijoilla. 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, testausraportit ja vaatimusmäärittelyn. Palaverien pöytäkirjat ja muut tulosdokumentit hyväksytään seuraavassa palaverissa tai sähköpostitse.

Projektin lopussa eri tulokset tulostetaan ja kootaan projektikansioon. Kansioon sijoitetaan tulokset sisältävä CD-levy, josta toimitetaan kopio myös informaatioteknologian tiedekunnan arkistoon. Tulokset toimitetaan myös tilaajalle CD-levyllä tai USB-muistilla.

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ä [4]. Projektin läpivientiä koskevat dokumentit laaditaan suomeksi ja kehitettävää ohjelmistoa koskevat dokumentit englanniksi. Dokumentit 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_20190218. Tiedostonimissä 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.

dokumentit/
    ajankaytto
    projektiraportti
    projektisuunnitelma
    sovellusraportti
    sovellussuunnitelmat/
    requirementspecification
    testaus/
    tilakatsaukset/
esittelyt/
kayttoohjeet/
palaverit/
    esityslistat/
    poytakirjat/
        liitteet/
prototyypit/
sopimukset/    

Lisäksi CD:lle sijoitetaan seuraavat hakemistot:

sahkopostiarkistot/
    timcan
    timcan_opetus
lahdekoodit/
    
    

Hakemistorakenteessa kauttaviiva nimen perässä merkitsee, että kyseessä on tiedoston sijaan hakemisto.

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 Elisa Nauha ja varaprojektipäällikkönä Kimmo Urtamo. Taulukko 6.1 luettelee projektin olennaiset dokumentit sekä sovellukseen toteuttavat toiminnallisuudet ja niistä vastaavat jäsenet.

Tulos Vastuuhenkilö
Projektisuunnitelma Elisa Nauha
Projektiraportti Elisa Nauha
Sovellusraportti Hanna Alatalo
Vaatimusmäärittely Kimmo Urtamo
Toiminnallisen testauksen dokumentit Jere Ojala
Käytettävyystestauksen dokumentit Jarkko Kuivanen
Käyttöohje Jarkko Kuivanen
Palautteen rakentaminen Jarkko Kuivanen
Uudet kysymystyypit Kimmo Urtamo
Testinäkymä oppilaalle Hanna Alatalo
Testin raportti tutkijalle Jere Ojala

Taulukko 6.1. Tulosten vastuuhenkilöt.

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

Luku ja kuva 6.1 kuvaavat projektin tehtäväkokonaisuudet, kokonaisuuksiin liittyvät yksittäiset tehtävät sekä kunkin jäsenen ennakoidut tehtäviin käytettävät työtunnit. Työtunnit on arvioitu hyödyntämällä Titus-projektin projektiraportissa [10] toteutuneita työtunteja sekä ryhmän toteutuneita työtunteja ennen projektisuunnitelman valmistumista.

Kullekin projektiryhmän jäsenelle on suunniteltu 270 tuntia projektityötä. Tämä vastaa 10 opintopistettä, jonka laajuiseen suoritukseen ryhmä tähtää. Suurin osa ajasta on varattu toteutuksen suunnitteluun ja itse toteutukseen. Elisalle on projektipäällikkönä varattu enemmän tunteja projektin hallintatehtäviin.

Lisäksi projektin osalta kuluu tunteja oheiskursseihin Projektiviestintä IT-alalla ja Sovellusprojektin hallinta arviolta kultakin noin 50 tuntia.

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 projektivaiheiden aikataulun.

7.1 Prosessi

Kehitettävään sovellukseen toteuttavat toiminnallisuudet on jaettu eri osa-alueisiin kehitystä varten (ks. luvut 6.1 ja 6.2). Nämä osa-alueet kuitenkin riippuvat paljon toisistaan, joten kehittäjien yhteistyö ja kommunikointi on tärkeää.

Projektissa noudatettu prosessimalli noudattaa ketterän kehityksen periaatteita. Kehitysvaiheissa tehdään toimivia prototyyppejä, joita inkrementaalisesti ja iteratiivisesti jatkokehitetään seuraavassa vaiheessa.

Projekti jaetaan alussa tapahtuvaan määrittely- ja suunnitteluvaiheeseen sekä kolmeen 3 viikon ohjelmistokehitysvaiheeseen. Näiden jälkeen viimeistelyvaiheessa viimeistellään tulokset ja laaditaan raportit.

Kehitysvaiheisiin valitaan ohjelmiston osioiden ominaisuuksia, joiden tulisi olla valmiina vaiheen lopussa. Vaiheen sisällä työnkulku etenee seuraavasti:

  1. Vaiheen alkaessa pidetään ryhmän sisäinen palaveri (noin 1.5 h), jossa selvennetään vaiheen kulku ja valitaan toteutettavat ominaisuudet sekä jaetaan tehtävät jäsenille.

  2. Vaiheen aikana pidetään päivittäin ryhmän sisäisiä lyhyitä palaverejä (5-10 min), joissa tarkistetaan tehtävien edistyminen ja esteet. Jos esteitä ilmenee, ne ratkaistaan.

  3. Vaiheen lopussa pidetään ryhmän sisäinen palaveri, jossa kerätään yhteen toteutetut ominaisuudet ja kirjoitetaan lyhyt raportti tuloksista. Seuraavana arkipäivänä aloitetaan taas askeleesta 1.

Viimeisen kehitysvaiheen päättyessä pidetään vielä vaiheen aloituspalaveri, jossa selvitetään kehitettävien ominaisuuksien viimeistelytarve. Palaverissa viimeistelyvaiheen tehtävät jaetaan ryhmän kesken.

7.2 Aikataulu

Projektin aloitusluento oli 29.1.2019. Kehitettävä sovellus on tarkoitus saada valmiiksi huhtikuun loppuun mennessä. Toukokuussa kirjoitetaan käyttöohjeet sekä sovellus- ja projektiraportit. Lisäksi toukokuussa sovellukseen tehdään vielä mahdollisia pieniä korjauksia. Dokumenttien ja lähdekoodin hyväksymisen jälkeen tulokset luovutetaan tilaajalle ja projekti päättyy. Mikäli projekti pysyy tavoiteaikataulussa, projekti päättyy 17.5.2019. Projektille on varattu pelivaraa kahden viikon verran, joten tarvittaessa projektia voidaan jatkaa toukokuun loppuun.

Kuva 7.1 esittää projektin suunnitellun aikataulun. Projekti päättyy suunnitellussa aikataulussa, mikäli projektin työmäärä vastaa ennakoitua ja ryhmän jäsenet pitäytyvät keskimäärin 20 tunnin viikkotyöajassa. Oheiskurssit eivät sisälly työtuntilaskelmaan, vaan niille on varattu erilliset 50 tuntia kutankin jäsentä kohden (ks. kuva 6.1).

Kuva 7.1: Suunniteltu aikataulu
Kuva 7.1: Suunniteltu aikataulu

8. Riskit

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

8.1 Riskien todennäköisyydet ja haitat

Projektin riskit on arvioitu Titus-projektin projektisuunnitelman [2] 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 ennakoimattomat poissaolot Keskisuuri Keskisuuri
Jäsenten muut sitoumukset Keskisuuri Keskisuuri
Vaatimusten lisääntyminen ja muuttuminen Pieni Keskisuuri
Tilaajan ja TIM-asiantuntijoiden erilaiset tarpeet ja toiveet Suuri Suuri
Kokemattomuus projektin hallinnasta Keskisuuri Pieni
Kokemattomuus TIM-järjestelmästä ja työkaluista Keskisuuri Pieni

Taulukko 9.1. Riskit, arvioidut todennäköisyydet ja haittavaikutukset.

8.2 Jäsenten ennakoimattomat poissaolot

Projektiryhmän jäsenillä ei ole tiedossa pidempiä poissaoloja projektin aikana. Poissaolot tulevat siis johtumaan suunnittelemattomista tekijöistä, kuten sairastumisista tai yllättävistä elämänmuutoksista, joita ei voi hyvin ennakoida tai estää. Lyhyet poissaolot ovat jokseenkin todennäköisiä, mutta pidempien poissaolojen todennäköisyys on pieni. Poissaolojen vaikutus riippuu poissaolon pituudesta ja laadusta. Poissaolot hidastavat projektin etenemistä ja voivat viivästyttää projektia.

Poissaolojen vaikutuksia pyritään minimoimaan kommunikoimalla heti poissaolon tullessa tietoon, jolloin muut jäsenet voivat ennakoida poissaolon myös omassa työssään. Myös etätyö on mahdollista ja pienentää haittavaikutuksia esimerkiksi lievän sairauden tapauksessa. Päivittäinen tietoisuus jäsenten tehtävien kulusta ja vaiheista mahdollistaa priorisoitujen tehtävien tekijöiden vaihtamisen pitkien poissaolojen tapauksissa. Tämä minimoi poissaolojen haittavaikutuksia.

8.3 Jäsenten muut sitoumukset

Projektiryhmän jäsenillä on projektin lisäksi muita kursseja, jotka vaativat aikaa viikottain ja varsinkin jaksojen vaihtumisen yhteydessä tenttiin lukemisen osalta. Kesälukukauden opinnot saattavat myös olla ajankohtaisia toukokuun puolivälistä eteenpäin. Jäsenet hakevat myös kesätöitä, mutta ovat sitoutuneet aloittamaan nämä vasta kesäkuun alusta, jos se vain on mahdollista. Urtamolla on pro gradu -tutkielma työn alla kevään aikana, ja siihen menee myös aikaa. Myös harrastussitoumukset vaativat osalta jäsenistä aikataulun järjestelyä mahdollisten toimistotuntien ja pitkien viikonloppujen tapauksessa.

Muut sitoumukset vaikuttavat lähinnä projektiin käytettävissä olevaan aikaan. Kurssien osalta aikataulut ovat ennakoitavissa, joten jäsenet voivat ennaltaehkäisevästi työskennellä enemmän viikoilla, jolloin luentoja tai tenttejä ei ole, ja keskittyä kursseihin, kun aihetta on. Myöhään keväällä tai kesällä alkavien kokopäivätöiden tai työläiden kesäkurssien aiheuttamaa riskiä pyritään ehkäisemään saattamalla projekti valmiiksi tavoiteaikataulussa ennen kesäkuun alkua.

Muiden sitoumusten vaikutusta pyritään vähentämään avoimella kommunikoinnilla ja henkilökohtaisen aikataulun ennakoinnilla. Projektiryhmällä on yhteinen Slack, joka mahdollistaa reaaliaikaisen ja verrattain vapaamuotoisen kommunikoinnin. Ryhmän yhteinen Korppi-kalenteri auttaa yhteisten aikojen löytymistä kurssien ollessa käynnissä. Projektin aikatauluun on varattu 2 viikkoa pelivaraa projektin viivästymisen toipumiskeinona.

8.4 Vaatimusten lisääntyminen ja muuttuminen

Projektin aikana tilaajan edustajien esittämät vaatimukset saattavat lisääntyä ja varsinkin prioriteetit muuttua. Tilaajan edustajien käytössä on jo järjestelmä, jossa on kaikki olennaiset ominaisuudet, joten aivan uusien ominaisuuksien esilletulo lienee vähäistä. Vaatimusten muutokset voivat aiheuttaa viivästyksiä, sillä ne voivat aiheuttaa muutoksia jo tehdyssä koodissa.

Kehitys pyritään tekemään ketterästi, jolloin vaatimusten muutokset otetaan huomioon viimeistään seuraavan kehitysvaiheen alkaessa ja prioriteetin ollessa korkea ne voidaan toteuttaa. Jos vaatimusten lisääntymistä ja muuttumista ilmenee paljon, projektiorganisaation on tehtävä vaatimusten uudelleenpriorisointi ja valittava olennaisimmat toteutettavat vaatimukset.

8.5 Tilaajan ja TIM-asiantuntijoiden erilaiset tarpeet ja toiveet

Tilaajan intressinä on ICAnDoiT-järjestelmän korvaaminen TIM-järjestelmän avulla. Tärkeänä tavoitteena on hyvä käytettävyys, jotta tietoteknisesti kokemattomat tutkijat voivat lisätä tehtäviä ja rakentaa niille palautteen. TIM-asiantuntijat haluvat lisäksi kehittää itse TIM-järjestelmää. Palavereissa onkin ilmennyt tilaajalla ja TIM-asiantuntijoilla olevan erilaisia näkemyksiä käytettävyyden huomioimisesta ja ominaisuuksista yleisesti.

Projektiryhmän tulee ottaa ratkaisuissaan huomioon sekä tutkijat että TIM-asiantuntijat, jolloin erilaiset tarpeet ja toiveet hankaloittavat vaatimusten ja niiden prioriteettien selvittämistä. Epäselvät vaatimukset ja prioriteetit voivat viivästyttää projektia, jos käytetään kehitykseen tekniikoita, jotka eivät parhaiten sovellu ominaisuuden toteuttamiseen. Riskinä on myös projektiryhmän pirstoutuminen eri näkemyksien mukaan. Tämä huonontaa yhteistyötä ja voi vaikuttaa toimivan kokonaisuuden kehittymistä.

Riskiä pyritään ehkäisemään olemalla aktiivisesti yhteydessä sekä tilaajan edustajiin että TIM-kehittäjiin. Kun ristiriitaisia toiveita ilmenee, painotetaan tilaajan tarpeita. Tämä pyritään tekemään mahdollisimman varhaisessa vaiheessa.

8.6 Kokemattomuus projektin hallinnasta

Projektipäälliköllä ja ryhmän jäsenillä on verrattain vähän kokemusta projektimuotoisesta työskentelystä ja ohjelmistoprojekteista. Työtuntien ja aikataulujen arviointi voi olla haastavaa. Kokemuksen puute projektityöskentelystä voi myös vaikeuttaa ryhmän sisäistä kommunikointia ja yhteistyötä tilaajan edustajien kanssa.

Riskin vaikutusta ehkäistään olemalla aktiivisesti yhteydessä muihin sekä projektiryhmän sisällä että projektiorganisaatiossa. Viikoittain kootaan tilakatsaus, joka informoi koko projektiorganisaatiota edistymisestä. Ohjaajilta, TIM-kehittäjiltä ja tilaajan edustajilta kysytään tarvittaessa neuvoa. Päivittäisissä ryhmäpalavereissa seurataan tarkasti tehtävien edistymistä, jotta tieto kulkee projektiryhmän sisällä. Jos tehtävillä on esteitä, ne voidaan ratkaista heti muun ryhmän avulla.

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 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 ja TIM-kehittäjiltä.

9. Yhteenveto

TIMCAN-projekti kehittää Jyvaskylän yliopiston informaatioteknologian tiedekunnassa kehitettyyn TIM-järjestelmään toimintoja, jotka mahdollistavat ICAnDoiT-ohjelmiston korvaamisen ja jatkokehityksen. Toiminnoista kehitetään mahdollisimman yleiskäyttöisiä siten, että ne hyödyttävät myös muita TIM-järjestelmän käyttäjiä.

Projekti läpiviedään kevään 2019 aikana. Suurimmat riskit projektille ovat projektiryhmän jäsenten poissaolot ja muut sitoumukset sekä tilaajan ja TIM-kehittäjien erilaiset tarpeet ja toiveet projektin vaatimusten suhteen. Riskit voivat aiheuttaa projektin viivästymisen tai heikentää tulosten laatua. Riskeihin on varauduttu aktiviisella kommunikoinnilla tilaajan edustajien ja TIM-asiantuntijoiden kanssa, painottamalla tilaajan toiveita ja seuraamalla projektin tilaa aktiivisesti, jolloin viivästyminen voidaan havaita ajoissa ja tehdä tarvittavia korjausliikkeitä. Mikäli projekti kuitenkin viivästyy, on viivästymiseen varauduttu kahden 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] Dmitri Leontjev, ICAnDoiT: The Impact of Computerised Adaptive Corrective Feedback on L2 English Learners, saatavilla osoitteesta http://urn.fi/URN:ISBN:978-951-39-6586-0, Jyväskylä University Printing House, Jyväskylä 2016.

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

[3] Hanna Alatalo, Jarkko Kuivanen, Elisa Nauha, Jere Ojala ja Kimmo Urtamo, TIMCAN-projektin vaatimusmäärittely, saatavilla osoitteesta https://tim.jyu.fi/view/ kurssit/tie/proj/2018/timcan/dokumentit/requirement_specification, Jyväskylän yliopisto, informaatioteknologian tiedekunta, 2019.

[4] 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 28.2.2019.

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

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

[7] Hanna Alatalo, Jarkko Kuivanen, Elisa Nauha, Jere Ojala ja Kimmo Urtamo, TIMCAN-projektin tilakatsaukset, saatavilla osoitteesta https://tim.jyu.fi/view/kurssit/tie/proj/ 2019/timcan/dokumentit/tilakatsaukset, Jyväskylän yliopisto, informaatioteknologian tiedekunta, 2019.

[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 28.2.2019.

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

[10] Matti Leinonen, Ronja Lindholm, Visa Naukkarinen, Rami Pasanen ja Enni Stylman, Titus-sovellusprojektin projektiraportti. https://tim.jyu.fi/view/kurssit/tie/proj/2018/ titus/dokumentit/projektiraportti, Jyväskylän yliopisto, informaatioteknologian tiedekunta, 2018.

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