Pirkanmaan tietojenkäsittely-yhdistys ry

Palkittu Sunny Results -ryhmä (TTY 2017) kirjoittaa projektistaan

Tämä on Pitkyn stipendillä vuonna 2017 palkitun TTY:n Tietotekniikan laboratorion projektityökurssin Sunny Results-projektiryhmän kertomus projektistaan. Projektin aiheena oli trial-tulospalvelun kehittäminen SJ-Taito Oy:lle.

Projektin aloitus

Projektiryhmä oli tiedossa jo ennen kurssin alkua. Ryhmän kuusi jäsentä tunsivat toisensa entuudestaan ja osa oli tehnyt kurssitöitä aiemmin yhdessä. Ryhmän työnjako aloitettiin jo ensimmäisillä luennoilla, joissa sovimme projektipäällikön, scrum masterin, teknologia-asiantuntijan, arkkitehdin ja QA-vastaavan rooleista. 

Projektin aihe päätettiin jo ennen kurssia, koska yksi ryhmäläisistä tunsi asiakkaan työnsä kautta. Tämä mahdollisti yhteydenpidon aloittamisen asiakkaan kanssa jo varhain. Asiakas toimii trial-kilpailujen järjestäjänä ja käytti järjestämiseen pääasiassa Word- ja Excel-ohjelmia. Tarpeena oli luoda web-palvelu, jossa voitaisiin tehdä suurin osa trial-kilpailujen järjestämiseen ja läpivientiin liittyvistä tehtävistä ja helpottaa näiden tehtävien suorittamista automaatioilla.

Ensimmäisten asiakastapaamisten aikana sovittiin yhteydenpidosta ja lisäksi ryhmä tutustui trial-kilpailujen järjestämiseen. Vaatimusten keräystä jatkettiin ja ensimmäisen kuukauden aikana luotiin projektisuunnitelma. Ensimmäisiä käyttöliittymäsuunnitelmia tehtiin aikaisin, jotta saimme asiakkaalta palautetta suunnitellusta ohjelmasta. Näiden avulla asiakas ja ryhmä pääsivät alustavasti yhteisymmärrykseen, miltä ohjelman tulisi näyttää ja miten sen tulisi toimia. Samaan aikaan projektiympäristön pystytystä aloitettiin. Ryhmällä oli käytettävissä oma palvelin, jolle asennettiin TeamCity-, UpSource- ja YouTrack-ohjelmistot. Näitä ohjelmia käytettiin projektin aikana automaattitestien ajamiseen, koodikatselmointiin sekä tehtävien hallintaan. 

Projekti koki ensimmäisten sprinttien aikana vastoinkäymisiä. Alun perin toteutusteknologiaksi suunniteltu Angular 2 osoittautui liian suureksi haasteeksi kokemuksen puutteen sekä teknologian huonon dokumentaation vuoksi. Angular 2 oli projektin aloitushetkellä juuri julkaistu, joten siihen ei vielä löytynyt open-source kirjastoja, eikä hakukoneen avulla löytynyt riittäviä esimerkkejä kohdattujen ongelmien ratkaisemiseen. Näistä syistä johtuen ryhmä päätti vaihtaa toteutusteknologian Djangoon, joka on Pythoniin perustuva avoimen lähdekoodin web-framework. 

Projektin kulku

Projektin työt jaettiin yhteensä kuuteen sprinttiin, jotka alkoivat sprint 0:n suunnittelutyöstä ja päättyivät QA-sprintin viimeisiin viilauksiin ja testaukseen. Sprint 0 oli pakollinen pelkkään projektisuunnitelmaan keskittynyt iteraatio, jonka lopuksi projektiryhmällä tuli olla järkevä suunnitelma siitä kuinka projekti tultaisiin viemään läpi ja mitkä ovat vähimmäisvaatimukset projektin onnistumisen kannalta. Sprint 0:n aikana projektisuunnitelman tekemisen ohessa ryhmällä oli aikaa päättää käytettävät teknologiat ja opetella uusien teknologioiden käyttöä.

Kun teknologiavalinnat oli saatu lyötyä lukkoon, pääsi kehitystyö kunnolla vauhtiin. Tuotteen perustoiminnallisuudet, kuten käyttäjien rekisteröinti ja tapahtumien luonti, saatiin demottavaan kuntoon melko nopeasti, ja osa ryhmästä alkoi kehittää pisteiden merkitsemiseen, katselemiseen ja laskentaan liittyvää toiminnallisuutta. Näistä jokaiseen liittyi asiakkaalta tulleita erityisvaatimuksia. Pisteiden merkkauksessa piti erityisesti keskittyä mobiiliystävällisyyteen sekä käytettävyyteen, sillä kisatilanteessa pisteitä merkkaavat toimitsijat radan varrella käyttäen mobiililaitteita. Pisteiden katselussa oli pyrkimyksenä päästä mahdollisimman lähelle reaaliaikaisuutta, jotta toimitsijat pystyvät seuraamaan kilpailun etenemistä sekä tekemään mahdollisia muutoksia pisteiden merkkaukseen. Ohessa pystyttiin tarjoamaan myös katsojille mahdollisuus seurata kilpailun tilannetta hyvin pienellä viiveellä. Pisteiden laskennan taas tuli pystyä ratkomaan suurin osa mahdollisista tasatilanteista automaattisesti, joihin liittyen trialissa on useita eri sääntöjä. Sääntöjen määrä ja monimutkaisuus toivatkin oman lisähaasteensa pisteiden laskentaan. Lisävaatimuksista huolimatta toiminnallisuudet saatiin toteutettua ja ensimmäisten sprinttien aikana ryhmä saikin asiakkaalta positiivista palautetta "tekemisen meiningistä".

Tuotantoympäristön pystyttäminen aloitettiin joulun alla. Tämä sisälsi virtuaalipalvelimen hankinnan, SSL-sertifikaatin aktivoinnin sekä web-serverin ja tietokannan valinnan. Lisähöystettä palvelinympäristöön toivat Continuous Deployment -tyyppiset skriptit, joilla koodi saatiin automaattisesti ryhmän repositoriosta tuotantoon. Ensimmäinen live-versio järjestelmästä saatiin myös toimintaan ennen joulua, jota asiakas pääsi vapaasti testaamaan ja antamaan palautetta ryhmälle. Asiakkaan tekemä testaus osaltaan helpotti jo paisunutta työkuormaa, mutta osaltaan myös lisäsi sitä, koska bugiraporttien lisäksi ryhmä sai myös parannus- sekä lisäkehitysehdotuksia. Alkuvuonna projektiin toteutettiin vielä mahdollisuus kilpailusarjojen järjestämiselle sekä tulosten vieminen Excel-tiedostoon, jotta kilpailu voitaisiin viedä läpi myös verkon katketessa. Näiden lisäksi jatkettiin jo olemassa olevien toiminnallisuuksien parantelua asiakkaan ehdotusten pohjalta.

QA-sprintin aikana ryhmän oli tarkoitus keskittyä täysin testaukseen ja viimeisten pienien muutoksien tekemiseen. Tämä optimistinen ajatus ei kuitenkaan aivan toteutunut, sillä erään suuremman kilpailun simuloinnin yhteydessä järjestelmästä löydettiin merkittävä suorituskykyongelma, mutta ongelma saatiin ratkaistua nopeasti. Projektityön loppumetreillä oman haasteensa toi myös Gitlab-versionhallintapalvelun kaatuminen, sillä se esti yhteistoiminnan ryhmän välillä vuorokauden ajan. Näistä haasteista huolimatta projekti päättyi onnistuneesti ja alkuperäisessä aikataulussa onnistuttiin pysymään. Uudesta trial -urheilulajin ilmoittautumis- ja tulospalvelusta saatiin aikaiseksi toimiva kokonaisuus ja se on ollu asiakkaalla tuotannossa jo 4 kuukauden ajan.

Projektin loppupuolella helmikuussa tuote luovutettiin asiakkaalle tapaamisessa, jossa kaikki ryhmän jäsenet olivat läsnä. Sivusto on nähtävissä osoitteessa www.sunnyresults.com. Sivusto on ollut käytössä heti luovutushetkestä alkaen, joskin siellä on luotu kilpailuja ensimmäisen kerran runsaammin vasta huhtikuussa. Tällä hetkellä kilpailuja on rekisteröity yhteensä 19, eli sivustoa on käytetty melko aktiivisesti sen nuoreen ikään nähden. Tuloksia löytyy menneistä kilpailuista ja yksi sarjakilpailukin on jo ehditty ajamaan.  Asiakas on muokannut hieman sivuston ulkoasua omien mieltymystensä mukaisesti muun muassa uusimalla sivuston logon. Asiakas vaikutti olevan tyytyväinen projektin lopuksi saamaansa tuotteeseen, eikä moitteita ole jälkikäteen kuulunut.

 

Jäsenet: Tuomas Aho, Lauri Koriseva, Ville Myllynen, Henrik Nyman, Eetu Ruponen ja Aleksi Savijoki

Projekti: Sunny Results, SCore service for Trial-competitions

Asiakas: SJ-Taito Oy

 

 

 

Artikkelilaji: