% .tex-tiedosto projektin dokumenttien latomiseksi.
% Kirjoitelmaluokka, tässä käytetään projektien projdoc-luokkaa.
\documentclass[twoside]{projdoc}

\usepackage{paralist}
\usepackage{alltt}
\usepackage{graphicx}
\usepackage{calc}


\newlength{\imgwidth}

\newcommand\scalegraphics[2][]{%
    \settowidth{\imgwidth}{\includegraphics{#2}}%
    \setlength{\imgwidth}{\minof{#1\imgwidth}{\textwidth}}%
    \includegraphics[width=\imgwidth]{#2}%
}

% Projektin nimi
\project{Paatti}

% Luottamuksellisuus: käytä termiä 'Luottamuksellinen' tai 'Julkinen'
\publicity{Julkinen}

% Versionumero: numerointikäytäntö on projektikohtainen
\version{0.5.2}

% Dokumentin nimi
\title{Projektiraportti}

% Tekijät: huomaa aakkosjärjestys sukunimen mukaan
\author{Tapio Keränen}{Toni Salminen}{Jari Salokangas}{Lauri Satokangas}
% Puhelinnumerot: tekijöitä vastaava järjestys!
\authorphones{040-8464981}{040-5378086}{040-8652014}{040-5735358}
% Sähköpostiosoitteet: tekijöitä vastaava järestys!
\authoremails{t.tapio.keranen@student.jyu.fi}{toni.a.j.salminen@student.jyu.fi}{jari.p.t.salokangas@student.jyu.fi}{lauri.n.satokangas@student.jyu.fi}
% Etu- ja sukunimen alkukirjaimet: tekijöitä vastaava järjestys!
\authorinitials{TK}{TS}{JS}{LS}

% Tiivistelmä dokumentista: tämä ei siis ole tiivistelmä projektista,
% vaan tämän ko. dokumentin tarkoituksesta. 
\docabstract{Paatti-projekti kehitti Jyväskylän yliopiston psykologian laitokselle prototyypin tietojärjestelmästä, jolla kuntoutetaan iäkkäitä, mielenterveyspotilaita ja työuupumuksesta kärsiviä sekä tuetaan kyseisiin aihealueisiin liittyvää tutkimusta. Tietojärjestelmässä on kaksi käyttöliittymää, joista tutkijan käyttöliittymällä hallitaan kuntoutettavien kuntoutusohjelmia sekä kuntoutettavan käyttöliittymällä kuntoutettava suorittaa tutkijan laatimaa kuntoutusohjelmaa. Projektiraportissa kuvataan projektin läpivientiä käsitellen tavoitteita, resursseja, käytänteitä, tehtävien \linebreak työnjakoa ja työmääriä, prosessimallia ja aikataulua sekä arvioitujen riskien toteutumista ja hallintaa. Projektiraportti vertaa projektin toteutumaa suunnitelmaan kuvaten eroja sekä niiden syitä ja vaikutuksia.} 

% Tiivistelmä projektista
\projectabstract{Paatti-projekti määritteli, suunnitteli ja toteutti Jyväskylän yliopiston psykologian laitokselle prototyypin tietojärjestelmästä, jolla tuetaan vanhusten, mielenterveyspotilaiden ja työuupumuksesta kärsivien itsenäistä elämää ja kuntoutumista, sekä tuetaan kyseisiin aihealueisiin liittyvän tutkimuksen tekemistä.}

% Avainsanat: dokumentin sisältöön liittyviä olennaisia asiasanoja: aakkosjärjestys, ensimmäinen sana isolla alkukirjaimella ja piste loppuun.
\keywords{Aikataulu, kokemuksia, käytänteet, ohjelmistoprojekti, oppiminen, projektiorganisaatio, prosessimalli, raportti, resurssit, riskien hallinta, tavoitteet, tehtävät, tulokset, työnjako, työmäärät.}

% Varsinainen tulosteessa näkyvä ladonta alkaa
\begin{document}

% Tämä latoo versiohistorialle ympäristön, sen alapuolelle ladotaan
% versiohistoriataulukko. Esimerkin vuoksi tehty. 
\versionhistory

\begin{tabular}{|c|r|p{8.5cm}|p{1.7cm}|}
\hline
\textbf{Versio} & \textbf{Päivämäärä} & \textbf{Muutokset} & \textbf{Tekijät} \\
\hline \hline
0.0.1    & 11.5.2012 & Dokumentin pohja luotu ja kirjoitus aloitettu projektisuunnitelman pohjalta.  & LS\\
\hline
0.0.2    & 14.5.2012 & Kirjoitettu luvuista 1--5.  & LS\\
\hline
0.0.3    & 14.5.2012 & Kirjoitettu prosessimallista.  & LS\\
\hline
0.1.0    & 15.5.2012 & Toimitettu versio ohjaajan tarkastettavaksi.  & LS\\
\hline
0.1.1    & 19.5.2012 & Korjattu havaittuja virheitä ja puutteita luvuista 1--4.  & LS\\
\hline
0.1.2    & 20.5.2012 & Korjattu havaittuja virheitä ja puutteita luvuista 5--7. Lisätty kaksi kappaletta lukuun 10. & LS\\
\hline
0.2.0    & 21.5.2012 & Toimitettu versio ohjaajan tarkastettavaksi.  & LS\\
\hline
0.2.1    & 21.5.2012 & Muokattu lukua "Organisaatio ja resurssit".  & LS\\
\hline
0.2.2    & 22.5.2012 & Korjattu havaittuja virheitä ja puutteita sekä muokattu johdantoa.  & LS\\
\hline
0.2.3    & 22.5.2012 & Kirjoitettu työtehtävistä ja työnjaosta.  & LS\\
\hline
0.2.4    & 23.5.2012 & Kirjoitettu työtehtävistä ja työnjaosta sekä riskien hallinnasta.  & LS\\
\hline
0.2.5    & 23.5.2012 & Kirjoitettu työtehtävistä ja työnjaosta sekä riskien hallinnasta.  & LS\\
\hline
0.3.0    & 24.5.2012 & Toimitettu versio ohjaajan tarkastettavaksi.  & LS\\
\hline
0.3.1    & 25.5.2012 & Korjattu kirjoitus- ja asiavirheitä.  & LS\\
\hline
0.3.2    & 25.5.2012 & Kirjoitettu työmääristä ja aikataulusta.  & LS\\
\hline
0.3.3    & 25.5.2012 & Korjattu kirjoitusvirheitä. Kirjoitettu työmääristä, aikataulusta ja riskien hallinnasta.  & LS\\
\hline
0.4.0    & 25.5.2012 & Toimitettu versio ohjaajan tarkastettavaksi. & LS\\
\hline
0.4.1    & 27.5.2012 & Korjattu havaittuja virheitä. & LS\\
\hline
0.4.2    & 28.5.2012 & Korjattu havaittuja virheitä. & LS\\
\hline
0.4.3    & 29.5.2012 & Kirjoitettu prosessimallista ja aikataulusta. & LS\\
\hline
0.4.4    & 30.5.2012 & Kirjoitettu työtehtävistä ja aikataulusta. & LS\\
\hline
0.4.5    & 31.5.2012 & Kirjoitettu työtehtävistä. & LS\\
\hline
0.4.6    & 31.5.2012 & Muokattu lukua "Jäsenten kokemuksia". & TK, TS, JS, LS\\
\hline
0.5.0    & 31.5.2012 & Toimitettu versio ohjaajan tarkastettavaksi. & LS\\
\hline
0.5.1    & 4.6.2012 & Korjattu havaittuja virheitä. & TS\\
\hline
0.5.2    & 4.6.2012 & Korjattu havaittuja virheitä. & LS\\
\hline
\end{tabular}


% \projectinfo latoo ympäristön projektin tiivistelmälle, joka on 
% projektikohtainen.
% Projektin tiivistelmä ja tekijöiden tiedot ladotaan automaattisesti sivun
% alkuun. Eli lisättävä projektiorganisaation tiedot muiden kuin tekijöiden
% osalta sekä tarvittavat yhteystiedot. Alla tämä on tehty esimerkin vuoksi.
\projectinfo

\textbf{Tilaaja:}

\begin{tabular}{p{4.8 cm}p{8cm}p{2.4cm}}
~~~$\bullet$~~Jukka Kaartinen & \texttt{jukka.kaartinen@jyu.fi} & 0400-248148 \\
~~~$\bullet$~~Päivi Lappalainen & \texttt{paivi.k.lappalainen@psyka.jyu.fi} & 040-8054192 \\
~~~$\bullet$~~Raimo Lappalainen & \texttt{raimo.lappalainen@psyka.jyu.fi} & 050-4432349 \\
~~~$\bullet$~~Heikki Lyytinen  & \texttt{heikki.lyytinen@psyka.jyu.fi} & 050-5524892 \\

\end{tabular}

\vspace{1truecm}
\textbf{Ohjaajat:}

\begin{tabular}{p{5.0cm}p{7.8cm}p{2.4cm}}
~~~$\bullet$~~Matti Lehtinen & \texttt{matti.k.lehtinen@jyu.fi} & 041-4564118 \\
~~~$\bullet$~~Jukka-Pekka Santanen & \texttt{santanen@mit.jyu.fi} & 040-8053299 \\
~~~$\bullet$~~Outa Valkama & \texttt{outa.j.valkama@gmail.com} & 045-3490910
\end{tabular}

\vspace{1truecm}
\textbf{Yhteystiedot:}

\begin{tabular}{p{4.5cm}p{13cm}}
~~~$\bullet$~~Sähköpostilistat: & \texttt{paatti@korppi.jyu.fi},\linebreak \texttt{paatti\_opetus@korppi.jyu.fi} \\
~~~$\bullet$~~Sähköpostiarkistot: & \texttt{https://korppi.jyu.fi/list-archive/paatti/}, \texttt{https://korppi.jyu.fi/list-archive/\linebreak paatti\_opetus/} \\ 
%~~~$\bullet$~~Työhuone: & Agora C222.2, puh. 040-8053308
\end{tabular}

%----------------------------------------------------------------------------
% \mainmatter latoo automaattisesti sisällysluettelon ym. alkusivut, ja 
%% sen jälkeen alkaa dokumentin sisällysluettelossa näkyvät luvut.
\mainmatter

% \chapter{Pääluvun nimi} aloittaa pääluvun, \section{Alaluvun nimi} alaluvun,
% ja \subsection{Ala-alaluvun nimi} ala-alaluvun.
\chapter{Johdanto}

Jyväskylän yliopiston psykologian laitos on tehnyt tutkimusta iäkkäiden, työuupumuksesta kärsivien ja mielenterveyspotilaiden kuntouttamisesta jo vuosien ajan. Tutkimuksissa on ilmennyt tarvetta pystyä tarjoamaan kuntoutettaville apua ja hoitokeinoja myös ilman tutkijan tai lääkärin fyysistä läsnäoloa. Tähän tarkoitukseen Paatti-projekti kehitti Sovellusprojekti-kurssilla keväällä 2012 prototyypin tietojärjestelmästä, jolla tuetaan kuntoutettavien itsenäistä elämää ja kuntoutumista sekä tutkijoiden tekemää tutkimusta. 

Projektiraportti kuvaa projektin toteutunutta läpivientiä määritellen sen tulokset, osallistujat ja muut resurssit, käytänteet, prosessimallin, aikataulun sekä riskien hallintaa. Jäsenten osalta käsitellään tehtäviä, työmääriä ja tehtäväjakoa projektissa. Projektiraportin laatimisessa  on hyödynnetty Judo-projektin projektiraporttia \cite{judoraportti}, Tabu-projektin projektiraporttia \cite{taburaportti} sekä Sovellusprojektien ohjetta \cite{sovellusprojektienohje}.  Projektissa laadittu sovellusraportti \cite{sovellusraportti} kuvaa toteutetun sovelluksen käyttöliittymän, toteutusratkaisut, havaitut ongelmat ja jatkokehitysideat. Vaatimusmäärittelyssä \cite{vaatimusmaarittely} kuvataan kehitetylle tietojärjestelmälle asetettuja vaatimuksia ja niiden toteumaa. Projektin muut tulokset on esitelty luvussa 3.3

Luvussa 2 kuvataan dokumentissa käytetyt termit ja niiden merkitys. Luvussa 3 esitellään projektin taustoja sekä tavoitteiden, tulosten ja projektiryhmän jäsenten oppimistavoitteiden toteutumista. Luvussa 4 esitellään projektiorganisaatio ja resurssit. Luvussa 5 kuvataan projektin käytänteet. Luvussa 6 tarkastellaan projektiryhmän tehtäviä sekä tehtävien työmääriä ja ryhmän työnjakoa. Luvussa 7 kuvataan projektin prosessimallia ja aikataulua. Luvussa 8 kuvataan projektiin liittyneiden riskien hallintaa sekä käsitellään niiden vaikutusta projektin läpivientiin sekä tuloksiin. Luvussa 9 esitellään ryhmän jäsenten kokemuksia projektista.

\chapter{Termit}

Luvussa kuvataan projektissa käytettäviä aihealueen termejä sekä tekniikoita ja kehitysvälineitä.

\section{Aihealueen termit}
Projektin aihealueen termejä ovat seuraavat:
% Termilistat ladotaan Ventry-ympäristöllä, parametrina pisin termi,
% jolloin sisentyy oikein:
\begin{Ventry}{Sovellusprojekti}
  \item[Fyysinen aktiivisuus] viittaa kuntoutettavan harrastamaan liikunnan määrään ja tehokkuuteen. % TODO: mieti parempi teksti
  \item[Hälytystehtävä] on tehtävätyyppi, jonka ehtojen täyttyessä tietojärjestelmä lähettää järjestelmän kautta viestin toiselle käyttäjälle.
  \item[Interventio] on psykologisen tiedon, menetelmän ja osaamisen avulla tapahtuva vaikuttaminen kuntoutettavaan.
  \item[Kuntoutettava] on tietojärjestelmän käyttäjä, joka suorittaa kuntoutusohjelmia.
  \item[Kuntoutusohjelma] on tutkijan ryhmälle tai käyttäjälle laatima aikataulutettujen tapahtumien kokonaisuus.
  \item[Käyttäjärooli] on käyttäjän käyttöoikeuksia tietojärjestelmässä kuvaava rooli. Niitä ovat mm. kuntoutettava ja tutkija.
  \item[Mobiililaite] on älypuhelin tai sormitietokone.
  \item[Metatieto] on tietoa kuvailevaa tietoa, jota hyödynnetään tiedon yksilöinnissä ja haussa.
  \item[Ohje] on tehtävään liittyvä kuvaus teksti-, ääni-, kuva- tai videomuodossa.
  \item[Omainen] on käyttäjä, jolla on oikeus seurata kuntoutettavan edistymistä ja aktiivisuutta.
  %\item[Profiiliviesti] on järjestelmän kautta lähetettävä viesti. % TODO: käytetäänkö tätä termiä?
  \item[Ryhmä] on käyttäjistä koostuva kokonaisuus, jolle mm. voidaan laatia kuntoutusohjelma.
  \item[Suorite] on tehtävän suorittamisesta tietokantaan tallennettu data.
  \item[Tapahtuma] on tutkijan laatima tehtävien kokonaisuus, joka aikataulutetaan osaksi kuntoutusohjelmaa.
  \item[Tehtävä] on tapahtuman sisällä oleva yksittäinen kuntoutettavan suoritettava toimenpide, joka voi sisältää mm. tekstiä, ääntä, kuvan tai videon.
  \item[Toimintakyky] on kuntoutettavan kyky tehdä hänelle hyödyllisiä asioita.
  \item[Tutkija] on käyttäjä, joka laatii kuntoutusohjelmia kuntoutettaville ja seuraa niiden toteutumisia.
  \item[Tutkijan käyttöliittymä] on käyttöliittymä, jolla tutkija luo tapahtumia, aikatauluttaa tapahtumia, hallitsee käyttäjien ja ryhmien tietoja sekä muodostaa suoritteista erilaisia raportteja.
  \item[Tutkimus] on samaan tutkimusaiheeseen tai -kohteeseen liittyvien ryhmien ja kuntoutusohjelmien kokonaisuus.
  \item[Vapaaehtoinen harjoite] on tapahtuma, jonka kuntoutettava voi suorittaa halutessaan.
\end{Ventry}

\section{Vaatimusmäärittelyn termit}

Vaatimusmäärittelyssä esiintyviä termejä ovat seuraavat:

\begin{Ventry}{Sovellusprojekti} 
  \item[Etenemisvaihtoehto] on yksi monivalintatehtävän mahdollisista valinnoista, jonka perusteella määräytyy tapahtuman seuraava tehtävä. 
  \item[Hälytyskomponentti] on tapahtuman laatimisessa käytettävä tehtäväkompo\-nentti, joka asetettavan ehdon täyttyessä lähettää viestin käyttäjän asetuksiin määritetyille henkilöille.
  \item[Kotoistus] on toimi, jolla tietojärjestelmä käännetään toiselle kielelle.
  \item[Käyttäjäprofiili] on järjestelmässä olevan käyttäjän profiili, joka sisältää tunnistetietoja ja käyttöoikeuksia.
  \item[Mediasisältö] koostuu tietojärjestelmässä olevista multimediatiedostoista, joita voidaan sisällyttää tehtäviin.
  \item[Muistutus] huomauttaa käyttäjää  ääni-, värinä- ja/tai tekstimuotoisella viestillä esimerkiksi alkavasta tapahtumasta. 
  \item[Sisältökomponentti] on tehtävä, joka esittää käyttäjälle informaatiota, kuten tekstiä, ääntä, valokuvan tai videon.
  \item[Syötekomponentti] on tehtävä, joka tallentaa järjestelmään käyttäjän antamaa informaatiota, kuten tekstiä, ääntä, valokuvan tai videon. 
  \item[Tapahtumamuokkain] on työkalu tapahtuman muodostamiseen tehtävistä.
  \item[Tapahtumatyyppi] on tapahtumalle asetettu tunniste, jolla kuvataan tapahtuman sisältö. Niitä voivat olla mm. liikunta- tai rentoutustapahtumat.
  \item[Valintakomponentti] esittää tehtävän, jossa käyttäjä vastaa valitsemalla yhden vaihtoehdoista.
\end{Ventry}

\section{Tekniikat ja kehitysvälineet}
Dokumentissa esiintyviä tekniikoita ja kehitysvälineitä ovat seuraavat:
\begin{Ventry}{Sovellusprojekti}
  \item[CSS] on WWW-dokumenttien ulkoasun esittämiseen käytetty tyyliohje.
  \item[Django] on WWW-kehys, joka käyttää Python-ohjelmointikieltä.
  \item[FreeMind] on ajatuskarttasovellus.
  \item[GanttProject] on ajan- ja resurssienhallintaohjelma projekteille.
  \item[Git] on hajautettu versiohallintajärjestelmä.
  \item[HTML5] on uusi versio WWW-sivujen tekemiseen käytetystä HTML-kuvauskielestä.
  \item[JavaDoc] on ohjelma, jonka avulla Javan lähdekoodista voidaan generoida luokkadokumentaatio.
  \item[JavaScript] on WWW-ympäristössä käytettävä komentosarjakieli, jolla \linebreak voidaan mm. lisätä WWW-sivuille dynaamista toiminnallisuutta.
  \item[Jetty] on avoimen lähdekoodin lisenssin alainen WWW-palvelin \linebreak Java-sovelluksille.
  \item[jQuery] on kaikille selaimille tarkoitettu ilmainen ja avoimen lähdekoodin lisenssin alainen JavaScript-kirjasto.
  \item[\LaTeX] on ladontaohjelmisto.
  \item[Lähdekoodi] on tekstimuotoista ohjelmointikielistä listausta.
  \item[NetBeans] on integroitu ohjelmointiympäristö mm. Java- ja JavaScript-ohjelmointikielille.
  \item[OpenOffice.org] on avoimeen lähdekoodiin perustuva toimisto-ohjelmisto.
  \item[PDF] on ohjelmistoriippumaton siirrettävä tiedostomuoto doku-\linebreak menteille.
  \item[PhoneGap] on avoimen lähdekoodin lisenssin alainen sovelluskehys mobiilisovellusten kehittämiseen.
  \item[Tomcat] on WWW-palvelin Java-sovelluksille.
  \item[Vaadin] on avoimen lähdekoodin lisenssin alainen sovelluskehys \linebreak WWW-sovellusten kehittämiseen Java-ohjelmointikielellä.
  \item[YouSource] on Git-versiohallintaohjelmistoa tukeva lähdekoodien julkistusjärjestelmä, jota käytetään WWW-käyttöliittymällä.
\end{Ventry}


\chapter{Tavoitteiden toteutuminen ja tulokset}

Luvussa käsitellään projektissa toteutetun tietojärjestelmän ja muiden tulosten sekä ryhmän oppimistavoitteiden toteutumista. Tietojärjestelmän laiteriippumattomuus ja laajennettavuus onnistuivat suunnitellusti, mutta mobiilaitteen kiihtyvyysanturin käyttö tietojärjestelmässä sovittiin tilaajan kanssa jatkokehitykseen. Myöskään kuntoutettavan ja tutkijan välistä viestintätoiminnallisuutta ei projektissa ehditty toteuttaa. Toteutettu prototyyppi ja projektissa laaditut sovellusraportti \cite{sovellusraportti} ja vaatimusmäärittely \cite{vaatimusmaarittely} antavat hyvät valmiudet tietojärjestelmän jatkokehitykseen. 

\section{Taustaa ja tarpeita}

Projektin tilaajana oli Jyväskylän yliopiston psykologian laitos. Tilaaja kehittää hoitokäytänteitä sekä tutkii iäkkäitä, työuupumuksesta kärsiviä ja mielenterveyspotilaita. Tietojärjestelmän kuntoutettavien tarpeet ovat pääosin yhteneviä.

Iäkkäillä on usein muistihäiriöitä, joilla voi olla vaikutusta hoito-ohjeiden noudattamiseen. Useasti myös varttuneempien ihmisten fyysinen aktiivisuus alenee. Tilaaja haluaa pystyä muistuttamaan kuntoutettavia hoito-ohjeiden noudattamisesta ja motivoida ikäihmisiä liikkumaan enemmän omatoimisesti.

Työuupumuksesta kärsivät eivät useasti muista pitää taukoja elämässään ja työssään. Heitä pitää muistuttaa rentoutusharjoituksista, jotka helpottavat stressiä sekä opettavat keinoja selviytyä ja toipua uupumuksesta.

Mielenterveyspotilaiden hoito vaatii paljon hoitohenkilökunnan läsnäoloa. Läsnäolo ei kuitenkaan ole aina mahdollista, kun hätä on suurin. Potilaan tilaa tulee voida seurata tapaamisten välillä, sekä potilaan ja tutkijan tulee tarvittaessa saada yhteys toisiinsa tapaamisten välillä.

Tilaaja haluaa yhteyden kuntoutettavan, omaisten ja tutkijoiden välille. Tutkijan ja kuntoutettavan välille halutaan yhteys, joka mahdollistaa rutiiniluonteisten tehtävien suorittamisen ajasta ja paikasta riippumattomasti ilman tutkijan läsnäoloa. Yhteys mahdollistaa myös nopeamman viestinnän kuntoutettavan ja tutkijan välillä sekä antaa mahdollisuuden tutkijalle ja omaiselle seurata kuntoutukseen liittyvien tapahtumien suorittamista lähes reaaliajassa. Tilaaja haluaa hyödyntää tiedon keräämisessä älypuhelimien erilaisia antureita, kuten esimerkiksi kiihtyvyysanturia liikuntasuoritteiden yhteydessä.

Tutkijalle ja omaiselle tulee voida lähettää automaattinen ilmoitus kuntoutettavan havaitusta hätätilanteesta. Hätätilanne voi syntyä esimerkiksi, jos mielenterveyspotilas vastaa kysymyksiin tietyllä tavalla. Hoitoon liittyvistä tapahtumista, kuten lääkkeiden ottamisesta ja liikuntaharjoitteista, tulee voida muistuttaa kuntoutettavaa kehitettävän tietojärjestelmän kautta. Tilaaja haluaa motivoida kuntoutettavaa itsenäiseen elämään ja ottamaan vastuuta omasta paranemisestaan tarjoamalla vapaaehtoisia tapahtumia tutkijan luoman kuntoutusohjelman ohella.

\section{Toteutettu tietojärjestelmä}

Paatti-projektissa toteutettu tietojärjestelmän prototyyppi oli jatkoa Tabu-projektin kehittämälle ohjelmalle. Tabu-projekti kehitti keväällä 2009 Agora Centerille ja GeroCenterille prototyypin Oljenkorsi-sovelluksesta, jolla vanhusten ohjattua ja aikataulutettua liikkumista voitiin tukea ja seurata ilman tutkijoiden, omaisten tai hoitajien läsnäoloa. Tabu-projektin kehittämä ohjelma oli sidottu tietyn puhelinmallin käyttämiseen.

Paatti-projektin tavoitteet olivat laajemmat kuin Tabu-projektin. Tilaaja haluaa laajentaa sovelluksen käyttökohdetta vanhusten itsenäisen elämän tukemisen lisäksi myös muun muassa mielenterveyspotilaiden hoidon ja työuupumuksesta kärsivien tukemiseen. Tilaaja halusi, että kuntoutettavan käyttöliittymä toimisi useilla erilaisilla alustoilla, jolloin kuntoutettava voisi käyttää sovellusta miltei millä tahansa mobiililaitteella. Tutkijan käyttöliittymän haluttiin toimivan tietokoneella sekä mahdollisesti sormitietokoneella. Kumpikin käyttöliittymä toteutettiin WWW-sovelluksena.

Tilaajan tarpeet ja kehittävä tietojärjestelmä olivat käytettävissä olevaan aikaan ja resursseihin verrattuna laajat. Jo projektin alussa oli selvää, ettei tietojärjestelmää pystytä toteuttamaan tuotantoversion tasolle. Paatti-projekti kehitti tavoitteena olevasta tietojärjestelmästä prototyypin, jota jatkokehitetään projektin jälkeen. 

Paatti-projekti määritteli, suunnitteli ja  toteutti tietojärjestelmässä käytettävän tietokannan sekä alustavat versiot tutkijan ja kuntoutettavan käyttöliittymistä. Tutkijan käyttöliittymällä voidaan hallita tutkimuksia, ryhmiä, käyttäjiä, kuntoutusohjelmia ja tapahtumia sekä seurata kuntoutettavien edistymistä. Kuntoutettavan käyttöliittymällä voidaan suorittaa tutkijoiden laatimia kuntoutusohjelmia, suorittaa vapaaehtoisia harjoitteita ja tarkastella käyttäjän suorittamia tapahtumia. Tietojärjestelmään kerätyt tiedot tallennetaan tietokantaan, josta tiedot voidaan tarvittaessa siirtää muihin tutkimuksessa hyödynnettäviin ohjelmiin. 

\textbf{Tutkijan käyttöliittymän toiminnoista toteutuivat}

 \begin{compactitem}
  \item käyttäjien hallinta,
  \item ryhmien hallinta,
  \item tutkimusten hallinta,
  \item tapahtumien hallinta ja
  \item kuntoutusohjelmien hallinta.
 \end{compactitem}

Osittain toteutettuja toimintoja ovat
 \begin{compactitem}
  \item raporttien luominen ja
  \item tietokantaan kerätyn datan siirtäminen xls-muotoon.
 \end{compactitem}

Toteuttamattomia toimintoja ovat
 \begin{compactitem}
  \item viestien lähettäminen käyttäjille,
  \item näytettävien ryhmien rajaaminen tutkijan oikeuksien mukaan,
  \item suoritedatan esittäminen graafisessa muodossa,
  \item muistutusten asettaminen tapahtumille,
  \item mediasisällön hallinta,
  \item hälytystehtävien luominen ja hallinta,
  \item tietokantaan kerätyn datan siirtäminen csv-muodossa sekä
  \item ohjenäkymä.
 \end{compactitem}

\textbf{Kuntoutettavan käyttöliittymän toiminnoista toteutuivat}

 \begin{compactitem}
  \item kuntoutusohjelmien tapahtumien suorittaminen ja
  \item vapaaehtoisten harjoitteiden suorittaminen.
 \end{compactitem}

Osittain toteutettuja toimintoja ovat
 \begin{compactitem}
  \item merkintöjen tallentaminen päiväkirjaan,
  \item käyttöliittymän kuvakkeet ja
  \item tapahtuman päättymisestä ilmoittaminen.
 \end{compactitem}

Toteuttamattomia toimintoja ovat
 \begin{compactitem}
  \item mobiililaitteen ominaisuuksia (kuten kiihtyvyysanturi tai kamera) hyödyntävät toiminnot, 
  \item käyttöliittymän ohjeet,
  \item ilmoitukset saapuneista viesteistä ja tapahtumista,
  \item liukusäädinkomponentti sekä
  \item ääni- ja videokomponentit.
 \end{compactitem}

Tietojärjestelmän käyttäjilleen tarjoamat tiedot ja toiminnot sekä niiden priorisointi on määritelty tarkemmin vaatimusmäärittelyssä \cite{vaatimusmaarittely}. Toteutetun tietokannan sekä prototyypin rakenne, heikot toteutusratkaisut sekä jatkokehitysideat on kuvattu tarkemmin sovellusraportissa \cite{sovellusraportti}. Sovellusraportti kuvaa myös kuntoutettavan ja tutkijan käyttöliittymien näkymiä. Suunnitelmallista ja järjestelmällistä testausta ei ehditty toteuttaa Paatti-projektissa.


\section{Projektin tulokset}

Tietojärjestelmän prototyypin ohella  projektiryhmä toteutti seuraavat dokumentit:
\begin{compactenum}
\item[-]\textbf{Ajankäyttöraportti} sisältää ryhmän jäsenten kirjaamat työtunnit sekä niiden jakautumisen eri tehtäville ja tehtäväkokonaisuuksille.
\item[-]\textbf{Esittelymateriaalit} sisältävät väli- ja loppuesittelyn materiaalit ja muistiot.
\item[-]\textbf{Itsearvioinnit} sisältävät ryhmän jäsenten arvioinnit omasta toiminnasta, onnistumisesta, kokemuksista ja oppimisesta.
\item[-]\textbf{Kartoitukset} sisältävät projektin määrittelyn ja suunnittelun yhteydessä laaditut dokumentit.
\item[-]\textbf{Luokkadokumentaatio} sisältää lähdekoodista automaattisesti JavaDocilla luodut dokumentit.
\item[-]\textbf{Lähdekoodi} sisältää toteutetun sovelluksen lähdekoodin kommentteineen.
\item[-]\textbf{Kokousten dokumentit} sisältävät kokouksien esityslistat, pöytäkirjat ja tilakatsaukset.
\item[-]\textbf{Projektiraportti} kuvaa projektin läpivientiä ja asetettujen tavoitteiden saavuttamista.
\item[-]\textbf{Projektisopimus} on sopimus projektin tulosten hyödyntämisestä. Se määrittelee mm. projektin osapuolet sekä heidän oikeutensa ja velvollisuutensa.
\item[-]\textbf{Projektisuunnitelma} kuvaa projektin suunniteltuja tavoitteita, resursseja, yleisiä käytänteitä, tehtäviä, aikataulua ja riskien hallintaa.
\item[-]\textbf{Sovellusraportti} kuvaa toteutetun sovelluksen rakenteen ja toiminnot, puutteelliset ja heikot toteutusratkaisut sekä jatkokehitysideat.
\item[-]\textbf{Sähköpostiarkistot} sisältävät kaikki projektin sähköpostilistoilla käydyt keskustelut.
\item[-]\textbf{Vaatimusmäärittely} kuvaa projektin tekniset ja toiminnalliset vaatimukset, sekä tavoitteet ja rajoitteet.
\end{compactenum}

Projektin tulokset toteutuivat suunnitellusti. 

\section{Jäsenten oppimistavoitteet}

Sovellusprojekti-kurssin oppimistavoitteena on projektimuotoisen työskentelyn oppiminen. Projektiryhmän jäsenet saivat kattavan käsityksen ohjelmistoprojektissa työskentelystä sekä sen läpiviennistä. Olennaisia tehtäväkokonaisuuksia olivat ohjelmiston kehitykseen liittyen määrittely, suunnittelu, toteutus ja testaus. Projektipäällikönä toimivat jäsenet oppivat {\bf ajankäytön suunnittelua ja hallintaa} sekä projektin hallintaa ja ryhmän johtamista.

Keskeistä sovellusprojektissa on käytännön tekemisen kautta oppiminen sekä aikaisemmilla kursseilla opitun teoriatiedon soveltaminen. Opituista tiedoista olikin paljon hyötyä projektissa kohdattujen ongelmien ratkaisemisessa. 

Projektityöskentelyssä vaadittiin taitoja ongelmatilanteiden ratkaisemiseen ja ristiriitojen käsittelyyn. Ryhmä toimi aktiivisesti ja omatoimisesti pitäen projektin ja tilaajan tavoitteet sekä loppukäyttäjien tarpeet mielessä. Tarvittaessa ohjaajilta pyydettiin ohjausta.

Ryhmätyö- ja viestintätaitojen oppiminen oli olennaisessa osassa projektissa. Jäsenet oppivat viestimään sekä ryhmän sisällä että projektiorganisaatioon kuuluville henkilöille ja sidosryhmille. Projektin edetessä jäsenet oppivat myös kirjoittamaan sisällöltään ja kirjoitusasultaan laadukkaita dokumentteja. Väliesittelyt ja loppuesittely kannustivat ryhmää myös kehittämään puheviestinnän taitojaan ja toivat jäsenille esiintymiskokemusta.

Jäsenet kehittivät ohjelmointitaitojaan ja oppivat käyttämään Vaadin-sovelluske\-hys\-tä. Tietokannan suunnittelusta saatiin myös hyvää kokemusta.

Edellisten tavoitteiden lisäksi jäsenet olivat asettaneet seuraavia henkilökohtaisia tavoitteita:

\begin{compactenum}
\item[-] Tapio Keränen halusi tutustua projektin koko elinkaareen.
\item[-] Toni Salmisen tavoitteena oli oppia projektin hallintaa, projektin ja ohjelmiston suunnittelua, ryhmän johtamista sekä ajanhallintaa.
\item[-] Jari Salokangas halusi käytännön kokemusta ohjelmointityökaluista, ohjelmoinnista ja projektityöskentelystä.
\item[-] Lauri Satokankaan tavoitteena oli oppia WWW- ja mobiilisovellusten suunnittelua ja toteutusta. Hän halusi myös oppia projektin hallintaa ja ryhmätyöskentelyä.
\end{compactenum}

Henkilökohtaiset ja ryhmän yhteiset oppimistavoitteet toteutuivat jokaisen ryhmän jäsenen osalta.


\chapter{Organisaatio ja resurssit}

Luvussa esitellään projektiorganisaatio, käytössä olleet resurssit sekä projektiin liittyvät oheiskurssit ja perehdytykset. Organisaatio ja resurssit toteutuivat miltei suunnitelman mukaisesti. Projektiorganisaatioon liittyi projektin lopussa kaksi uutta tilaajan edustajaa, mutta tällä ei ollut vaikutusta projektin läpiviennin kannalta.

\section{Projektiorganisaatio}\label{projektiorganisaatio}

Projektiryhmään kuului neljä tietotekniikan laitoksen opiskelijaa: Tapio Keränen, Toni Salminen, Jari Salokangas ja Lauri Satokangas. Lauri Satokangas ja Tapio Keränen olivat kokeneita ohjelmoijia, joista ensimmäisellä oli kokemusta Vaadin-sovel\-luskehyksestä. Kummatkin olivat myös käyttäneet aikaisemmin Netbeans-sovellus\-kehitintä. Toni Salmisella oli kokemusta Linux-palvelimen konfiguroinnista. Jari Salokankaan vahvuusalueita olivat visiointi ja suunnittelu. Kaikki jäsenet olivat suorittaneet useita ohjelmointikursseja yliopistossa. Jokainen pääsi hyvin hyödyntämään omia vahvuusalueitaan projektin läpiviennissä.

Tilaajan edustajina toimivat Jyväskylän yliopiston psykologian laitokselta Heikki Lyytinen, Raimo Lappalainen, Päivi Lappalainen ja Jukka Kaartinen. Jyväskylän yliopiston tietotekniikan laitokselta projektin vastaavana ohjaajana toimi Jukka-Pekka Santanen ja teknisenä ohjaajana Outa Valkama. Projektin loppuvaiheessa organisaatioon liittyi tilaajan edustajista Timo Suutama sekä Tero Kallioinen, joka toimi tietojärjestelmän pääasiallisenä koekäyttäjänä tilaajan taholta. Kallioinen tulee todennäköisesti jatkamaan tietojärjestelmän kehitystä projektin jälkeen. Organisaation muutoksilla ei ollut vaikutusta projektin suunniteltuun läpivientiin.

Projektin asiantuntijana toimii Matti Lehtinen Agora Centeriltä. Lehtistä konsultoitiin projektin alussa tietojärjestelmän mahdollisista toteutustavoista ja Oljenkorsi-sovellukseen liittyvistä asioista. Asiantuntijatukea oli mahdollista saada tarvittaessa myös Vesa Lappalaiselta ja Kari Tuurihalmeelta, joista jälkimmäinen oli kehittämässä Oljen\-korsi-sovellusta myös Tabu-projektin jälkeen. Tuurihalmeen ja Lappalaisen tukeen ei kuitenkaan ilmennyt tarvetta. Ryhmä sai myös pikaisen perehdytyksen JavaScript-oh\-jelmointikieleen ja Django-nimiseen WWW-kehykseen Juho Vepsäläiseltä.  Tietokannan rakenteen suunnittelussa apua saatiin Pauli Kujalalta. Jyväskylän yliopiston ATK-tuki vastasi ryhmän käytössä olevista laitteista ja ohjelmistoista.

Projektiin kuuluvan viestintäkurssin kirjoitusviestinnän opettajana toimi Kaisa Leino ja puheviestinnän opettajana Minna Haapsaari. Projektin aikana järjestettävän käytettävyyspäivän piti Meeri Mäntylä.

\section{Projektin tilat, laitteet ja ohjelmistot}

Tietotekniikan laitos tarjosi ryhmälle projektin ajaksi käyttöön lukittavan projektihuoneen AgC222.2. Projektin jäsenillä oli projektihuoneessa käytössään kaksi Fedora 14 -käyttöjärjestelmällä ja kaksi Windows 7 -käyttöjärjestelmällä varustettua tietokonetta. 

Projektin aikana ryhmällä oli myös käytössään tietotekniikan laitoksen tarjoamia mobiililaitteita. Laitteista kaksi oli Windows Phone 7 -käyttöjärjestelmällä varustettua älypuhelinta, yksi Meego-käyttöjärjestelmällä varustettu älypuhelin ja yksi Tabu-projektin kehittämän ohjelmiston sisältävä Nokia 5800 -älypuhelin. Tilaaja tarjosi ryhmän käyttöön Kindle Fire -tablet-tietokoneen sekä kaksi Android-käyttöjärjestelmällä varustettua älypuhelinta ja yhden tablet-tietokoneen. Tarjottujen laitteiden lisäksi ryhmä käytti myös omia tietokoneitaan tietojärjestelmän kehityksessä sekä omia mobiililaitteitaan järjestelmän testauksessa.

Projektiryhmä käytti projektikokouksia varten kokoustilaa Ag C226.2. Tilassa oli käytettävissä Windows 7 -tietokone ja videoprojektori esityksiä varten.

Sovellusprojektin aikana ryhmällä oli mahdollisuus käyttää yliopiston monitoimitulostimia veloituksetta. Ryhmällä oli myös oikeus varata käyttöönsä videoprojektori, kannettava PC, digitaalisanelin ja MiniDisc-tallennin. Niistä ainoastaan digitaalisanelinta käytettiin muutamissa ensimmäisissä kokouksissa, jotta sihteerinä toiminut ryhmän jäsen sai tarvittaessa tukea kokouksen nauhoitteesta.

Projektiryhmällä oli käytettävissään virkistystila, jossa oli vedenkeitin ja kahvinkeitin. Tietotekniikan laitos tarjosi ryhmälle kahvit ja teet.

Projektiryhmällä oli käytössään yhteinen verkkolevy ja WWW-sivusto projektin tiedostojen säilytystä varten. Lisäksi ryhmä sai huhtikuussa käyttöönsä virtuaalikoneen, johon oli asennettu MySQL-tietokanta ja Apache Tomcat -WWW-palvelin. Sovellusten kehityksen aikana ryhmä päivitti palvelimelle uusimmat versiot sovelluksista, joten kaikki projektiorganisaatioon kuuluvat pääsivät testaamaan kehitettävän tietojärjestelmän versioita. 

Projektin tilat, laitteet ja ohjelmistot toteutuivat suunnitelman mukaisesti. Virtuaalikoneen käyttöönotossa oli vaikeuksia, sillä atk-tuella kesti yli viikon saada yliopiston palomuuri sallimaan yhteydet koneelle. Muita ongelmia ei projektin aikana ilmaantunut.

\section{Dokumentointityökalut}

Projektisuunnitelma, sovellusraportti ja projektiraportti laadittiin \LaTeX -ladon\-taohjelmistolla. Open-Office.org -toimisto-ohjelmistolla laadittiin esitysgrafiikat, projektisopimus ja pöytäkirjat. Vaatimusmäärittelyn laatimisessa käytettiin FreeMind-aja\-tuskarttaohjelmaa. Tilakatsaukset laadittiin Microsoft Powerpoint -toimisto-ohjel\-mistolla. Kaikki edellä mainitut laajemmat dokumentit julkaistiin myös pdf-muo\-dossa. Raakatekstimuodossa laadittiin muut tekstidokumentit, kuten esityslistat.

Projektin aikataulu laadittiin GanttProject-ohjelmalla. Ajankäytönseurantaan ryhmällä oli käytössään Petri Heinosen sovellusprojekteille toteuttama Excel-sovellus \cite{ajanseurantalahde}. 

Ryhmä käytti YouSource-versiohallintajärjestelmää lähdekoodin ja dokumenttien versioiden hallintaan. Luokkadokumentaation muodostamiseen lähdekoodeista \linebreak käytettiin JavaDoc-työkalua.

Dokumentointityökalut toteutuivat suunnitellusti. 

\section{Ohjelmointityökalut}

Tietojärjestelmää kehitettiin Netbeans-sovelluskehittimellä käyttäen Vaadin-sovel\-luskehystä. Sovellusten kehityksessä käytettiin Jetty-nimistä WWW-palvelinta sen nopeuden vuoksi, ja tietokannanhallintajärjestelmänä käytettiin MySQL-ohjelmistoa. Sovelluksissa käytettiin myös CSS- ja HTML5-tekniikoita. 

Ohjelmointityökalujen valinta projektin alussa oli haastavaa, koska ryhmällä ei ollut riittävästi tietoa kehitettävän tietojärjestelmän vaatimuksista, eikä myöskään tarpeeksi vahvaa kokemusta eri työkalujen soveltuvuudesta tietojärjestelmän toteuttamiseen. Työkalujen valinnan epävarmuus hidasti työskentelyä projektin alussa. Jos ryhmälle olisi ollut selvää, mitä työkaluja käytetään, olisi niihin tutustuminen voitu aloittaa aikaisemmin.

Vaadin-sovelluskehys oli tuntematon kaikille muille paitsi Satokankaalle, mutta kaikki ryhmän jäsenet oppivat sen käytön projektin aikana. Vaadinin käyttöä opiskeltiin Internetin keskustelupalstojen sekä kirjojen \cite{bookofvaadin} ja \cite{learningvaadin} avulla. Myös projektin teknisellä ohjaajalla oli kokemusta Vaadin-sovellusten kehityksestä.


\section{Luennot ja perehdytykset}

Projektin rinnalla järjestettiin kaksi oheiskurssia. Kurssiin \textit{Sovellusprojektin hallintaa, viestintää ja työkaluja} sisältyivät seuraavat luennot:

\begin{compactenum}
\item[-]aloitusluento,
\item[-]projektin johtaminen ja hallinta,
\item[-]käytettävyyspäivä,
\item[-]tekijänoikeus ja sopimukset sekä
\item[-]versiohallinta.
\end{compactenum}

Kurssiin sisällytettiin myös perehdyttämistä projektin mahdollisiin työkaluihin ja tekniikoihin sekä aihealueeseen. Juho Vepsäläinen perehdytti Django-sovelluske\-hykseen ja JavaScript-ohjelmointikieleen, sekä Pauli Kujala opasti tietokannan suunnittelussa. Lisäksi tilaajan toimesta saatiin IPR-juristi Markku Lampola esitelmöimään sopimusjuridiikasta.

Kurssiin \textit{Projektiviestintä IT-alalla} kuuluivat puhe- ja kirjoitusviestinnän luentojen ja ryhmätöiden ohella projektissa laadittujen dokumenttien kirjoitusasun ja rakenteen muokkauksen työtunnit. Projektin aikana järjestetyt kaksi väliesittelyä kuuluivat myös viestintäkurssiin.

Luentojen ja perehdytysten toteuma poikkesi hieman suunnitellusta. Projektipäälliköiden tapaamisia ei järjestetty, eikä tilaajan järjestämä tilaisuus sopimusjuridiikasta kuulunut projektin suunniteltuihin luentoihin ja perehdytyksiin. Ryhmän jäsenet saivat järjestetyistä tilaisuuksista hyödyllistä tietoa projektityöskentelyyn. Kujalan opetukset ja neuvot tietokannan suunnittelusta olivat myös erittäin hyödyllisiä, mutta Vepsäläisen perehdytyksessä opituille tekniikoille ja työkaluille ei ollut tarvetta projektissa.

\chapter{Käytänteet}
Luvussa kuvataan käytänteitä, joiden avulla projektin tavoitteet saavutettiin laadukkaasti ja aikataulussa. Käytänteissä ei tapahtunut olennaisia muutoksia suunniteltuun verrattuna.

\section{Kokoukset}
Projektiorganisaatio piti kokouksia helmi- ja maaliskuussa miltei viikoittain ja tämän jälkeen noin kahden viikon välein. Kokouksiin osallistuivat ryhmän jäsenet, ohjaajat ja tilaajan edustajat.

Kokouksissa käsiteltiin projektille ajankohtaisia asioita sekä hyväksyttiin tavoitteita ja toteutusratkaisuja tuoden esille mahdolliset ongelmat, valinnat ja vaihtoehdot. Kahta ensimmäistä kokousta lukuunottamatta jokaisessa  kokouksessa projektipäällikkö esitteli projektin tilakatsauksen sekä ryhmän käyttämän työajan ja sen jakautumisen eri tehtäväkokonaisuuksille. Edellisen kokouksen pöytäkirjan päätökset ja osallistujien tehtävät käytiin myös läpi.

Puheenjohtajan ja sihteerin tehtäviä kierrätettiin projektiryhmän jäsenten kesken. Sihteeri laati kokouksesta pöytäkirjan, jonka puheenjohtaja tarkasti ennen sen julkistamista projektiorganisaatiolle. Jokaisen jäsenen ensimmäisen pöytäkirjan tarkasti myös kirjoitusviestinnän opettaja Kaisa Leino.  Kokouksissa hyväksyttiin edellisen kokouksen pöytäkirja sellaisenaan tai muutoksin.

Kokoukset toteutuivat suunnitellusti ja ilman suurempia ongelmia.

\section{Tiedotus}

Tiedotusvastuu projektin tilasta oli pääasiassa projektipäälliköllä. Kukin ryhmän jäsenistä huolehti omiin tehtäviinsä, vastuualueisiinsa ja tuloksiinsa liittyvästä tiedotuksesta. Projektiin liittyvistä valinnoista, muutoksista ja niiden vaihtoehdoista keskusteltiin projektikokouksissa.

Projektiorganisaation tiedotusta varten luotiin kaksi sähköpostilistaa. Listalle \linebreak\texttt{paatti@korppi.jyu.fi} kuului koko projektiorganisaatio (katso luku~\ref{projektiorganisaatio}), sekä listalle \texttt{paatti\_opetus@korppi.jyu.fi} kuuluivat ryhmän jäsenet ja ohjaajat. Listoilla tiedotettiin muun muassa yleisistä asioista, kuten tapaamisista, esityksistä ja kokouksista. Lisäksi listojen avulla jaettiin palaverien esityslistat ja pöytäkirjat. Sähköpostilistojen viestit arkistoitiin suojattuihin arkistoihin. 

\begin{compactenum}
\item[ ]{\texttt{http://korppi.jyu.fi/list-archive/paatti/} ja}
\item[ ]{\texttt{http://korppi.jyu.fi/list-archive/paatti\_opetus/}.}
\end{compactenum}

Tilaajan tarkasteltaviksi tarkoitetut dokumentit sijoitettiin projektin WWW-sivuille osoitteeseen \texttt{http://sovellusprojektit.it.jyu.fi/paatti}.

Projektiryhmän sisäinen tiedotus hoidettiin pääosin suullisesti, sillä ryhmän jäsenet työskentelivät fyysisesti samassa tilassa ja tapasivat arkipäivisin lähes päivittäin. Ryhmän jäsenten omaan käyttöön luotiin Korppi-opintotietojärjestelmään oma ryhmä ja siihen kuuluva sähköpostilista. Mikään asia ei osoittautunut niin kiireiseksi, että asia olisi tarvinnut hoitaa puhelimella.

Tiedotus toteutui hyvin ryhmän sisäisesti, mutta ryhmä olisi voinut toimia oma-aloitteisemmin organisaatiolle tiedottamisessa. Toisaalta, kokouksia pidettiin niin usein, että tilaajalle saatiin välitettyä hyvin tietoa tietojärjestelmän kehityksestä. Tilaajan edustajien tiedotus oli ajoittain hidasta, mutta siitä ei koitunut mitään ongelmia.

\section{Hakemistorakenne} \label{hakrak}

Hakemistorakenne on projektin WWW-sivustolla ja CD:llä seuraavanlainen:

\begin{alltt}
        class \textnormal{(luokkadokumentit)}
        dokumentit
            ajankaytto
            esittelyt
            itsearvioinnit
            projektiraportti
            projektisuunnitelma
            sopimukset
            sovellusraportti
            sovellussuunnitelmat
            vaatimusmaarittely
        kokoukset
            esityslistat
            poytakirjat
            tilakatsaukset
        sahkopostiarkisto
            paatti
            paatti_opetus
        sources \textnormal{(lähdekoodit)}
\end{alltt}

Hakemistorakenne toteutui suunnitelman mukaisesti.

\section{Tiedostojen nimeäminen}

Kaikki tiedostot nimettiin pienillä kirjaimilla ilman skandinaavisia merkkejä. Dokumenttien nimissä ensimmäisenä on projektin nimi, toisena dokumentin nimi ja kolmantena dokumentin versio. 

Laajempien dokumenttien tiedostot projektiryhmä nimesi tyyliin \newline \texttt{paatti\_dokumentinnimi\_versio\-.pääte}, eli esimerkiksi projektisuunnitelman ensimmäinen versio oli \texttt{paatti\_projektisuunnitelma\_0.0.1.tex}. Kokousten tekstimuotoiset esityslistat ja pöytäkirjat tallennettiin muodossa \newline
\texttt{paatti\_esityslista\_kokouksenjärjestysnumero.txt} ja \newline \texttt{paatti\_poytakirja\_kokouksenjärjestysnumero.pdf}. 

Lähdekooditiedostojen nimeämisessä käytettiin Java-ohjelmoinnin yleisiä käytänteitä \cite{javakaytanteet}. Lähdekooditiedostojen hakemistorakenne oli valmiiksi määritelty Vaadin-sovelluskehitysympäristössä, eikä rakennetta muutettu. Muiden tiedostojen ja hakemistojen nimet kirjoitettiin pienillä kirjaimilla ja englanniksi.

Tiedostojen ja lähdekoodin nimeäminen toteutui suunnitelman mukaisesti. Verkkosivulle ja CD:lle sijoitetut dokumentit vastasivat edellämainittuja käytänteitä.
\newpage
\section{Lähdekoodin käytänteet} \label{koodauskaytanteet}

Lähdekoodi ohjelmoitiin käyttäen Javan yleisiä käytänteitä \cite{javakaytanteet}. Luokkien nimissä ensimmäinen kirjain kirjoitettiin isolla ja sanat kirjoitettiin yhteen isoin alkukirjaimin. Funktioiden ja muuttujien nimissä ensimmäinen kirjain kirjoitettiin pienellä ja sanat kirjoitettiin yhteen isoin alkukirjaimin.

Lähdekoodit kommentoitiin englanniksi. Kommentit aloitettiin yksittäisten rivien tai rivin loppujen tapauksissa merkillä \texttt{//}, mutta useamman rivin tapauksessa kommentti aloitettiin \texttt{/*} ja päätettiin \texttt{*/}. Luokkien ja funktioiden kommentit aloitettiin \texttt{/**} ja päätettiin \texttt{*/}. Luokkadokumentointi muodostettiin JavaDocin avulla, joten sen kommentointiohjeita noudatettiin.

%\pagebreak
Lähdekoodin sisennystä ja kommentointia havainnollistaa seuraava esimerkki:
\begin{verbatim}
/**                                                                                                                                                                                 
* Layout for all the mobile views. 
* Has a place for the header, the footer and the content.                                                                                                                                                                         
*                                                                                                                                                                                  
* @author Lauri Satokangas, lauri.n.satokangas@student.jyu.fi                                                                                                        
*/                                                                                                                                                                                                                                          
public abstract class MobileView extends VerticalLayout {                                                                                                                                                                                    
                                                                                                                                                                                                                                             
    private Panel pageContent;                                                                                                                                                                                                               
    
    // This is the left button in the footer layout.
    public Object FOOTER_BUTTON_LEFT = "leftfooterbutton";

...
\end{verbatim} 

Lähdekoodin ja kommentoinnin käytänteet toteutuivat suunnitelman mukaisesti.
\newpage
\section{Testauksen käytänteet}

Sovelluksia yksikkötestattiin kehittämisen yhteydessä projektiryhmän toimesta. Sovelluksista pidettiin virtuaalipalvelimella uusinta toimivaa ja testattua versiota. Kun ryhmä sai valmiiksi jonkin uuden toiminnon sovelluksesta, testattiin sen toimintaa ja toimivuuden varmistamisen jälkeen palvelimella oleva sovellus päivitettiin kyseiseen uudempaan versioon. Pinnallinen järjestelmätestaus suoritettiin ennen siirtymistä viimeistelyyn. 

Ajan puutteen vuoksi tietojärjestelmälle ei laadittu testaussuunnitelmaa, mutta sovellusten ominaisuuksia järjestelmätestattiin kuitenkin kattavasti ja kaikki jäsenet testasivat sovellusten kaikkia osa-alueita. Tilaajalta saadun testimateriaalin avulla luotiin tietokantaan testidataa, jotta sovellusta pystyttiin testaamaan oikealla sisällöllä. Myös tilaajan edustajat ja ohjaajat testasivat toukokuun kolmella ensimmäisellä viikolla virtuaalipalvelimella olleita sovelluksia.

Projektin alussa tiedostettiin, että sovellusta ja sen käytettävyyttä ei todennäköisesti ehditä testaamaan laajamittaisesti. Mahdollinen testaus oikeilla loppukäyttäjillä jäi toteutumatta johtuen ajan puutteesta, joten se sovittiin tilaajan kanssa projektin jatkokehitykseen. Tilaajan edustajien ja ohjaajien havaintojen ja palautteen avulla ryhmä sai korjattua monia käyttöliittymien virheitä ja epäloogisuuksia, sekä hiottua niiden käytettävyyttä paremmiksi. Puutteelliset ja kehnot toteutusratkaisut sekä jatkokehitysideat kirjattiin sovellusraporttiin \cite{sovellusraportti}.

Testauskäytänteet toteutuivat suunnitelman mukaisesti.

\section{Versiohallinta} \label{versionhallinta}

Projektissa käytettiin YouSource-versiohallintajärjestelmää sekä dokumenttien että lähdekoodin versioiden hallintaan. Ryhmän jäsenillä ja ohjaajilla oli oikeudet YouSource-versiohallintaan.

Projektiorganisaatiolle julkistetuissa dokumenteissa ja lähdekoodeissa käytettiin  yhtenäistä versionumerointia. Projektiryhmä kasvatti versionumeroa, kun tulokseen oli lisätty uusia ominaisuuksia tai korjattu virheitä. Projektiryhmän sisäisesti julkistetuissa tuloksissa versionumero oli muotoa 0.j.k, jossa j ja k ovat kokonaislukuja välillä 0-99. Versionumeroa 0.j.0 käytettiin julkaistaessa versio projektiorganisaatiolle. Tilaajan ja ohjaajien hyväksymä ensimmäinen versio merkittiin versionumerolla 1.0.0. Version 1.0.0 jälkeen keskimmäinen numero ilmaisee pienet muutokset ja ensimmäinen numero huomattavat sisällölliset muutokset.

Versiohallinta ja -numerointi toteutui suunnitelman mukaisesti.

\section{Tulosten hyväksyminen ja katselmoinnit} \label{tulostenhyvak}

Projektiorganisaatiolle julkistetut tulokset ovat saatavissa projektin WWW-sivuilta osoitteesta \texttt{http://sovellusprojektit.it.jyu.fi/paatti}, josta projektiorganisaatioon kuuluvat pystyivät seuraamaan niiden kehitystä. Lisäksi ohjaajat pystyivät seuraamaan projektiryhmän tuloksia versiohallinnan kautta.

Projektikokouksissa tarkastettiin projektiryhmän tuloksia. Projektisuunnitelma, projektiraportti, sovellusraportti sekä vaatimusmäärittely hyväksyttiin projektipäällikön, tilaajan edustajan ja projektin vastaavan ohjaajan allekirjoituksilla. Kehitetty tietojärjestelmä ja muut projektin dokumentit hyväksyttiin kokouksissa.

Lähdekoodin osalta järjestettiin kaksi katselmointitilaisuutta. Lähdekoodin tarkasti ja hyväksyi tekninen ohjaaja Outa Valkama. Katselmoinneista laadittiin projektiorganisaatiolle muistiot \cite{katselmointi1} ja \cite{katselmointi2}.

Tulosten hyväksyminen suoritettiin suunnitelman mukaisesti.

\section{Tulosten koostaminen ja toimittaminen}

Projektin tulokset koottiin projektikansioon ja projektin CD-R-levylle. Projektin CD-R-levy sisältää kaikki projektissa laaditut dokumentit sekä sovelluksen ohjelmakoodit. Projektin CD-R-levy on koostettu luvussa~\ref{hakrak} kuvatulla tavalla. Ryhmä sijoitti tulokset myös YouSource-sivustolle.

Laitokselle ja tilaajalle toimitettiin projektikansio. Laitokselle toimitettiin yksi projektin CD-R-levy ja tilaajalle toimitettiin kolme projektin CD-R-levyä. Laitoksen projektikansio sijoitettiin projektitilan avotilassa sijaitsevaan kirjahyllyyn. Projektiryhmän jäsenet saivat projektin CD-R-levyn. Näiden lisäksi tietotekniikan laitos arkistoi yhden projektin CD-R-levyn.

Tulosten toimittaminen ja koostaminen suoritettiin suunnitelman mukaisesti.

\chapter{Tehtävät, työmäärät ja työnjako}

Luvussa määritellään ryhmän jäsenten vastuualueet sekä heidän tehtävänsä. Lisäksi esitellään ryhmän jäsenten eri tehtävien työmäärät ja työnjako.

Työnjaossa onnistuttiin hyvin huomioimaan jäsenten poissaolot sekä muiden kurssien vaatima työmäärä. Työtuntien tarve ja tehtäviin käytettävät ajat eivät olleet täysin suunnitelman mukaisia. Tehtäviin tarvittavia työtunteja ei osattu arvioida riittävän tarkasti, joten joidenkin tehtäväkokonaisuuksien toteutunut työtuntimäärä poikkesi selvästi suunnitellusta.

Käytettyjen työtuntien määrä tehtäväkokonaisuuksissa jäi merkittävästi alle suunnitellun määrän vain oheiskurssien osalta. Pelkästään sovellusprojektiin käytettyjen tuntien yhteismäärä vastasi melko tarkasti suunnitelmaa. Aihealueeseen ja työkaluihin perehtymiseen tarvittiin suunniteltua vähemmän työtunteja, ja oheiskurssin toteutunut työtuntimäärä jäi sata tuntia suunniteltua pienemmäksi. Arvioitua enemmän aikaa puolestaan kului koko kehityksen ajan jatkuneeseen tietojärjestelmän toteutusratkaisujen suunnitteluun ja osa näistä suunnitteluun kuluneista työtunneista merkittiin erheellisesti toteutuksen tehtäväkokonaisuuteen. Ryhmä ei myöskään halunnut jättää tietojärjestelmän tarpeellisia toimintoja keskeneräisiksi, joten aikaa kului näiden toimintojen kehittämiseen ja viimeistelyyn.

\section {Projektipäällikkö ja varapäällikkö}

Projektin alussa \textbf{projektipäällikkönä} toimi Toni Salminen ja varapäällikkönä Lauri Satokangas. Salminen ja Satokangas vaihtoivat tehtäviä huhtikuun alkupuolella. Varapäällikölle ei projektissa ollut varsinaista tarvetta kuin vasta projekti loppupuolella, kun projektipäälliköllä oli ulkomaanmatka. Projektipäällikön vastuulle kuuluivat projektin suunnittelu ja hallinta, projektin tilan määritys, ajankäytön seuranta, tiedotus sekä työnjako. Projektipäällikkö vastasi myös projektisuunnitelman ja -raportin laatimisesta. Käytännössä tämä tarkoitti sitä, että Salminen kirjoitti projektisuunnitelman ja Satokangas kirjoitti sen pohjalta projektiraportin.

Ryhmän sisällä ei päällikön rooli eronnut suuresti muiden jäsenten rooleista. Tämä johtui siitä, että kaikki jäsenet osallistuivat miltei yhtä paljon tietojärjestelmän suunnitteluun ja toteutukseen. Ratkaisu osoittautui toimivaksi projektin läpiviennin kannalta. Projektipäällikön tarvitsi keskittyä varsinaiseen projektin hallintaan vain projektin alussa, jotta projekti saatiin kunnolla aloitettua, ja projektin lopussa, jotta kaikki projektin päättämiseen tarvittavat tehtävät saatiin suoritettua hallitusti. Ryhmän jäsenet sopivat työtehtävänsä neuvottelemalla muiden kanssa tai valitsemalla omatoimisesti tekemättömiä tehtäviä. Suurimman osan projektin elinkaaresta projektipäällikkö oli kuitenkin samassa asemassa kuin muutkin ryhmän jäsenet.

\section{Vastuualueet tulosten osalta}

\textbf{Dokumenttien vastuuhenkilöt} on esitetty taulukossa \ref{vastuuhenkilot}. Vastuuhenkilö ei ollut vastuussa koko dokumentin toteuttamisesta yksin, mutta vastasi sen valmistumisesta, tarkastettavaksi toimittamisesta ja tarpeellisesta muokkauksesta. Vastuuhenkilö tiedotti projektiorganisaatiolle vastuullaan olevien tulosten valmistumisesta.

\begin{table}[h!]
\begin{center}
\begin{tabular}{|p{0.3\textwidth}|p{0.3\textwidth}|p{0.3\textwidth}|}
\hline
\textbf{Tulos} & \textbf{Vastuuhenkilö} & \textbf{Hyväksytty} \\
\hline \hline
Projektisuunnitelma & Toni Salminen & 23.4.2012 \\
\hline
Projektiraportti & Lauri Satokangas & \\
\hline
Vaatimusmäärittely & Tapio Keränen & \\
\hline
Sovellusraportti & Jari Salokangas & \\
\hline
Tietokanta & Tapio Keränen & 24.5.2012 \\
\hline
\end{tabular}
\caption{Dokumenttien vastuuhenkilöt.} \label{vastuuhenkilot}
\end{center}
\end{table}

Kehitettyjen \textbf{sovellusten osa-alueiden} toteutukselle ei nimetty vastuuhenkilöitä projektin suunnittelun yhteydessä, mutta käytännössä joidenkin kokonaisuuksien kohdalla ryhmän sisälle muodostui vastuualueita. Tapio Keränen vastasi tutkijan käyttöliittymässä olevasta tapahtumien luomiseen käytetystä työkalusta. Lauri Satokankaan vastuulla oli kuntoutettavan käyttöliittymä sekä sovellusten tietokantatoimintojen rakenne. Toni Salminen ja Jari Salokangas kehittivät muita tutkijan käyttöliittymän osia. Näissä vastuualueissa ei tapahtunut muutoksia projektin aikana.

\section{Tehtävien työmäärät ja työnjako}

Kuvan \ref{suunnitelma_ja_toteuma_taulukko} taulukossa on esitetty suunnitellut (S) ja toteutuneet (T) työtunnit jokaiselle ryhmän jäsenelle tehtäväkohtaisesti. Työtuntien kirjaamisessa käytetyt tehtävät eivät vastaa kaikilta osin suunnitelmaan kirjattuja tehtäviä, joten taulukossa esitetty toteutuneiden työtuntien jaottelu ei ole täysin totuudenmukainen. Taulukkoon on merkitty \textit{Suunnittelu}-tehtäväkokonai\-suuden toteutuneisiin työtunteihin kysymysmerkeillä yksittäisten tehtävien tuntimäärät, koska suunnittelussa oli vaikeaa eritellä työtuntien jakautumista eri tehtäviin. Näissä kohdissa onkin merkitty vain jokaisen jäsenen toteutuneiden työtuntien yhteissumma.

\begin{figure}[h!]
\centering
\scalegraphics{suunnitelma_ja_toteuma_taulukko.png}
\caption{Suunnitellut ja toteutuneet työtunnit.} \label{suunnitelma_ja_toteuma_taulukko}
\end{figure}

Ryhmä suunnitteli käyttävänsä projektiin noin 25 työtuntia viikkoa kohden. Yhteensä työtunteja oli suunniteltu käytettäväksi 1832. Kuvassa \ref{suunnitelma_ja_toteuma_taulukko} esitetty toteutunut työtuntimäätä oli 120 tuntia suunniteltua vähemmän. Oheiskursseihin käytettiin 100 tuntia  suunniteltua vähemmän, mutta niihin varattiinkin suunnitelmassa reilusti pelivaraa. %Raportin kirjoittamishetken jälkeen tulee lisää vielä 10-20 työtuntia, jotta kaikki projektin päättämiseen liittyvät tehtävät saadaan suoritettua. 
Toteutunut työtuntimäärä on siis erittäin lähellä suunniteltua tuntimäärää, kun oheiskursseihin käytettyjä työtunteja ei huomioida. 

Projektipäälliköt eivät aina merkinneet projektin hallintaan käytettyjä työtunteja \textit{Projektin hallinta} -tehtäväkokonaisuuden alle. Tunteja merkittiin useasti siihen tehtävään, joka oli kulloinkin meneillään. Projektin seurantaan merkittiin vain muutamia tunteja, vaikka seurantaa tapahtui käytännössä koko projektin ajan. Jari Salokangas merkitsi osan sovellusraportin laatimiseen kuluneista työtunneista projektin hallintaan
viimeistelyn sijasta. 

Kokouksiin käytetty työtuntimäärä erosi suunnitellusta tuntimäärästä vain seitsemällä tunnilla. Eri tehtäviin käytetty työtuntimäärä ei myöskään eronnut mainittavasti suunnitelmasta.

Projektin aihealueeseen perehtymiseen ei käytetty kuin kolmannes siihen suunnitellusta työtunneista. Tarvetta erilliselle perehtymiselle ei ollut, sillä kokouksissa tilaajan edustajat kertoivat aihealueesta kattavasti. Myöskään käytettyihin työkaluihin perehtyminen ei vaatinut niin suurta tuntimäärä kuin suunnitelmassa oli arvioitu.

Vaatimusmäärittelyyn kului 20 työtuntia suunniteltua enemmän. Ero selittyy vaatimusten muuttumisella projektin aikana. Ryhmä joutui tarkentamaan ja priorisoimaan vaatimuksia useaan otteeseen projektin läpiviennin aikana.

Kun tarkastellaan tehtäväkokonaisuuksien suunnittelu, toteutus, testaus ja viimeistely yhteenlaskettuja suunniteltuja ja toteutuneita tunteja  välillä, saadaan hyvin lähellä toisiaan olevat tulokset. Em. tehtäväkokonaisuuksien suunniteltu työtuntimäärä oli 811 tuntia ja toteutunut työtuntimäärä 838 tuntia. Vaikka ko. tehtäväkokonaisuuksien toteutuneet työtunnit poikkeavat huomattavasti suunnitellusta, onnistuttiin siis kokonaisuutena erinomaisesti sovelluksen kehityksen työtuntien arvioinnissa. \textit{Viimeistely}-tehtäväkokonaisuuteen ei ole merkitty yhtään työtunteja, koska niitä on merkitty muun muassa \textit{Toteutukseen} ja \textit{Projektin hallintaan}. 

Tietokannan suunnitteluun ei ollut suunnitelmassa varattu riittävästi työtunteja, ja lisäksi tarvittiin Pauli Kujalan apua tietokannan rakenteen tarkistamisessa. Käytännössä tietokannan suunnitteluun käytettiin ainakin kaksinkertainen määrä työtunteja. Tietokannan rakennetta ja tietokantataulujen sarakkeita jouduttiin muokkaamaan useaan otteeseen, jotta tarvittavat tietojärjestelmän toiminnot saatiin toteutettua.

Työtehtävien vastuualueet keskittyivät joissain tapauksissa tietyille ryhmän jäsenille. Kuvan \ref{suunnitelma_ja_toteuma_taulukko} taulukosta nähdään osittain, mitkä olivat kyseisiä tehtäviä. Phone\-Gap-sovelluskehykseen tutustuminen ja kuntoutettavan käyttöliittymän toteutus olivat Satokankaan vastuualuetta. Vaatimusmäärittelyn suunnittelu ja raportointi olivat puolestaan Keräsen vastuulla, kuten myös tutkijan käyttöliittymän tapahtumien luomiseen käytettävä työkalu. Salokangas päivitti vaatimusmäärittelyn toukokuun lopulla. Järjestelmälliseen testaukseen suunniteltujen työtuntien toteumaa on vaikeaa arvioida taulukon perusteella. Vaikka merkittyjä tunteja on vain Satokankaalla ja Salokankaalla, niin myös muut jäsenet testasivat sekä omia että muiden jäsenten kehittämiä komponenttia ja kokonaista järjestelmää.

Ryhmän olisi kannattanut heti projektin alussa sopia tarkemmin työtuntien kirjaamiskäytännöt. Jos tunnit olisi kirjattu työtuntien suunnittelun nimikkeillä, olisi suunniteltujen ja toteutuneiden tuntien vertailu ollut paljon suoraviivaisempaa. Tulevissa sovellusprojekteissa asiaa kannattaa täsmentää ryhmien jäsenille, jotta Excel-sovelluksesta \cite{ajanseurantalahde} muodostettavista raporteista voitaisiin tehdä entistä täsmällisempiä.

Yksittäisten ryhmän jäsenten työtuntimäärissä erot jäivät alle kahteenkymmeneen työtuntiin, joten jäsenten työmäärät saatiin pidettyä sopivassa tasapainossa. Projektin lopussa suoritettu tietojärjestelmän viimeistely ja dokumenttien laatiminen auttoivat työmäärien tasaamisessa. Satokankaalla ja Salokankaalla oli huhtikuun loppuun mennessä selvästi vähemmän tunteja kuin Keräsellä ja Salmisella, mutta he saivat tasattua työtunteja toukokuun kolmella viimeisellä viikolla.

Oheiskursseihin käytettyjen työtuntien määrä vaihtelee jäsenten välillä. Vaihtelu johtuu jäsenten eroista: toiset ovat kokeneempia kirjoittajia. Satokankaan työtunneissa eroa selittää myös huhtikuun alun poissaolo.

\clearpage
\section {Ryhmän työtunnit tehtäväkokonaisuuksittain}

Piirakkagraafissa kuvassa \ref{kaikkientunnit} näkyvät kirjattujen tehtäväkokonaisuuksien nimekkeet eivät vastaa täysin todellisia työtehtävien nimikkeitä. Toteutuksen suuri osuus työtunneista selittyy sillä, että siihen merkittiin myös tunteja, jotka olisivat kuuluneet pikemminkin suunnitteluun, testaukseen tai viimeistelyyn. Sovelluksen kehityksen työtunneista oli hyvin vaikeaa erotella toteutuneita tunteja eri tehtäväkokonaisuuksiin, ja usein koko päivän tunnit merkittiinkiin toteutukseen.

\begin{figure}[h!]
\centering
%\scalebox{0.85}{\includegraphics[trim = 0mm 0mm 0mm 0mm, angle=0]{kaikki_tunnit_vaiheittain.png} } 
\scalegraphics{kaikki_tunnit_vaiheittain.png}
\caption{Ryhmän työtunnit tehtäväkokonaisuuksittain.} 
\label{kaikkientunnit}
\end{figure}

\clearpage
\section {Tapio Keräsen työtunnit tehtäväkokonaisuuksittain}

Keränen vastasi pääosin vaatimusmäärittelystä, tietokannan suunnittelusta ja toteutuksesta sekä tutkijan käyttöliittymässä käytettävästä tapahtumien muokkaustyökalusta. Toteutuneiden työtuntien kuvasta \ref{tapiontunnit} voidaan nähdä, että Keräsen osuus tietojärjestelmän määrittelystä ja ohjelmointityöstä oli keskimääräistä hieman suurempi. Keräsen oheiskurssin muita suurempi työtuntien määrä selittyy ainakin osaksi sillä, että hän oli sihteerinä ensimmäisessä kokouksessa ja laati samalla mallin pöytäkirjasta, jota käytettiin seuraavissa kokouksissa.

\begin{figure}[h!]
\centering
\scalegraphics{tapio_tunnit_vaiheittain.png}
\caption{Keräsen työtunnit tehtäväkokonaisuuksittain.} 
\label{tapiontunnit}
\end{figure}

\clearpage
\section {Toni Salmisen työtunnit tehtäväkokonaisuuksittain}

Salminen toimi projektipäällikkönä huhtikuun puoleen väliin asti, mikä näkyy selvästi eri tehtäväkokonaisuuksien tasaisena jakautumisena toteutuneiden työtuntien kuvassa \ref{tonintunnit}. Projektin läpiviennin suunnittelu ja projektisuunnitelman kirjoittaminen muodostivat huomattavan osan työtuntimäärästä. Projektisuunnitelman kirjoittamisen jälkeen Salminen siirtyi ohjelmoimaan tutkijan käyttöliittymän näkymiä, ja hän toteutti myös tietojärjestelmän sisäänkirjautumisessa käytetyt komponentit.

Salminen osallistui aktiivisesti myös sovellusten suunnitteluun, mikä näkyy myös kuvan \ref{tonintunnit} \textit{Suunnittelu}-tehtäväkokonaisuudessa. \textit{Suunnitteluun} on merkitty sekä sovellusten että projektin suunnittelutehtäviä.

\begin{figure}[h!]
\centering
\scalegraphics{toni_tunnit_vaiheittain.png}
\caption{Salmisen työtunnit tehtäväkokonaisuuksittain.} 
\label{tonintunnit}
\end{figure}

\clearpage
\section {Jari Salokankaan työtunnit tehtäväkokonaisuuksittain}

Kuvassa \ref{jarintunnit} näkyy Salokankaan suunnitteluun ja dokumenttien laatimiseen käytettyjen työtuntien suuri osuus. Sovellusraportin laatimiseen käytetyt työtunnit on merkitty ajanseurantataulukossa \textit{Projektin hallinta} -tehtäväkokonaisuuden alle. Salokangas kirjoitti projektin sovellusraportin sekä toteutti tutkijan käyttöliittymän näkymiä. Hän myös vastasi vaatimusmäärittelyn päivittämisestä toukokuussa, sovellusten suunnittelussa laadituista käyttöliittymähahmotelmista sekä sovellusten ulkoasun suunnittelusta. Suunnittelun ja dokumenttien laatimisen suuresta työmäärästä johtuen hänen toteutukseen käyttämänsä työmäärä on ryhmän keskiarvoa pienempi. Salokangas käytti myös suunniteltua vähemmän työtunteja kokouksiin, sillä hän aloitti viimeisenä pöytäkirjojen laatimisen, ja tällöin kirjoittamisen käytänteet olivat jo vakiintuneet. Hänen kirjoitettavakseen osui vain kaksi pöytäkirjaa, mikä myös selittää vähäisempää tuntimäärää.

\begin{figure}[h!]
\centering
\scalegraphics{jari_tunnit_vaiheittain.png}
\caption{Salokankaan työtunnit tehtäväkokonaisuuksittain.} 
\label{jarintunnit}
\end{figure}

\clearpage
\section {Lauri Satokankaan työtunnit tehtäväkokonaisuuksittain}

Satokangas keskittyi pääosin tietojärjestelmän ohjelmointiin, sillä hänellä oli aiempaa kokemusta käytetystä sovelluskehyksestä. Hän toteutti pääosin kuntoutettavan käyttöliittymän ja rungon tietokantayhteydet hoitavasta apuluokasta. Kuvasta \ref{laurintunnit} näkyy, että melkein puolet käytetyistä työtunneista on kulunut toteutukseen. Satokangas toimi projektipäällikkönä huhtikuun puolivälistä toukokuun loppuun. Projektipäällikön tehtävät jäivät selvästi vähemmälle kuin ohjelmointiin käytetty aika. Projektin hallinta keskittyikin ajallisesti pääasiassa toukokuun kolmelle viimeiselle viikolle ja oli täten selvästi tuntimäärältään pienempi muihin tehtäväkokonaisuuksiin verrattuna. Oheiskursseihin käytetyn työmäärän muita jäseniä pienempi osuus johtuu siitä, ettei Satokangas ollut paikalla kaikilla oheiskurssien luennoilla. Hän ei myöskään ehtinyt muiden kurssien ja työkiireiden vuoksi käyttämään aikaa oheiskurssien tehtäviin niin paljon kuin muut ryhmät jäsenet.

\begin{figure}[h]
\centering
\scalegraphics{lauri_tunnit_vaiheittain.png}
\caption{Satokankaan työtunnit tehtäväkokonaisuuksittain.} 
\label{laurintunnit}
\end{figure}

\chapter{Prosessimalli ja aikataulu}

Luvussa kuvataan projektissa noudatettua prosessimallia ja toteutunutta aikataulua. Suunniteltua prosessimallia ei käytetty projektin läpiviennissä suunnitellun mukaisesti, mutta siitä ei koitunut haittoja projektille.

Toteutunut aikataulu ei vastannut täysin suunniteltua. Suurimmat erot aikataulussa näkyvät eri tehtäväkokonaisuuksien päällekkäisyyksinä. Suunnitelmassa arvioitu tehtävien päättyminen ei vastannut toteumaa, jossa eri tehtäväkokonaisuuksien yksittäisiä tehtäviä suoritettiin useasti samanaikaisesti.

\section{Prosessimalli}

Projektissa suunniteltiin käytettävän räätälöityä ketterää prosessimallia. Käytännössä  prosessi vastasi enemmänkin vesiputousmallia, jossa toteutusosuudessa käytettiin ketterää prosessimallia. Projekti vietiin läpi neljässä vaiheessa. Ensimmäisessä vaiheessa suunniteltiin projektin läpivienti, laadittiin vaatimusmäärittely sekä suunniteltiin sovelluksen käyttöliittymää ja rakennetta. Toisessa vaiheessa kehitettiin tietojärjestelmän runko ja suunniteltiin tietokanta. Kolmannessa eli toteutusvaiheessa tietojärjestelmän runkoon lisättiin ominaisuuksia. Viimeisessä vaiheessa sovellus, lähdekoodi ja dokumentaatio viimeisteltiin sekä saatettiin projekti päätökseen. 

Vaiheiden vaihtumis- tai loppumisajankohdat eivät olleet aivan yksikäsitteisiä, sillä vaiheita toteutettiin osittain päällekkäin toistensa kanssa. Vaatimusmäärittelyä ja tietokantaa muutettiin vielä toukuunkin aikana. Varsinaisia vaiheita onkin vaikeaa erottaa toteutuneesta prosessista. Vaiheiden tuloksia ei myöskään pääsääntöisesti hyväksytetty ohjaajilla tai tilaajan edustajilla.

Toteutusvaiheen prosessi ei toteutunut täysin suunnitelman mukaisesti. Ryhmä keskusteli aina työn alla olevista toiminnoista ja päätti yhdessä, mitä osiota kukin toteuttaa seuraavaksi. Projektin alussa suunniteltu erityisten kehityssyklien käyttö jäi toteutumatta. Tietojärjestelmän kehitys oli myös suunniteltua iteratiivisempaa. Vaikka sen runko saatiinkin aikaisessa vaiheessa valmiiksi,  yksittäiset näkymät ja niiden toteutustapa kokivat suuriakin muutoksia projektin aikana. 

Selkeän prosessimallin puuttuminen ei missään vaiheessa haitannut projektin edistymistä. Ryhmän omaksumat käytänteet korvasivat prosessimallin puutteita. Tarvittavia työtunteja toimintojen toteuttamiseen lisättiin tarvittaessa sekä jäsenet toteuttivat osittain useita päällekkäisiä toimintoja ja tehtäviä. Jäsenet käyttivät useasti pariohjelmointia tietojärjestelmän kehitysvaiheessa.

\section{Aikataulu}

Projekti alkoi 2.2.2012, ja se päättyi [Toni lisää päivämäärän]. Tietojärjestelmän prototyyppi hyväksyttiin viimeisessä kokouksessa 24.5.2012. Projektin suunniteltiin \linebreak päättyvän viimeistään toukokuun lopussa. Viimeiset tulokset luovutettiin kesäkuun ensimmäisellä viikolla, joten aikataulu viivästyi kolmella viikolla suunnitellusta. Tehtäväkokonaisuuksien toteutuneet aikajänteet kuvataan Gantt-kaavioissa kuvissa \ref{suunnitellut_tunnit_gantt} ja \ref{toteutuneet_tunnit_gantt}.

Suunnitelman ja toteuman aikajänteiden eroissa näkyy selvästi eri tehtäväkokonaisuuksien suunniteltua suurempi päällekkäisyys. Kuvasta \ref{toteutuneet_tunnit_gantt} nähdään, että tehtäväkokonaisuudet kestivät pääosin useita viikkoja pidempään, kuin suunnitelmaan oli arvioitu. Tietokannan jatkuva suunnittelu ja kehittyminen näkyy kuvassa  \ref{toteutuneet_tunnit_gantt} miltei kolminkertaisena määränä suunniteltuun kalenteriaikaan verrattuna. Tehtävien kalenteriajan pidempi kesto johtui myös iteratiivisesta kehittämisestä, jossa jo valmistuneisiin tehtäviin palattiin vielä myöhemmin korjausten ja muutosten takia.

Sekä tutkijan, että kuntoutettavan käyttöliittymien eri tehtävät olivat päällekkäisiä ja kestivät suunniteltua pitempään. Varsinkin tutkijan käyttöliittymän tapahtumamuokkaimeen ja hallintatyökaluihin käytetty aika on huomattavasti suunniteltua suurempi. 

Kuntoutettavan käyttöliittymän rakenteen suunnitteluun kulunut aika vastasi suunnitelmaa, mutta näkymien ja ulkoasun suunnitteluun kalenteriaikaa käytettiin miltei kaksinkertainen määrä. Myös käyttöliittymän toteutukseen suunniteltu aika jäi selvästi toteutunutta aikataulua pienemmäksi.

\clearpage
\begin{figure}[h!]
\centering
\scalebox{0.48}{\includegraphics[trim = 0mm 0mm 0mm 0mm, angle=-90]{suunnitellut_tunnit_gantt.png} } 
\caption{Gantt-kaavio suunnitellusta aikataulusta.} \label{suunnitellut_tunnit_gantt}
\end{figure}

\begin{figure}[h!]
\centering
\scalebox{0.39}{\includegraphics[trim = 0mm 0mm 0mm 0mm, angle=90]{toteutuneet_tunnit_gantt.png} } 
\caption{Gantt-kaavio toteutuneesta aikataulusta.} \label{toteutuneet_tunnit_gantt}
\end{figure}

\clearpage
\section {Ryhmän työtunnit viikoittain}

Kuvassa \ref{tunnit_viikot} on esitetty ryhmän käyttämien työtuntien jakautuminen eri viikoille. Suunniteltu työtuntimäärä viikkoa kohden oli 25 tuntia jokaista jäsentä kohden, eli yhteensä 100 tuntia viikossa. Työtunteja ei kertynyt yhdelläkään viikolla tasaisesti ryhmän jäsenten kesken. Viikot 6--12 ovat ainoa pidempi ajanjakso, jolloin tuntimäärä pysyi keskiarvoltaan tasaisena. 

Keräsellä ja Salokankaalla oli kevään aikana muita opintoja, jotka vaikuttivat heidän työtuntiensa määrään. Kuvassa näkyy myös pääsiäisen aika (viikot 13 ja 14), jolloin Satokangas ja Salokangas eivät suorittaneet projektiin liittyviä tehtäviä. Vastaavasti kuvassa on myös nähtävissä Salokankaan loppukiri viikoilla 16--21.

Viikolla 21 pääasiassa ainoastaan Salokangas ja Satokangas työskentelivät projektin parissa. Salminen ja Keränen eivät työskennelleet näillä viikoilla, jottei ero heidän tuntimääriinsä olisi kasvanut suuremmaksi.

\begin{figure}[h!]
\centering
\scalegraphics{tunnit_viikot.png}
\caption{Ryhmän työtunnit viikoittain.}
\label{tunnit_viikot}
\end{figure}

\clearpage
\section {Tapio Keräsen työtunnit viikoittain}

Kuvassa \ref{tapio_viikkotunnit} näkyy, että Keräsen viikoittainen työtuntimäärä oli kaikkein lähimpänä suunniteltua 25 viikkotuntia. Pääsiäisviikon vapaapäivät näkyvät tässäkin kuvassa. Viikolla 19 ryhmä korjasi sovellusten bugeja ja refaktoroi lähdekoodia. 

\begin{figure}[h]
\centering
\scalegraphics{tapio_viikkotunnit.png}
\caption{Keräsen työtunnit viikoittain.} 
\label{tapio_viikkotunnit}
\end{figure}

\clearpage
\section {Toni Salmisen työtunnit viikoittain}

Kuvassa \ref{toni_viikkotunnit} näkyy Salmisen pääsiäisloman viikot 14 ja 15, sekä yksittäisenä piikkinä viikko 19. Viikolla 19 Salminen korjasi tutkijan käyttöliittymästä havaittuja puutteita ja virheitä. Viikoilla 20 ja 21 Salmisen työtuntimäärä oli selvästi muuta ryhmää vähäisempi, sillä hänelle oli kertynyt suuri määrä työtunteja jo aiemmilta viikoilta, ja tällä tavoin työmäärää tasattiin muiden jäsenten kesken.

\begin{figure}[h]
\centering
\scalegraphics{toni_viikkotunnit.png}
\caption{Salmisen työtunnit viikoittain.} 
\label{toni_viikkotunnit}
\end{figure}

\clearpage
\section {Jari Salokankaan työtunnit viikoittain}

Kuvassa \ref{jari_viikkotunnit} näkyy, että Salokankankaalla oli enemmän aikaa käytettävissä projektia varten viikoilla 16--21. Salokankaan viikottainen työmäärä oli noin 20 tuntia viikolle 14 asti, jolloin hän oli lomalla. Sen jälkeinen viikko 15 oli pääsiäinen, jolloin myös muu ryhmä teki vähemmän töitä. 

Salokankaalla oli kevään aikana lukuisia muita kursseja, joten hän ei helmikuun alusta huhtikuun puoleen väliin ehtinyt käyttää suunniteltua määrää työtunteja projektiin. Hän ehti kuitenkin saavuttaa muiden jäsenten työtuntimäärän projektin viimeisillä viikoilla. 

\begin{figure}[h]
\centering
\scalegraphics{jari_viikkotunnit.png}
\caption{Salokankaan työtunnit viikoittain.} 
\label{jari_viikkotunnit}
\end{figure}

\clearpage
\section {Lauri Satokankaan työtunnit viikoittain}

Satokangas oli viikot 13 ja 14 matkalla, mutta tämä oli otettu huomioon jo suunnitteluvaiheessa, eikä matkalla ollut vaikutusta toteutettuihin työtunteihin. Hän oli myös toukokuun viimeisen ja kesäkuun ensimmäisen viikon matkalla. Kuvassa \ref{lauri_viikkotunnit} näkyy selvästi viikko 13, jolloin hän ei osallistunut projektin toimintaan. Hän saavutti muiden jäsenten työtuntimäärän projektin loppuun mennessä.

\begin{figure}[h]
\centering
\scalegraphics{lauri_viikkotunnit.png}
\caption{Satokankaan työtunnit viikoittain.} 
\label{lauri_viikkotunnit}
\end{figure}

\chapter{Riskit ja niiden hallinta} \label{riskit}

Luvussa kuvataan projektin ennakoitujen riskien toteutumista, ehkäisemistä ja käsittelyä sekä niiden vaikutusta projektin läpivientiin ja tuloksiin. Tietojärjestelmän kehitysvaiheessa oli muutamia ongelmia Vaadin-sovelluskehyksen kanssa, mutta ryhmä selvitti asiat omatoimisesti, eikä ongelmista tullut missään vaiheessa suurta riskiä projektin läpiviennille. 

\section{Riskien todennäköisyydet ja haitat}

Riskien arvioidut todennäköisyydet ja haittavaikutukset sekä toteutunut haittavaikutus on esitetty taulukossa~\ref{riskitaulukko}. Todennäköisyyttä ja haittavaikutusta arvioidaan asteikolla pieni, keskinkertainen ja suuri.

Riskejä ennakoitiin hyödyntäen edellisten sovellusprojektien dokumentteja, joissa kuvattiin riskejä ja niiden toteumia. Projektin aikana ei toteutunut ennakoimattomia riskejä.

\begin{center}
\begin{table}[ht]
\centering
\begin{tabular}{|p{0.29\textwidth}|p{0.21\textwidth}|p{0.21\textwidth}|p{0.21\textwidth}|}
\hline
\textbf{Riski} & \textbf{Arvioitu \newline todennäköisyys} & \textbf{Arvioitu \newline haittavaikutus}  & \textbf{Toteutunut \newline haittavaikutus}\\
\hline \hline
Kehittäjien tietotaidon puutteet & keskinkertainen & keskinkertainen & pieni \\ \hline
Tavoitteiden rajaaminen ja muuttuminen & keskinkertainen & keskinkertainen & keskinkertainen \\ \hline
Jäsenten poissaolot & keskinkertainen & pieni & pieni\\ \hline
Projektihallinnan kokemattomuus & keskinkertainen & pieni & pieni\\ \hline
Tiedotuksen puutteet & pieni & keskinkertainen & pieni \\ \hline
\end{tabular}
\caption{Ennakoitujen riskien todennäköisyys ja haittavaikutus.} \label{riskitaulukko}
\end{table}
\end{center}


\section{Kehittäjien tietotaidon puutteet}

Ohjelmiston toteutuksessa käytettiin Vaadin-sovelluskehystä, josta vain Satokankaalla oli aiempaa kokemusta. Muu ryhmä oppi Vaadinin käytön hyvin projektin aikana. Sovelluskehykseen liittyneet ongelmat ratkaistiin yleensä nopeasti Vaadinin omien ohjeiden tai Internetin keskustelufoorumeilta löytyneiden vinkkien avulla.

Vaadinin avulla toteutettu tietokantakäsittely hidasti joitain kehitysvaiheita, kun tiedon tallentaminen useampaan tietokantatauluun kerralla ei onnistunut yksinkertaisesti. Tekninen ohjaaja suositteli ryhmää tutustumaan myös muihin ratkaisuihin, mutta lyhyen tutustumisen jälkeen muita vaihtoehtoja ei koettu Vaadinia paremmiksi. Muiden ratkaisujen käyttö olisi myös vaatinut lisää aikaa käytettäväksi niiden tutkimiseen ja opiskeluun. 

Ennakoitu riski jäsenten tietotaidon puutteesta siis toteutui, mutta sen haittavaikutukset jäivät pieniksi.

\section{Tavoitteiden rajaaminen ja muuttuminen}

Ryhmällä ollut kovin selkeää kuvaa tietojärjestelmän lopullisista tavoitteista ja ominaisuuksista ennen ohjelmiston toteutuksen aloittamista. Projektin aikana vaatimukset saatiin kuitenkin tarkennettua. Ryhmä tunnisti omat resurssinsa ja osasi hyvin arvioida, mitkä tavoitteista pystyttiin toteuttamaan. Lisäksi tilaajalla oli selkeä kuva siitä, mitä ohjelmiston osia ja toimintoja tulee vähintään saada projektin aikana valmiiksi. 

Tilaajan edustajien tavoitteet olivat osittain yhteneviä, ja osittain niissä myös painotettiin samoja asioita. Mobiililaitteen sensoridatan hyödyntäminen oli yhdelle tilaajan edustajista tärkeä ominaisuus, mutta se jäi projektin edetessä koko ajan pienemmälle prioriteetille. Lopulta se sovittiin kokonaan jatkokehitykseen. 

Käyttöliittymäprototyyppien avulla tilaajan edustajille saatiin esiteltyä suunnitellun tietojärjestelmän ulkoasua ja toteutettavia toimintoja. Prototyypeistä saadun palautteen avulla pystyttiin entisestään tarkentamaan vaatimusmäärittelyä ja tavoitteita.

Ryhmän muodostama kuva ohjelmiston tavoitteista ja vaatimuksista osoittautui tilaajan edustajien tarpeita vastaavaksi. Ryhmä onnistui tuomaan esille omat ehdotuksensa tavoitteiksi ja niiden rajaamiseksi. Projektin alussa jouduttiin käyttämään paljon aikaa tilaajan näkemysten sovittamiseksi yhtenäiseksi vaatimusmäärittelyksi. Tavoitteet ja vaatimukset muuttuivat vielä kuitenkin useampaan otteeseen projektin läpiviennin aikana, mutta ryhmä pystyi mukautumaan onnistuneesti muutoksiin.

\section{Jäsenten poissaolot}

Ryhmän jäsenillä ei ollut ennakoimattomia poissaoloja. Lauri Satokankaalla oli kesken projektin suunniteltu kahden viikon poissaolo, jonka aikana hän osallistui projektiin rajoitetusti. Satokangas oli poissa projektista myös kaksi viimeistä viikkoa. Projektipäällikkyys siirrettiin kyseisinä viikkoina takaisin Salmiselle, joka hoiti projektin tulosten luovuttamisen ja viimeistelyn. Kummastakaan poissaolosta ei ollut mainittavaa haittaa projektin läpiviennille. 

\section{Projektihallinnan kokemattomuus}

Projektipäällikkönä toimineilla jäsenillä ei ollut aiempaa kokemusta projektin läpiviemisestä. Projektin aikana ei kuitenkaan ilmennyt yhtään tilannetta, jossa projektipäällikön kokemattomuus olisi aiheuttanut ongelmia. Myöskään projektipäällikön vaihtuminen huhtikuun puolivälissä ja toukokuun lopussa ei aiheuttanut ongelmia projektille.

Sekä Salminen että Satokangas hoitivat tehtävänsä onnistuneesti. Projektipäälliköt olivat koko projektin läpiviennin ajan tietoisia ryhmän jäsenten tehtävistä, ja he huolehtivat työmäärien sekä tehtävien tasaisesta jakautumisesta jäsenten kesken. Muut ryhmän jäsenet auttoivat tarvittaessa projektipäälliköitä projektin hallinnassa, ja ongelmallisia tilanteita ratkaistiin ryhmänä.

\section{Tiedotuksen puutteet}

Ryhmä sai projektin loppuesittelyssä palautetta tiedotuksen puutteesta. Tilaajan edustajat eivät kuitenkaan pitäneet tiedotusta liian vähäisenä. Ryhmän olisi pitänyt olla omatoimisempi ja tiedottaa tilaajalle projektin etenemisestä. Säännöllisesti järjestetyissä palavereissa tilaajat saivat kuitenkin hyvin tietoa projektin tilasta, joten tiedotuksen puutteesta ei siis aiheutunut mainittavaa haittaa.

Ryhmän sisäisessä tiedotuksessa ei ollut mitään ongelmia. Ryhmä oli melkein kaikkina arkipäivinä samassa tilassa työskentelemässä, joten kommunikointi ja työtehtävistä keskustelu onnistuivat hyvin. 

\chapter{Jäsenten kokemuksia}

Projekti oli ryhmän jäsenten mielestä opettavainen ja hyödyllinen kokemus. Tietojärjestelmän toteuttaminen oli myös mielekästä. Kaikki ryhmän jäsenet toteuttivat sovellusta, ja jokaisella oli omat vastuualueensa sovellusten toiminnoista. Myös dokumentaation kirjoittaminen kuului kaikkien tehtäviin, joten dokumenttien laatiminen ei aiheuttanut yksittäisille jäsenille suurta työmäärää suhteessa muuhun ryhmään. 

Luvussa projektiryhmän jäsenet kuvaavat kokemuksiaan ja oppimiaan asioita. 
%\section {Yhteisiä kokemuksia}

\section {Tapio Keräsen kokemuksia}

Ensimmäisenä asiana ryhmällemme sattuneessa projektissa kauhistutti sen valtava koko. Alkuperäisenä suunnitelmana oli päivittää edellisen projektin kehittämä mobiilisovellus yleiskäyttöisemmäksi WWW-versioksi. Ryhmä päätyikin toteuttamaan mobiilisovelluksen lisäksi myös tämän hallintaan ja seurantaan käytettävää tutkijasovellusta sekä tietenkin näihin molempiin liittyvää laajahkoa tietokantaa. Kokonaisuutena hommaa olisi riittänyt varmasti useammallekin sovellusprojektille, ja tämä vastaavasti näkyi toteutusten erittäin, erittäin prototyyppimäisenä lopputuloksena.

Sovellusprojektia voisi kokemuksena luonnehtia kohtalaiseksi. Yhdessä vaakakupissa painoi hyvin aktiivinen ja yhteen toiminut ryhmä, toisessa taasen tilaajien tavoitteiden ja toiveiden ristiriitaisuuksien/epäselvyyksien sekä projektin yleisen laajuuden aiheuttamat paineet. Projektin eri osien suunnitteluun käytetyn ajan määrä olikin valtava, mikä ei sinänsä ole ollenkaan huono asia. Toisaalta se myös näkyi siinä, kuinka vajavaiseksi itse sovellukset toteutukseltaan jäivät. Toteutusvaiheen painaessa päälle piti suunnittelua kuitenkin vähentää, joka vastaavasti tuli näkymään toteutusvaiheessa ns. mututuntumaan perustuvina ratkaisuina. Näin jälkikäteen ajatellen projekti olisikin melkein ollut parempi pitää täysin suunnittelevana kokonaisuutena ilman toteutusvaihetta, jotta seuraajille olisi saatu ainakin hyvin suunniteltu pohja, jonka päälle rakentaa oma sovelluksensa.

Teknisenä seikkana pitänee mainita se, että toteutuskieleksi valittu Java sopi ainakin allekirjoittaneelle paremmin kuin hyvin. Kovin laajojen kokonaisuuksien toteuttaminen paljaalla HTML+JS -yhdistelmällä olisi melko varmasti jättänyt ryhmän vielä kauemmaksi tavoitteistaan, joten tuttuun Java-kieleen perustuva Vaadin oli sinänsä erinomainen valinta. Alkuvaihe työkalun käytössä oli luonnollisesti melkoista hapuilua, mutta onneksi ryhmästä löytyi asiantuntemusta aiheen parista, eikä jatkossakaan ilmenneet ongelmat olleet enää aivan niin suuria. Kerätystä Vaadin-kokemuksesta -- vaikkakin vain pintaraapaisu -- voi olla hyötyä tulevaisuudessakin.

Loppujen lopuksi näin työlästä ja haastavaa projektia ei voi kuitenkaan missään tapauksessa syyttää siitä, etteikö se olisi ollut samalla myös erittäin mielenkiintoinen paketti. Projektin aikana sainkin hyvää kokemusta mm. kokouskäytänteistä, joita ei ole aikaisemmin tullut sinänsä ajateltuakaan, ainakaan näin ''virallisen kankeassa'' muodossa. Muutamia risuja pitää antaa oheiskursseille, lähinnä vain siitä syystä, että vaadittujen tulosten palauttaminen sattui yleensä juuri kaikista hektisimpiin kohtiin, jolloin kaiken mahdollisen ajan olisi mielummin käyttänyt jonkin kriittisen osion suunnitteluun ja/tai toteutukseen. Ruusut taasen menevät suoraan ryhmälle, joka erinäisten ongelmienkin ilmaantuessa pääsääntöisesti seilasi paatillaan kunniallisesti yllättävienkin karikoiden yli.

\section {Toni Salmisen kokemuksia}

Minulla ei ollut juurikaan aikaisempaa käytännön kokemusta projektimuotoisesta työskentelystä, eikä ohjelmistokehityksestä. Oli erittäin opettavaista ja mielenkiintoista työskennellä erilaisten ihmisten kanssa yhteisen päämäärän saavuttamiseksi. Sain projektin kuluessa arvokasta kokemusta monenlaisista projektityöskentelyyn ja sovelluksen kehittämiseen liittyvistä työtehtävistä. Projektin aikana pääsin kirjoittamaan erilaisia dokumentteja, suunnittelemaan tietokantaa ja koodamaan itse sovellustakin. Kirjoitin projektin alkupuolella projektisuunnitelman, jonka tekeminen oli haastavaa, koska en erityisemmin pidä kirjoittamisesta. Jälkikäteen ajatellen projektisuunnitelman vaatima kirjoitustyö oli kuitenkin projektin parasta antia oppimisen kannalta.

Projektin alussa sovimme, että jaamme  projektipäällikön tehtävät Lauri Satokangaan kanssa, ja se oli hyvä ratkaisu. Projektin alussa oli vaikeuksia jakaa tehtäviä ryhmän kesken, mutta asia korjautui, kun itse kehitystyö pääsi vauhtiin. Koska jaoimme projektipäällikkyyden, pääsin projektisuunnitelman kirjoituksen jälkeen myös osallistumaan itse sovelluksen koodaamiseen ja muutenkin osallistumaan ryhmän työskentelyyn paremmin.

En ollut aikaisemmin kehittänyt juurikaan WWW-sovelluksia, mutta onneksi valitsemamme kehitystyökalut olivat nopeita oppia ja pääsinkin koodaamisen makuun yllättävän nopeasti. Koodaamisen aikana yritin ratkaista kohtaamani ongelmat ensin itse, jotta oppisin mahdollisimman paljon. Ryhmän jäsenet kuitenkin auttoivat aina innolla, kun en löytänyt tai keksinyt ratkaisua havaitsemiini ongelmiin.

Aika projektissa kului todella nopeasti, eikä kaikkia projektin alussa ajateltuja ominaisuuksia ehditty toteuttaa. Projektissa kehitetty prototyyppi on kuitenkin mielestäni tietojärjestelmän laajuuden huomioon ottaen hyvällä mallilla. Projektia jälkikäteen analysoitaessa on helppo löytää useita asioita, jotka olisi voinut ja kannattanutkin tehdä toisin, mutta sitä kai se oppiminen on.

\section {Jari Salokankaan kokemuksia}

Lähdin sovellusprojektikurssiin mukaan mieluisin ennakko-odotuksin. Pääsin kurssiin mukaan, kun joku henkilö oli jättäytynyt pois kurssilta. Ilman hänen poistumistaan en olisi suorittanut tätä kurssia tänä keväänä. Olen siis hyvin kiitollinen tästä. En aluksi edes tiennyt, että en olisi päässyt tälle kurssille, kun en ollut lukenut kurssin ohjaajan lähettämää sähköpostia, jossa ilmoitettiin, että en pääse suorittamaan kurssia. Tässä vaiheessa voin sanoa, että oli planeetat asettuneet jotenkin oikein tässä tapauksessa.

Suoritin tämän kevään aikana kuusi muuta työlästä kurssia, joten en voinut käyttää projektin alussa saman verran aikaa projektiin kuin muut jäsenet. Tämän takia olin pahimmillaan huhtikuun puolella 70--80 tuntia muita projektin jäseniä jäljessä projektin työtunneissa. Pystyin kuitenkin ottamaan muut kiinni muiden tehdessä projektin loppuvaiheessa vähemmän hommia. Lisäksi itse pystyin työskentelemään enemmän projektin parissa, kun keväällä oli suurin osa kursseista jo käyty.

En tuntenut entuudesta muita projektin jäseniä. ainoastaan Laurin nimi oli tuttu, sillä hänellä on lähes sama sukunimi kuin minulla. Olen saattanut olla Tapion kanssa samoilla kursseilla, ja Toni oli ryhmän jäsenistä tuntemattomin. Ryhmän jäsenet nivoutuivat ajan myötä aika hyväksi ryhmäksi, jossa saatiin projektin työtehtävät hyvin tehtyä. Ryhmän jäsenet auttoivat aina, kun apua tarvitsi. Hommia oli mukava tehdä jäsenten kanssa projektityöhuoneessa, jossa vietettiin suurin osa projektin työtunneista. Olihan meillä myös aika hauskaakin välillä. Tästä johtuen työskentely ei aina tuntunut työltä.

Opin paljon uusia asioita projektityöskentelystä ja käytännön työhommista. Paljon tuli harjoiteltua ryhmätyöskentelyä ja sosiaalista vuorovaikuttamista niin ryhmän jäsenten kuin tilaajien kesken. Suunnittelin toteutettaville käyttöliittymille käyttöliittymäkuvat jäsenet tuen ja ideoiden tukemana. Mobiililaitteen ulkoasuun sain ideoita Tabu-projektin toteutuksesta. Olin vähän mukana vaatimusten määrittelyssä, mutta sain viimeistellä vaatimusmäärittelyn julkaisukuntoon. Ohjelmoin tutkijan käyttöliittymästä kuntoutusohjelmien luonti- ja muokkausnäkymän sekä osallistuin ohjelmoinnissa muihin pikku hommiin. Kirjoitin sovellusraportin, joka osoittautui hyvin työlääksi hommaksi toteutetun tietojärjestelmän laajuuden takia. Sain myös tehdä projektin hallintaan liittyviä tehtäviä, kuten pöytäkirjojen kirjoittamista, projektin tilakatsausten tekoa ja sähköpostien lähettelyä.

Sain tehtyä projektiin liittyviä työtehtäviä monipuolisesti ja kokonaisvaltaisesti, mutta olisin voinut ohjelmoida enemmän. Ohjelmointi ei ole minun vahvuusalueitani, ja siksi oli hyvä, että sain ohjelmoida projektissa. Oma ohjelmointitahtini ei ole kovin nopeaa, joten en ehkä siksi saanut ohjelmallisesti paljoa aikaa. Tosin, jos minulle olisi annettu enemmän vastuualueita ohjelmakoodissa, olisi projektin sovellusten toteutus myöhästynyt. Tästä huolimatta sain toteutettua projektille asettamani tavoitteet.

Projektiryhmä oli optimistinen koko projektin ajan. Laaja tietojärjestelmä saatiin kasaan, eikä huomattavaa projektin myöhästymistä tullut. Projekti ei tuntunut kauhean systemaattisen kontrolloidulta, mutta oli hyvin joustava ja taipuisa. Jonkin tehtävän loppuessa pystyi siirtymään heti johonkin muuhun tehtävään. Ryhmän työskentelytapa ja ryhmähenki olivat mielestäni suurimmat syyt projektin onnistumiselle. Myös Vaadinin valinta sovelluskehitysalustaksi vaikutti omasta mielestäni projektin onnistumiseen.

Kokonaisuudessaan sovellusprojekti oli loistava kurssi suorittaa. Näin vähän alan työkokemusta omaavana kurssi oli erinomainen kuvaus käytännön hommista. Kurssin ohessa järjestetty muu toiminta oli myös ihan mukava lisä tälle keväälle.

%\newpage
\section {Lauri Satokankaan kokemuksia}

Odotin Sovellusprojekti-kurssia mielenkiinnolla. Olin kuullut sen vaativan suurta työpanosta, mutta tarjoavan vastineeksi paljon hyödyllisiä tietoja ja taitoja tulevaisuutta varten. Nyt projektin ollessa lopussa täytyy myöntää, että kurssi vastasi juuri sitä, mitä olin kuullutkin. Työmäärä oli valtava, mutta niin oli myös saatu kokemuskin. Se, mitä en osannut projektilta odottaa oli, kokemus tilaajan kanssa toimimisesta, ryhmätyötaitojen kehittyminen ja projektin hallintaan liittyvät tehtävät. 

Projekti antoi todella paljon kokemusta kokouskäytänteistä ja erilaisten dokumenttien laatimisesta. Näin jälkikäteen ajatellen kaikki kirjoitustehtävät ja raporttien laatimiset tuntuvat hyvin opettavaisilta tehtäviltä, vaikka niiden kirjoitushetkellä en sitä ajatellut. Olen huomannut, että kirjoittamani tekstin taso on noussut selvästi projektin läpiviennin aikana ja tekstin tuottaminen on helpompaa.

Päätin ennen projektia, että voisin kokeilla projektipäällikkyyttä ainakin puolikkaan projektin ajan, ja näin tapahtui myös käytännössä. Päällikkyys oli odotettua vähemmän suoraa johtamista ja enemmänkin vain sitä, että pysyi selvillä ryhmän toiminnasta ja projektin tilanteesta. Projektiraportin kirjoittaminen oli työlästä, mutta myös mielenkiintoista. Se oli yksi opettavaisimmista asioista projektin aikana.

Projektin alussa olin hieman epävarma Vaadinin soveltuvuudesta toteutettuun tietojärjestelmään. En tiennyt tarpeeksi kehitettävän tietojärjestelmän vaatimuksista, jotta olisin osannut suhteuttaa Vaadinin ominaisuuksia tietojärjestelmän tarpeisiin. Ryhmälle tarjottiin monia muita työkaluja käyttöön, mutta mielestäni Vaadin oli lopulta onnistunut valinta. Olin käyttänyt kyseistä sovelluskehystä noin puolen vuoden ajan ennen projektin alkua, mutta sain paljon lisää kokemusta sen käytöstä projektin aikana.

Kevät kului todella nopeasti projektin parissa työskennellessä. Vaikka ryhmä toteutti vain prototyypin tietojärjestelmästä, on se mielestäni erittäin hyvä saavutus ottaen huomioon lähtökohdat ja tietojärjestelmän laajuuden. Olisi ollut mukavaa toteuttaa kaikki suunnitellut toiminnot ja päästä testaamaan järjestelmää oikeiden käyttäjien kanssa. Toisaalta on ymmärrettävää, että tähän ei projektin lyhyen keston vuoksi ollut mahdollisuuksia.

Päällimmäisenä projektista jäi mieleen jäsenten välinen hyvä ryhmähenki ja hyvät kokemukset projektityöskentelystä. Oli haastavaa sovittaa yhteen tilaajan vaatimuksia, ryhmän taitoja ja käytettävissä olevaa aikaa, mutta sekin oli lopulta hyvin opettavaista ja auttoi hahmottamaan asioiden mittasuhteita. Onnistuimme ryhmänä hyvin voittamaan kaikki projektin aikana ilmenneet haasteet.

\chapter{Yhteenveto}

Paatti-projekti määritteli, suunnitteli ja toteutti Sovellusprojekti-kurssilla keväällä 2012 Jyväskylän yliopiston psykologian laitokselle prototyypin tietojärjestelmästä. Sillä tuetaan muun muassa iäkkäiden, työuupumuksesta kärsivien ja mielenterveyspotilaiden itsenäistä elämää ja kuntoutumista sekä tuetaan tutkijoiden tekemää tutkimusta.

Tietojärjestelmässä tutkija luo tutkimuksiinsa liittyen kuntoutettavista ryhmiä, joille hän määrittää omat kuntoutusohjelmat. Ne sisältävät aikataulutettuja tapahtumia, jotka sisältävät tehtäviä. Yksittäinen tehtävä voi sisältää tekstiä, kuvan, videon tai äänitallenteen. Tehtävät voivat olla joko kysymyksen tai ohjeen muodossa. Kuntoutettava voi olla monessa ryhmässä, jolloin hän suorittaa useampaa kuntoutusohjelmaa samanaikaisesti. Tutkija pystyy seuraamaan kuntoutettavan tai ryhmän edistymistä omasta käyttöliittymästään.  Tietojärjestelmän tietokantaan keräämää tietoa kuntoutettavien suoritteista saa myös siirrettyä toisiin järjestelmiin xls-tiedostoina.

Kuntoutettava saa mobiililaitteessa käyttämäänsä WWW-sovellukseen kuntoutusohjelmaan kuuluvia tapahtumia. Tapahtumat voivat olla esimerkiksi liikuntaharjoitteita, rentoutusharjoitteita tai muistutuksia lääkkeiden ottamisesta. Tapahtumat voivat olla joko kerran suoritettavia aikataulutettuja tapahtumia tai vapaaehtoisia harjoitteita, joita voidaan suorittaa useita kertoja. Kuntoutettava voi myös tarkastella sovelluksesta suorittamiansa tapahtumia.

Projekti onnistui tavoitteissaan erinomaisesti. Kaikkia vaatimusmäärittelyssä suunniteltuja toimintoja ei ehditty toteuttaa, mutta ryhmä pystyi projektin aikana hyvin arvioimaan toimintojen toteutumisasteita ja priorisoimaan vaatimuksia tilaajan kanssa sen mukaisesti. Projektin läpivienti onnistui myös erinomaisesti, vaikkakin se viivästyi suunnitellusta aikataulusta kolme viikkoa. Kaikista ilmenneistä ongelmista selvittiin ja jäsenet toimivat hyvin ryhmänä.

Projektin tulokset luovutettiin tilaajalle kesäkuun alussa. Tietojärjestelmän kehittäminen jatkuu projektin jälkeen tilaajan toimesta. Mahdollisesti Salokangas ja/tai Salminen jatkavat tietojärjestelmän kehitystä tilaajan palkkaamina.

Sovellusprojektin kautta projektiryhmä sai paljon kokemusta tietojärjestelmän suunnittelusta, määrittelystä ja toteutuksesta. Lisäksi ryhmä sai kattavan käsityksen ohjelmistoprojektissa työskentelystä sekä sen vaatimuksista ja työtavoista. Ryhmän jäsenet oppivat asioita käytännön tekemisen kautta sekä sovelsivat aikaisemmilla kursseilla opittua tietotaitoa.


%LÄHTEET
\begin{thebibliography}{1}
%Katso kirjoitusohjeen luku 2.3 ja 2.4.

\bibitem{learningvaadin}
  Frankel Nicolas,
  ''Learning Vaadin'',
  Packt Publishing,
  2011.

\bibitem{ajanseurantalahde}
  Heinonen Petri, 
  ''Ajankäytönseurantasovellus'',
  saatavilla Excel-muodossa <URL: \texttt{http://appro.mit.jyu.fi/tools/ajankaytto/\\ajankaytonseuranta.xls}>,
  Jyväskylän yliopisto,
  informaatioteknologian tiedekunta, 
  viitattu 8.3.2012.

\bibitem{judoraportti}
  Huttunen Petri, Malinen Marko ja Wirpi Olli,
  ''Judo-projekti, Projektiraportti'',
  Jyväskylän yliopisto,
  tietotekniikan laitos,
  2011.

\bibitem{katselmointi1}
  Keränen Tapio,
  ''Paatti-projekti, 1. koodikatselmoinnin muistio'',
  Jyväskylän yliopisto,
  tietotekniikan laitos,
  2012.

\bibitem{vaatimusmaarittely}
  Keränen Tapio, Salminen Toni, Salokangas Jari ja Satokangas Lauri,
  ''Paatti-projekti, Vaatimusmäärittely'',
  Jyväskylän yliopisto,
  tietotekniikan laitos,
  2012.

\bibitem{taburaportti}
  Kumpulainen Tuomas, Tuurihalme Kari, Valkama Outa ja Virtanen Tuomas,
  ''Tabu-projekti, Projektiraportti'',
  Jyväskylän yliopisto,
  tietotekniikan laitos,
  2009.

\bibitem{javakaytanteet}
  Oracle,
  ''Code Conventions for the Java Programming Language'',
  saatavilla PDF-muodossa <URL: \texttt{http://www.oracle.com/technetwork/java/\\codeconventions-150003.pdf}>,
  viitattu 25.3.2012.

\bibitem{katselmointi2}
  Salokangas Jari,
  "Paatti-projekti, 2. koodikatselmoinnin muistio",
  Jyväskylän yliopisto,
  tietotekniikan laitos,
  2012.

\bibitem{sovellusraportti}
  Salokangas Jari,
  ''Paatti-projekti, Sovellusraportti'',
  Jyväskylän yliopisto,
  tietotekniikan laitos,
  2012.

\bibitem{sovellusprojektienohje}
  Santanen Jukka-Pekka,
  ''Tietotekniikan Sovellusprojektien ohje'',
  saatavilla HTML-muodossa <URL: \texttt{http://www.mit.jyu.fi/opetus/\\sovellusprojektit/projohje.html}>,
  Jyväskylän yliopisto,
  tietotekniikan laitos,
  11.9.2006.

\bibitem{bookofvaadin}
  Vaadin Ltd,
  ''Book of Vaadin - 4th Edition'',
  2012.
  
\end{thebibliography}

% Dokumentin  lopetus
\end{document}
