Kesätyö integraatio- ja tuntikirjausjärjestelmän kehittäjänä

Artikkelin lukuaika

6 min

Kesätyöntekijät hiekkalaatikolla

”Olen kyllä nauttinut joka päivästä, kun on saanut tulla tänne töihin. Parasta kesässä on ollut oppiminen ja se, että töitä on saanut tehdä tiiviisti kahden muun kesätyöntekijän kanssa. Meillä on synkannyt Oskarin ja Teemun kanssa heti alusta lähtien hyvin.”

Vuoden 2022 kesän jälkeen päätin, että tämä sai olla viimeinen kesäni kaupassa myyjänä. Palo päästä oman alan hommiin oli todella kova. Oli aika laittaa uusi vaihde silmään ja tehdä kaikkeni, jotta pääsisin ensi kesänä oman alan töihin.

Tiesin, että tavoitteeseen pääsy tulisi vaatimaan minulta paljon, sillä minulla oli opintoja takana vasta vuoden verran ja kursseja suoritettuna hieman yli vuoden edestä. Onnekseni olin jo lukiossa tutustunut ohjelmointiin ja harrastanut sitä siitä lähtien. Tiesin minulla olevan kaikki mahdollisuudet saada kesätyöpaikka omalta alaltani.

Mitä ATR:lle pääsy vaati minulta?

Kun alkuvuodesta 2023 oli aika alkaa hakea kesätöitä, kokosin GitHubiini kaikki vähänkään suuremmat opiskeluissa ja vapaa-ajalla tehdyt ohjelmointiprojektit, kirjoitin CV:ni kokonaan uudestaan ja panostin jokaiseen hakemukseen kuin se olisi ainoa hakemukseni. Tämä työ palkittiin kutsulla haastatteluun ATR:lle.

Sitten olikin aika valmistautua haastatteluun kuin elämäni olisi siitä kiinni. Kävin läpi kymmeniä mahdollisia haastattelukysymyksiä sekä kuinka niihin kannattaa vastata. Mietin etukäteen vastaukseni jokaiseen kysymykseen, jotta pystyisin vastaamaan niihin parhaalla mahdollisella tavalla. Lisäksi kävin läpi asioita, joita kannattaisi kysyä haastattelijoilta. Keksin näiden pohjalta kolme kysymystä, jotka kysyisin haastattelussa.

Onnistuneen haastattelun jälkeen oli vielä vuorossa ohjelmointitesti, jonka suoritin Javalla. Testi ei mennyt niin hyvin kuin olisin toivonut ja tiesin pystyväni parempaan. Tästä sisuuntuneena tein testissä epäonnistuneet tehtävät uudestaan ja soitin perään, sopisiko uudestaan tehdyt tehtävät vielä lähettää katsottavaksi. Kaiken näkemäni vaivan jälkeen työni palkittiin ja sain puhelun, että minut on valittu ATR:lle kesätöihin!

Kesän alku – nopeasti projektin pariin

Kesä alkoi käytännön asioihin ja ATR:n kulttuuriin tutustumisella sekä heti ensimmäisenä päivänä saadun tietokoneen laittamisella valmiiksi kehittämistä varten. Jo ensimmäisestä päivästä alkaen oli tunne, että täällä olen samanlainen työntekijä kuin talossa paljon pidempäänkin olleet enkä ”vain” kesätyöntekijä.

Kesän projektin pariin pääsin heti toisena työpäivänä kahden muun kesätyöntekijän kanssa. Projektinamme oli toteuttaa uudestaan integraatio Jiran ja ATRWorksin eli ATR:n tuntikirjaussovelluksen välille. Lisäksi tehtävänämme oli toteuttaa Worksiin uudet skills- ja allokaatio-osiot.

Koodia, johon piti tutustua, vaikutti olevan valtava määrä ja urakka tuntui alkuun lähes mahdottomalta. Jo muutaman päivän jälkeen pääsimme kuitenkin kaikki jo korjaamaan löytämiämme bugeja. Bugien etsiminen ja korjaaminen oli erinomainen lähestymistapa taklata tuhansiin koodiriveihin tutustumisen tuoma haaste. Onnekseni suurin osa koodista oli kirjoitettu Javalla, josta minulla oli eniten kokemusta. Oman haasteensa toi Spring Boot, jonka annotaatioiden toimintaan tutustumisessa meni hetki. 

Integraation toteutuksen aloitus

Bugien korjaamisen jälkeen aloimme toteuttaa integraatiota. Vanhasta integraatiokoodista oli paljon apua ja alkuun projekti sujui oikein mallikkaasti ja vauhdilla eteenpäin. Ei kuitenkaan mennyt aikaakaan, kun alkoi tulla ongelmia.

Uutta integraatiototeutusta varten ei ollutkaan vielä testiympäristöä, jossa testata koodimme toimivuutta. Tajusimme myös, että ymmärryksemme siitä, mitä tietoja oli tarkoitus välittää Jirasta Worksiin oli jäänyt melko huteralle pohjalle. Oli siis aika laittaa ohjelmointi hetkeksi tauolle ja selvittää perusteet kuntoon.

Näiden jälkeen pääsimme jatkamaan integraation niin valmiiksi kuin se oli mahdollista, sillä testiympäristön pystyttäminen kestikin oletettua kauemmin ja integraatio jäi taas tauolle.

Uusia ominaisuuksia kehittämässä

Seuraavaksi oli aika aloittaa Worksin uusien ominaisuuksien kehittäminen. Aloitimme jo olemassa olevan skills-osion uudelleentoteuttamisesta. Tämä sujui melko nopeasti, sillä uutta koodia oli helppo testata ja muokata. Ongelmiakin tuli, mutta ne olivat melko pieniä verrattuna integraation kanssa ilmenneisiin haasteisiin. Kielivalikoimaan tuli mukaan JavaScript, jolla toteutimme osan frontin koodista JSP:n lisäksi.

Skills-osiota varten oli tehtävä myös muutoksia tietokantaan. Opiskeluissa kertynyt osaaminen tietokannoista oli jäänyt todella pinnalliseksi, mutta olin halukas oppimaan lisää. Tämän takia halusin ottaa vastuulleni tietokantaan liittyvät tehtävät ja aloin kirjoittamaan Liquibase-scriptejä muutoksia varten.

Innoissani toteuttamistani scripteistä ajoin muutokset tietokantaan vain huomatakseni, etteivät ne toimineetkaan, kuten olisi pitänyt. Tässä vaiheessa tajusin unohtaneeni ottaa tietokannasta varmuuskopion. Onneksi asiantuntevat kollegat olivat valmiita auttamaan ja tietokanta saatiin palautettua tilaan ennen epäonnistuneita muutoksia. Kyseessä oli onneksi vain kehitysympäristön tietokanta. Tästä kommelluksesta oppineena olen muistanut varmuuskopioiden tärkeyden.

Skills-osion valmistuttua siirryimme toteuttamaan uutta allokaatio-osiota. Pienen pohdinnan jälkeen päätimme tätä varten toteuttaa kokonaan uuden REST-rajapinnan, josta voisimme kätevästi hakea fronttiin dataa. Tämä päätös osoittautui erittäin toimivaksi ja pääsimmekin toteuttamaan lähes koko fronttikoodin jQuerya hyödyntäen JSP:n sijaan. Näin pystyimme toteuttamaan allokaatio-osion ikään kuin single page applicationina ilman JSP:n vaatimia sivun uudelleenpäivityksiä.

Tässä vaiheessa alkoi olla jo melko hyvä käsitys koko ATRWorksin koodista, joten kehittäminen oli oikein mukavaa ja sujui kohtalaisen kivuttomasti. Täysin ilman ongelmia tämäkään vaihe ei sujunut, sillä nyt oli tehtävä myös hieman käyttöliittymäsuunnittelua. Onneksi meillä oli olemassa vanha allokaatio-osio, jonka pohjalle pystyimme rakentamaan uuden toteutuksen.

Loppurutistus ja fiilikset kesästä

Allokaatioiden jälkeen kesä alkoi olla jo lopuillaan. Vielä oli kuitenkin jäljellä integraation vieminen maaliin asti. Testiympäristö oli vihdoin saatu kuntoon ja pääsimme testaamaan integraatiota. Lopulta kaikkien vaikeuksien jälkeen saimme uuden integraation vietyä tuotantoon asti vain huomataksemme, ettei se edelleenkään toimi. Ongelma löytyi onneksi nopeasti, korjaavat toimenpiteet saatiin suoritettua ja integraatio alkoi toimia – toki korjattavaakin jäi. Tällä hetkellä työskentelen jo uuden projektin parissa ja käytän tyhjät välit integraation ja ATRWorksin paranteluun. Mutta niinhän se taitaa olla, ettei mikään softa ole ikinä täysin valmis, vaan aina löytyy jotakin muutettavaa.

Kokonaisuudessaan kesä ATR:llä oli upea kokemus ja siksi jäin tänne mielelläni töihin kesän jälkeenkin opiskelujen ohella. Kesän projekti oli mielenkiintoinen ja todella opettavainen, vaikka välillä kärsivällisyys olikin loppua kesken, kun ratkaisua johonkin ongelmaan ei meinannut löytyä.

Erityisesti asiantuntevat ja helposti lähestyttävät kollegat tekivät töihin tulosta mukavaa joka päivä. Voin todellakin suositella hakemaan ATR:lle kesätöihin!

Junior Software Engineer