SerTi
Sovellusprojekti

Susanna Blomqvist
Antti Korhonen
Heikki Mylläri
Pekka Pakari

Projektiraportti
Versio 1.2

1.7.2003

Jyväskylän Yliopisto
Tietotekniikan laitos

SerTi-projekti
Projektiryhmä	Susanna Blomqvist (SBl)	sumablom@cc.jyu.fi
Antti Korhonen (AKo)	akorhon@cc.jyu.fi
Heikki Mylläri (HMy)		kavelija@cc.jyu.fi
Pekka Pakari (PPa)		pepakari@cc.jyu.fi

Tilaaja			Stresstech Oy
			Lasse Suominen		lasse.suominen@stresstech.fi
			Tapio Hirvelä			tapio.hirvela@stresstech.fi
			Ilkka Urtamo			ilkka.urtamo@stresstech.de
			Aapo Tamminen		aapo.tamminen@stresstech.fi

Vastaava ohjaaja	Jukka-Pekka Santanen	santanen@mit.jyu.fi

Tekninen ohjaaja	Rainer Koreasalo		rakorea@cc.jyu.fi

Kotisivu		http://kotka.it.jyu.fi/serti/
Postituslista		serti@korppi.jyu.fi

Tämä dokumentti
Nimi			SerTi-projektin projektiraportti

Tekijä(t)	Heikki Mylläri (luvun 8 kommentit kirjoittaneet SBl, AKo, PPa ja HMy, toimittanut HMy)

Tiivistelmä
SerTi-projekti toteutti Stresstech Oy:lle servomoottorin ohjauslogiikan testaussovelluksen. Projektiraportissa kuvataan projektin läpivientiä ja alkuperäisten tavoitteiden toteutumista. Lisäksi siinä tarkastellaan tehtävien ja työmäärän jakautumista sekä toteutunutta aikataulua.

Versiohistoria
Versio	Pvm	Tekijä(t)	Kuvaus	
0.1	19.5.2003	HMy	Ensimmäinen versio	
0.2	28.5.2003	HMy	Täydennetty versio	
1.0	2.6.2003	HMy	Valmis versio	
1.1	18.6.2003	HMy	Ajanmukaistettu ja korjattu versio	
1.2	1.7.2003	HMy	Viimeinen versio	

Sisällysluettelo

1. Johdanto
2. Termejä
3. Projektin taustaa
4. Organisaatio ja resurssit
5. Projektin tavoitteiden toteutuminen
5.1. Sovelluksen tavoitteet
5.2. Oppimistavoitteet
6. Projektin toteutunut työnjako ja aikataulu
6.1. Suunnitteluvaihe
6.2. Toteutusvaihe
6.3. Projektin viimeistely
6.4. Aikataulu vaiheittain
7. Ongelmat
8. Projektiryhmän jäsenten henkilökohtaiset kokemukset
8.1. Susanna Blomqvist
8.2. Antti Korhonen
8.3. Heikki Mylläri
8.4. Pekka Pakari
9. Yhteenveto
Lähteet

1. Johdanto

SerTi-projekti oli Jyväskylän yliopiston tietotekniikan Sovellusprojekti. Se suunnitteli ja toteutti Stresstech Oy:lle servomoottorin ohjauslogiikan testaussovelluksen.

Projektin suunnittelu aloitettiin helmikuun 2003 alussa, ja sovellus valmistui 14.5.2003. Se esiteltiin kevään 2003 projektien loppuesittelyssä 15. toukokuuta. Lopullinen, tilaajan testaama ja hyväksymä versio valmistui kesäkuun 2003 lopussa.
 
Projektiin liittyvät dokumentit on arkistoitu projektikansioon. Tämä dokumentti kuvaa projektin läpivientiä ideasta valmiiksi sovellukseksi. Muista dokumenteista projektisuunnitelma luonnostelee projektin suunnitellun läpiviennin keinoineen. Vaatimusmäärittely määrittelee toteutetulta sovellukselta vaaditut ominaisuudet. Sovellussuunnitelma määrittelee sovelluksen suunnitellun sisäisen rakenteen ja toiminnan. Sovellusraportti kuvaa sovelluksen toteutuneet ratkaisut. Lisäksi projektiryhmä laati projektisopimuksen, pöytäkirjat lähes viikottaisista palavereista, testaussuunnitelman, testiraportit ja HTML-muodossa olevan käyttöohjeen sovellukselle.

Luvussa 2 määritellään keskeisimmät projektiin liittyvät termit. Luvussa 3 selvitetään projektin taustoja. Luku 4 määrittelee projektin toteuttamiseen käytetyt materiaaliset ja henkilöresurssit. Luku 5 tekee selkoa projektin tavoitteiden toteutumisesta. Luvussa 6 esitellään projektin toteutunut työnjako ja aikataulu. Luvussa 7 tarkastellaan projektin aikana esille tulleita ongelmia. Luvussa 8 projektiryhmän jäsenet kertovat henkilökohtaisia huomioitaan projektin kulusta. 

2. Termejä

Projektin kannalta keskeisimmät aihealueeseen ja työkaluihin liittyvät termit ovat seuraavat:

Logiikka	(ts. ohjelmoitava logiikka, Programmable Logic Controller) on yksinkertaisemmat ohjauspiirit korvaava laite. Se lukee signaalitulon, suorittaa muistissa olevan ohjelman ja ohjaa lähtönsä ohjelman mukaisesti.

MFC 	(Microsoft Foundation Classes) on Microsoftin luokkakirjasto Windows-pohjaisten sovellusten tekoon.

RS-232		on PC:n sarjaväylä.

Servomoottori	on elektronisesti ohjattu moottori, jonka nopeus pysyy samana kuormituksesta riippumatta.
 
SL 	(StressLogic) on Stresstech Oy:n valmistama moottorinohjauslogiikka.

STL	(Standard Template Library) on C++-standardin kirjasto, joka sisältää valmiit luokat yleisimpien tietorakenteiden käsittelyyn.

XY-pöytä 	on taso, jota voidaan kallistaa tai liikuttaa pääakselien suuntaisten moottorien avulla.

3. Projektin taustaa

SerTi-projektin tilaajana oli Stresstech Oy, jonka toimialana ovat teollisuuden komponenttien laadunvalvontajärjestelmät ja -menetelmät, joilla valvotaan mm. metallien jäännösjännityksiä. Sen pääasiallisia tuotteita ovat Barkhausenin kohinaan perustuvat analysaattorit, röntgendiffraktioanalysaattorit ja testijärjestelmät.

StressLogic (SL) on Stresstechin kehittämä moottorinohjauslogiikka, jota käytetään testipenkkien anturipäitä, XY-pöytiä tai vastaavia osia liikuttavien servomoottorien ohjaukseen (katso kuva 1). Se on kiinteä osa valmista laadunvalvontajärjestelmää, jollaisten käyttäjiä ovat mm. auto- ja kuljetusvälineteollisuus. SL:n lopulliset käyttösovellukset eivät kuitenkaan sovellu toteutettujen järjestelmien testaukseen, vaan testattaessa logiikka oli konfiguroitava työläästi syöttämällä parametrit käsin RS-232 -väylän kautta.

Kuva 1: StressLogic toimintaympäristöineen.

SerTi-projektin tehtävä oli tuottaa ratkaisu tähän ongelmaan. Kehitettävän SerialTester-sovelluksen tuli olla helppokäyttöinen SL-logiikan ohjaus-, testaus- ja valvontasovellus, jolla testattaisiin sekä ohjaimen että sillä ohjattavien moottorien toiminta. Sen lopulliset toiminnalliset vaatimukset määriteltiin ja käyttöliittymä suunniteltiin sovelluksen pääasiallisen tulevan käyttäjän, elektroniikkainsinööri Tapio Hirvelän ehdoilla. Sovellusraportissa kuvataan tarkemmin toteutetun sovelluksen ominaisuuksia ja toteutusratkaisuja. Luvussa 6 kuvataan tarkemmin projektin vaiheita.

4. Organisaatio ja resurssit

Projektiryhmä koostui neljästä tietotekniikan laitoksen opiskelijasta. Susanna Blomqvist on tietoliikenteeseen suuntautunut toisen vuoden opiskelija. Antti Korhonen opiskelee tietoliikenteen linjalla kolmatta vuotta. Heikki Mylläri ja Pekka Pakari ovat kolmannen vuoden opiskelijoita ohjelmistotekniikan linjalla.
 
Stresstech Oy:n puolelta tilaajan edustajina toimivat toimitusjohtaja Lasse Suominen, elektroniikkainsinööri Tapio Hirvelä, ohjelmoija Aapo Tamminen ja ohjelmistosuunnittelija Ilkka Urtamo. Tietotekniikan laitoksen puolelta projektia valvoivat ja ohjasivat vastaavana ohjaajana toiminut lehtori Jukka-Pekka Santanen ja teknisenä ohjaajana Rainer Koreasalo.

Projektin käytössä oli yliopiston taholta työhuone Agora C224.1, jossa jokaisella ryhmän jäsenellä oli henkilökohtainen työasema. Niihin oli asennettuina Windows 2000 -käyttöjärjestelmä, Visual Studio 6.0 -ohjelmointityökalu sekä valikoima muita projektin läpivientiä helpottavia ohjelmistoja (sis. mm. dokumentointiin tarvittavat työkalut). Projektilla oli myös Europa-koneella käytössään kaksi verkkolevyä, joista toinen oli WWW:n kautta julkisesti nähtävillä oleva ja toinen yliopiston verkkoon rajoitettu.

Projektiryhmän jäsenillä oli käytössään Sovellusprojektien yhteinen tulostin ja laitoksen kopiokone. Sovellusprojektien kokoustila Agora C223.1 oli varattavissa projektin käyttöön, ja enemmistö projektipalavereista pidettiinkin siellä. Projektiryhmällä oli myös käytettävissään sovellusprojektien kannettava mikro ja videoprojektori, jotka varattiin tarvittaessa esittelykäyttöön. Lisäksi laitos toimitti ryhmän käyttöön valikoiman C++/MFC-ohjelmointikirjallisuutta, josta työssä hyödynnettiin teosta [8]. Ryhmä hyödynsi toteutuksessa myös WWW:n ohjelmointisivustoa [6] ja keskusteluryhmähakua [7].

Stresstech Oy oli antanut projektiryhmän käyttöön alustavan vaatimusmäärittelyn [1], SL-kommunikointiprotokollan spesifikaatiot [3], esimerkin moottoriparametritiedoston sisällöstä [4] sekä joitain koodiesimerkkejä. Testausta ja loppuesittelyä varten projektiryhmälle toimitettiin 9. palaverin yhteydessä StressLogic-yksikkö ja 11. palaverissa XY-pöytä.

5. Projektin tavoitteiden toteutuminen

Luvussa kuvataan projektille asetettujen tavoitteiden toteutumista.

5.1. Sovelluksen tavoitteet

Ryhmän alunperin vastaanottamaa Ilkka Urtamon laatimaa alustavaa vaatimusmäärittelyä [1] muokattiin suunnitteluvaiheessa yhteistyössä Tapio Hirvelän kanssa. Lopulliset, alkuperäisiä laajemmat vaatimukset koottiin SerTi Project Requirement Specificationiksi [5].

Vaatimusmäärittelyn hyväksynnän jälkeenkin, toteutuksen aikana, vaatimuksissa tapahtui jatkuvaa hienosäätöä. Tärkein ja ainoa merkittävä tänä aikana tehty muutos oli vaatimus rajoittamattomasta tuettujen moottorien määrästä, joka poistettiin sen osoittauduttua tarpeettomaksi ja käyttöliittymän rakennetta mutkistavaksi. Vähäisemmät toteutusvaiheen vaatimusmuutokset koostuivat ylimääräisten tarkistusten lisäämisestä eri syötekenttiin, edellisen moottoriparametritiedoston automaattisesta lataamisesta, ylimääräisten editointipainikkeiden lisäämisestä terminaali-ikkunaan ja joukosta kosmeettisia muutoksia.

Lopullisiksi vakiintuneet vaatimukset valmis sovellus täyttää täysin niin toiminnallisten, toteutuksellisten kuin muidenkin vaatimusten puolesta. Paikoitellen sovellus jopa ylittää vaatimukset. Esimerkiksi valmis terminaali-ikkuna on toiminnoiltaan monipuolisempi kuin vaadittu.

Yksityiskohtaisemmin sovellukselle asetettujen vaatimusten toteutumista kuvataan sovellus- [9] ja testiraporteissa [11].

5.2. Oppimistavoitteet

Projektin oppimisen tavoitteena oli tutustua ohjelmistotuotantoon sekä siihen oleellisesti liittyvään määrittelyyn, suunnitteluun, toteutukseen, testaukseen, dokumentointiin ja raportointiin konkreettisella tasolla. Tavoitteena oli myös saada tuntumaa käytännön projekti- ja ryhmätyöskentelystä sekä tutustua tarkemmin Microsoftin Visual Studio -ohjelmointityökaluihin ja MFC-kirjastoihin.

Nämä tavoitteet saavutettiin, joskin saavutusten tason täsmällinen mitoittaminen on mahdotonta. Ryhmä arvioi saavuttaneensa oppimistavoitteet hyvin. Projektin kuluessa oli kullakin ryhmän jäsenellä havaittavissa kommunikointi-, ohjelmointi- ja ryhmätyötaitojen kehittymistä sekä dokumentoinnin rutinoitumista.

6. Projektin toteutunut työnjako ja aikataulu

Luvussa esitetään projektin toteutunut työnjako ja aikataulu sekä niiden olennaiset erot suunniteltuihin nähden.

6.1. Suunnitteluvaihe

Suunnitteluvaiheen tehtävät koostuivat lähinnä projektisopimuksen ja kolmen suunnitteludokumentin laatimisesta. Nämä neljä oli tarkoitus jakaa suurpiirteisellä ”yksi dokumentti per tekijä” -periaatteella, mutta jakoa jouduttiin heti muokkaamaan tehtävien paljastuttua vaativuudeltaan erilaisiksi. Projektisopimuksen valmistuttua Susanna Blomqvist siirtyi Pekka Pakarin tueksi vaatimusmäärittelyä laatimaan. Antti Korhosen tehtäväksi annettu sovellussuunnitelma todettiin niin työlääksi, että se vaatisi koko ryhmän panoksen. Korhosen uudeksi tehtäväksi päätettiin käyttöliittymän varhaisversioiden koodaaminen. Näitä demotarkoitukseen luotuja konstruktioita käytettiin myöhemmin koko sovelluksen runkona.

Projektin dokumentit laadittiin RTF-muotoon, julkaistiin projektin WWW-sivulla ja tallennettiin projektin verkkolevylle. Tieto uusista versioista lähetettiin sähköpostitse kaikille tiivistelmäsivulla luetelluille henkilöille. Dokumentointikielenä oli projektin läpivientiin liittyvissä dokumenteissa suomi ja sovellukseen liittyvissä englanti.

Projekti lähti käyntiin hitaasti. Tyypillisenä viikkona harva ryhmästä teki kymmenenkään tuntia töitä. Ensimmäisten suunnitteludokumenttien laatiminen aloitettiin aikataulussa, mutta sekä projektisuunnitelman että vaatimusmäärittelyn hyväksyttäminen myöhästyi yli viikolla. Tämän lieveilmiönä sovellussuunnitelman aloittaminen puolestaan viivästyi kahdella viikolla.

Lyhytkestoisella tappotahdille vaihtamisella saatiin kuitenkin Heikki Myllärin suunnittelemasta luokkarakenteesta kasvatettua koko ryhmän voimin täysi sovellussuunnitelman raakaversio alkuperäiseen takarajaan (21.3.) mennessä. Tämä varhainen versio sisälsi jo kaiken projektiryhmän kannalta tarpeellisen ja säilyi loppuun asti sisällöltään lähes muuttumattomana. Tämän jälkeen sovellussuunnitelman muodollinen hyväksyttäminen todettiinkin prioriteetiltaan alhaisemmaksi kuin sovelluksen itsensä toteuttaminen ja vaadittuja muutoksia sovellussuunnitelmaan toteutettiin aikataulun salliessa muiden tehtävien ohessa. Sovellussuunnitelma hyväksyttiin vasta huhtikuun lopulla, sovelluksen itsensä ollessa jo lähes valmis.

Susanna Blomqvist valittiin kokouksessa 10.3. projektipäälliköksi.

6.2. Toteutusvaihe

Toteutusvaiheen alussa määriteltiin uusi pääpiirteittäinen tehtävänjako. Sen mukaan Pakari toteuttaisi terminaalin ja lokin, Mylläri kommunikointiluokat asetusdialogeineen, Blomqvist käskytulkkauksesta vastaavan CSlPara-luokan asetusdialogeineen ja Korhonen käyttöliittymän muut osat. Kun käyttöliittymän runko nopeasti valmistui, Korhosen rooli muuttui eräänlaiseksi projektin sekatyömieheksi, joka muun muassa vastasi koodauksen alkuvaiheissa integroinnista.

Sovelluksen jako selkeisiin vastuualueisiin toimi yleisesti ottaen hyvin. Viikoittaiset työmäärät vakiintuivat vajaaseen 20 miestyötuntiin. Koodin muotoilussa sekä luokkien ja metodien nimeämisessä käytettiin Stresstechiltä annettua koodausstandardia, joka perustui dokumenttiin [2].

Projektin toteutusvaiheen ainoa tarkistuspiste, ”osittaisella toiminnallisuudella varustettu demo”, saavutettiin määräaikaan (11.4.) mennessä. Ko. versiossa mm. yksisuuntainen kommunikointi toimi ja käskyt haettiin käskytietokannasta. Tämän pisteen saavuttamisen jälkeen sovelluksen viimeistelyyn vaadittava työmäärä oli kuitenkin aliarvioitu ja toteutusvaiheen päättymispäivämäärä ylitettiin yli kahdella viikolla. Projektin loppuvaiheessa jokainen ryhmän jäsenistä teki systemaattisesti vajaan 30 tunnin viikkoja. Toiminnallisuutta ei jouduttu karsimaan, vaan päinvastoin viimeiset lisäykset vaadittuihin ominaisuuksiin sovittiin palaverissa 5. toukokuuta, vain yhdeksän päivää ennen toteutuksen valmistumista.

6.3. Projektin viimeistely

Projektin viimeistelyvaiheen tehtäviin kuului testaussuunnitelman laatiminen, itse testauksen suorittaminen ja loppudokumenttien (käyttöohje, projekti- ja sovellusraportti) laadinta. Näiden työnjako jätettiin projektisuunnitelmassa jokseenkin avoimeksi.

Tässä vaiheessa sekä Blomqvist että Pakari poistuivat projektin käytöstä (Blomqvist työelämään 16.5, Pakari kertausharjoituksiin 17.5.). Sovelluksen ja loppudokumenttien hyväksymisessä kesti tosin sen verran, että Pakari ehti palata hetkeksi projektin pariin (6.2. eteenpäin) ennen sen päättymistä. Tässä vaiheessa Pakari avusti sovellusraportin laadinnassa.

Testaussuunnitelman kirjoittamisen aloitti Blomqvist ja lopetti Pakari. Pakari myös suoritti ohjelman ensimmäisen muodollisen testauksen. Sovelluksen testaus projektiryhmän puolesta aloitettiin kolme viikkoa suunniteltua myöhemmin (9.5.) ja vietiin päätökseen toukokuun loppuun mennessä. Testauksen suoritti loppuun ja siinä ilmitulleet virheet korjasi Korhonen.

Samaan aikaan tilaaja läpikävi omaa käyttötestaustaan, joka oli alkanut 26.5. ja jatkui aina kesäkuun loppupuolelle (30.6.) asti. Tilaajan testauksessa ilmenneet virheet ja puutteet korjasi niinikään Korhonen.

Käyttöohjeen ja projektiraportin kirjoitti Mylläri. Sovellusraportin kirjoittivat Mylläri, Korhonen ja Pakari yhteistyössä. Tähän oli varattu aikaa 23.5. asti, mutta projekti- ja sovellusraporttia ei määritelmiensä mukaan voitu viimeistellä ennen kuin sovellus oli lopullisesti hyväksytty. Molempien dokumenttien lopulliset versiot valmistuivat 1.7.

6.4. Aikataulu vaiheittain

Projekti oli alun perin tarkoitus saada vietyä läpi toukokuun 23. päivään mennessä. Tähän tavoitteeseen ei päästy, vaan projekti venyi kokonaisuudessaan noin neljällä viikolla ja tilaajan hyväksymä versio sovelluksesta dokumentteineen luovutettiin 30.6. Projektin vaiheiden toteutunutta aikataulua on verrattu suunniteltuun taulukossa 1. Sama näkyy Gantt-kaaviona kuvassa 2.

Suunniteltu	Toteutunut	Tehtävä	
17.2. – 14.3.	16.2. – 24.3.	Projektisuunnitelman laadinta	
17.2. – 14.3.	18.2. – 24.3.	Vaatimusmäärittelyn laadinta	
3.3. – 21.3.	17.3. – 28.4.	Sovellussuunnitelma	
17.3. – 11.4.	17.3. – 11.4.	Sovelluksen toteutus:
Osittaisella toiminnallisuudella varustettu demo	
14.4. – 25.4.
	11.4. – 14.5.	Sovelluksen toteutuksen viimeistely	
18.4. – 9.5.	9.5. – 30.6.	Sovelluksen testaus ja virhekorjaus (sis.
tilaajan oman testauksen)	
25.4. – 23.5.	6.5. – 1.7.	Loppudokumentointi	

Taulukko 1: Toteutunut aikataulu vaiheittain.

Mielenkiintoista on havaita, että aikataulun venymisestä leijonanosa tapahtui projektin äärimmäisessä lopussa. Vielä viimeisessä projektipalaverissa (21.5.) näytti siltä, että valmistumisen takaraja ylitettäisiin enintään viikolla tai kahdella.

Ensimmäinen tilaajan palaute projektiryhmän näkökulmasta jo valmiista sovelluksesta saatiin kuitenkin vasta 30.5, mikä riitti jo yksinään puskemaan projektin päättymisen kesäkuun puolelle. Alkaneet kesäkurssit laskivat ryhmän työtehon murto-osaan normaaleina viikkoina, ja tenttien alla harva ryhmästä kykeni tekemään projektin hyväksi mitään.

Kumpaakin ensimmäisen jälkeen tullutta virheraporttia saatiin odottaa viidestä päivästä viikkoon. Tilaisuuksia tehdä projektin eteen töitä oli tässä vaiheessa muutenkin vähän, jolloin tällaisen hitaan ja nytkähtelevän työtahdin vaikutukset kertautuivat. Virheenkorjaukset itse veivät vain joitakin tunteja, mutta mahdollisuutta implementoida ne joutui odottamaan. Sama päti lievemmässä määrin loppudokumentteihin – yhden tarkistetun version saannin jälkeen joutui sen kirjoittaja odottamaan tilaisuutta tehdä korjaukset, ja sen jälkeen taas seuraavaa tarkistettua versiota.

Kuva 2: Suunniteltu ja toteutunut aikataulu Gantt-kaaviona. Tumma palkki
 merkitsee suunnitelmaa, vaalea toteutunutta aikataulua.

7. Ongelmat

Luvussa tarkastellaan lyhyesti projektin kulkua vaikeuttaneita ongelmia sekä joitain niiden syitä ja ratkaisuja.

Ohjelmointityökalut (Visual Studio ja MFC-kirjastot) muodostivat pahimman jarrun projektin etenemiselle. Niiden vieraus ryhmälle oli huomioitu jo projektisuunnitelmassa riskinä. Lisäksi Visual Studio 6 on itsessäänkin kehitystyökaluna epälooginen ja sekä stabiiliudeltaan että ergonomialtaan kehno. Näiden ongelmien yhteisvaikutus kasvatti sovelluksen toteutuksen työmäärää moninkertaisesti.
 
Projektikokemattomuus oli ennakoitu jo projektisuunnitelmassa ja ilmeni projektin laiskana käynnistymisenä. Projektin vaativuutta ei yksinkertaisesti otettu alkuvaiheessa vakavasti. Tämä kostautui työmäärän kasautumisena projektin loppuun.

Toteutusvaiheessa tiuhaan muuttuvat vaatimukset hankaloittivat projektin etenemistä jonkin verran. Nettovaikutus lienee silti jäänyt vähäiseksi.

Henkilöresurssihävikki viimeistelyvaiheessa hidasti projektin lopetusta jonkin verran. Ryhmän neljästä jäsenestä kaksi joutui poistumaan projektin parista muutamaa viikkoa ennen sen päättymistä.

Versionhallinta osoittautui ennakoitua konstikkaammaksi. Toteutuksen alussa kukin ryhmän jäsen työsti omia komponenttejaan, mutta jokainen päätyi myös toteuttamaan osia käyttöliittymästä. Varsinkin toteutuksen lopulla olivat yleisiä tilanteet, joissa kaksi ryhmän jäsentä olisi tehnyt yhtaikaa muutoksia samaan tiedostoon. CVS-järjestelmän käyttöönottoa ei pidetty tarkoituksenmukaisena, vaan ongelmaan haettiin yksinkertaista ratkaisua koodikansion nimeämiskäytännöstä kohtalaisella menestyksellä. Versionhallintasotkut veivät pienehkön määrän työtunteja.

Tilaajan verkkaisuus sovelluksen käyttötestauksessa ja sitä kautta sovelluksen hyväksymisessä viivästytti projektin valmistumista varovaisestikin arvioiden kahdella viikolla. Tämä tekijä ei ollut projektiryhmän kontrolloitavissa.

8. Projektiryhmän jäsenten henkilökohtaiset kokemukset

Luvussa projektiryhmän jäsenet kuvaavat henkilökohtaisia mietteitään projektin kulusta.

8.1. Susanna Blomqvist

Aihe tuntui aluksi vaikealta, mutta hitaasti pääsin sisälle ohjainlogiikoiden ja servomoottoreiden maailmaan. Samalla selvisi paremmin, mitä meidän pitää tehdä. MFC ei myöskään miellyttänyt ohjelmointityökaluna, muttei kuitenkaan aiheuttanut minulle suurempia ongelmia.

Projektin alussa tuntui, että olen ainoa motivoitunut, ja usein istuinkin projektihuoneessa yksikseni. Vasta myöhemmin muidenkin motivaatio kasvoi, ja heitäkin alkoi näkymään useammin projektihuoneessa. Alun aktiivisuudestani johtuen minut valittiin projektipäälliköksi. Hoidin tiedottamiseen ja työnjakoon liittyviä asioita. 19.5 minulla alkoi työt, enkä enää pystynyt paneutumaan projektiin aktiivisesti. Koska olin alussa tehnyt ahkerammin tunteja kuin muut, sovimme, ettei minun tarvitse murehtia projektista.

Ryhmähenkeä meille ei oikein syntynyt. Alussa emme kovin usein edes nähneet toisiamme. Mitään ilmiriitoja ei kuitenkaan ollut, ja tulimme ihan kohtuullisen hyvin toimeen keskenämme. Pystyimme yhdessä keskustelemaan ja ratkaisemaan ohjelmointiongelmia, ja useamman miettijän voimin syntyikin yleensä parhaat ratkaisut ongelmiin.

8.2. Antti Korhonen

Ensimmäiset viikot menivät erilaisten suunnitelmien tekemisessä. Aluksi tuntui hieman nihkeältä, kun en kunnolla hahmottanut, miten firman laitteet toimivat ja mitä sovelluksen pitäisi tehdä. Tosin, kun ohjelmointivaihe alkoi, pääsin kunnolla sisälle hommaan.

Sellainen tunne hiukan jäi, että suurin osa ajasta meni työkalun eli Visual Studion opettelemiseen. Aloitin koodaushommat muita aikaisemmin ja jouduinkin painimaan enemmän sovelluskehittimen kanssa, koska tein käyttöliittymää.
Olin pitkän aikaa jäljessä tuntimäärässä ja lopullinen kiinniotto muihin tapahtuikin aivan projektin lopussa. Kaikki tekivät ikään kuin omaa juttuaan omaan tahtiinsa, joten projektipäällikkö oli välttämätön.

Käyttöliittymän tekeminen oli kuitenkin lähimpänä sitä hommaa, jota halusin tehdä. Tein myös monia muita asioita, jotka eivät olleet minulle ennestään tuttuja, joten kyllä tässä oppi aika paljon uutta. Näin loppumetreillä voi sanoa, että projekti oli hyödyllinen kokemus ja hyvinkin mielenkiintoinen tapa opiskella.

8.3. Heikki Mylläri

Aihe tuntui aluksi suorastaan naurettavan helpolta, ja kesti hyvän aikaa ennen kuin kykenin suhtautumaan projektiin sen vaatimalla vakavuudella. Toteutuksellisten vaatimusten (osien vaihdettavuus yms.) yhteisvaikutus nettotyömäärään oli odottamaton, mutta kun todellinen tilanne selvisi, se otettiin nopeasti haltuun.

Ryhmähenki rajoittui meillä lähinnä siihen, että muita projektin jäseniä siedettiin. Yhteistyö sujui, mutta erityistä pontta siinä ei ollut. Lopun dokumentointivaiheessa iski helvetillinen taisteluväsymys. Kun ohjelma oli ollut käytännössä valmis jo kolme viikkoa, mutta hyväksymistä ei näkynyt edes horisontissa ja paperit kasaantuivat vuoriksi, moraali oli alhaalla.

Kaikesta huolimatta pidän kokemusta palkitsevana. Epäilenkin, että sain osakseni projektin mielenkiintoisimmat tehtävät (rakenteen suunnittelu ja kommunikointi sekä dokumenteista projektisuunnitelma ja -raportti).

8.4. Pekka Pakari

Vaikka aihe vaikutti aluksi mielenkiintoiselta, lähti projekti varsin nihkeästi käyntiin. Ehkä osasyynä oli liian valmiit dokumentit sekä mielikuva työn helppoudesta. Projektin alkuvaiheessa olisi kuitenkin kaivannut hieman enemmän ”kädestä pitäen” ohjausta, kerrottavan selkeämmin, mitä kannattaa tehdä.

Varsinkin dokumenttien kirjoittamiseen meni yllättävän paljon aikaa. Oman aikansa veivät niin virheiden korjaus kuin kielikin, joksi valittiin tilaajan pyynnöstä englanti. Mutta selvää parantumista dokumenttien osalta oli havaittavissa projektin aikana.

Varsinaista ryhmätyöskentelyä ei juurikaan esiintynyt, lukuunottamatta projektin loppua, mutta yleisesti ottaen ryhmä toimi hyvin. Ja kyllä välillä oli ihan hauskaakin.

Kaiken kaikkiaan projekti oli sangen hyödyllinen ja opettavainen varsinkin projektityöskentelyn osalta, koska itselläni ei ollut siitä minkäänlaista aiempaa kokemusta.

9. Yhteenveto

Dokumentti kuvaa, miten SerTi-projekti toteutti Stresstech Oy:lle vaatimusten mukaisen servomoottorin ohjauslogiikan testaussovelluksen. Vaativuudeltaan keskitasoinen projekti käynnistyi hitaasti, mutta kiihdytti koko ajan tahtiaan. Sen aikataulu venyi noin neljällä viikolla.

Taaksepäin katsoen kaikki projektiin liittyneet ongelmat olisivat teoriassa ratkenneet itsestään, mikäli projekti olisi saatu käynnistymään täydellä teholla heti alkuvaiheessa. Käytännössä moinen tuskin olisi ollut mahdollista, varsinkaan kun on kyse kunkin ryhmän jäsenen ensimmäisestä projektista.

Jos kankea käynnistyminen hyväksytään väistämättömänä ongelmana, ei projektin vaiheisiin liity sen enempää suurta dramatiikkaa. Ratkaisut olivat tilanteen puitteissa likimain optimaalisesti valittuja ilman erityisiä kömmähdyksiä tai neronleimauksia, usein jopa pakon sanelemia (kuten dokumentointi- ja ohjelmointikäytäntöjen tapauksessa). Alkuvaiheen jälkeen aikataulussa ei ollut lainkaan ilmaa ja kaikki käytettävissä olevat henkilöresurssit olivat koko ajan käytössä. Kaikkiaan projekti vietiin läpi niin tehokkaasti kuin ryhmä kykeni ja olosuhteet huomioon ottaen pitää mahdollisena.

Jos sama tulisi ryhmälle tehtäväksi uudestaan, olisi ensimmäisenä päämääränä päästä toteutusvaiheeseen ja 20 tunnin päiviin käsiksi niin pian kuin suinkin. Lisäksi tulisi ehkäistä hinnalla millä hyvänsä projektin venyminen lomakauden puolelle. Kaikki muu pyrittäisiin tekemään kuten nytkin.

Lähteet

[1]	Urtamo Ilkka, “SerialTester General Specification”, Stresstech Oy, 2002.
[2]	Hoff Todd, “C++ Coding Standard, an Edited Version”, Stresstech Oy, 2002.
[3]	Stresstech Oy, ”Logic/Motor Controller SL10 Command Set”, Stresstech Oy, 2002.
[4]	Stresstech Oy, Moottoriparametritiedoston sisältöesimerkki, Stresstech Oy.
[5]	Blomqvist Susanna, Pakari Pekka ja Urtamo Ilkka, ”SerTi Project Requirement Specification”, Jyväskylän yliopisto, tietotekniikan laitos, 2003.
[6]	Eri tekijöitä, ”The Code Project”-sivuston artikkelit ja esimerkit, saatavilla WWW-muodossa <URL: http://www.codeproject.com/>, The Code Project, luettu 15.1 – 16.6.2003.
[7]	Google Groups - Usenetin keskusteluryhmähaku, WWW:ssä <URL: http://www.google.com/>, luettu 15.1 – 16.6.2003.
[8]	Blaszczak Mike, “Professional MFC with Visual C++ 6”, Wrox Press, 1999.
[9]	Korhonen Antti ja Mylläri Heikki, ”SerTi Project Software Report”, Jyväskylän yliopisto, tietotekniikan laitos, 2003.
[10]	Blomqvist Susanna ja Pakari Pekka, ”SerTi Project Testing Plan”, Jyväskylän yliopisto, tietotekniikan laitos, 2003.
[11]	Korhonen Antti ja Pakari Pekka, “SerTi Project Test Report”, Jyväskylän yliopisto, tietotekniikan laitos, 2003.
[12]	Mylläri Heikki, ”Projektisuunnitelma”, Jyväskylän yliopisto, tietotekniikan laitos, 2003.
[13]	Blomqvist Susanna, Korhonen Antti, Mylläri Heikki ja Pakari Pekka,  ”SerTi Project Software Plan”, Jyväskylän yliopisto, tietotekniikan laitos, 2003.
[14]	Mylläri Heikki, ”SerialTester Online Help”, Jyväskylän yliopisto, tietotekniikan laitos, 2003.