”Työskentelen Profit Softwaren kehitystiimissä ohjelmistokehittäjänä. Tyypillinen työpäiväni alkaa sillä, että tarkastan työn alla olevista tehtävistä kommentit, joita asiakkaat tai kollegani ovat minulle laittaneet. Jos eteeni tulee akuutteja asioita, joita ei ole vielä informoitu Scrum Masterille**, välitän ne eteenpäin.

Tiimissämme on tällä hetkellä käytäntö, jossa pidämme joka-aamuisen scrum-palaverin. Neljänä päivänä viidestä hoidamme sen Slackissa. Kommentoimme toisillemme mahdollisista vinkeistä, minkä lisäksi toiminnallisuuksista käydään keskusteluja eri kanavissa pitkin päivää. Osa tiimistämme työskentelee etänä, pääosa istuu toimistolla, mikä luo mukavasti etenemisen meininkiä.

If there was a problem, Yo, I’ll solve it*

Ennen uuden toiminnallisuuden työstämistä tutustun vaatimuksiin. Hahmotan, millainen uusi ratkaisu voisi olla, dokumentoin asiaa ja listaan tekemiseen liittyviä vaiheita. Uusi toiminnallisuus ei synny yksin, vaan mukana on tiimi kehittäjistä testaajiin.

Seuraavaksi alan rakentamaan toiminnallisuudelle omaa sivuhaaraa. Näitä kutsutaan termillä ”branch”. Rakennan työstämälleni toiminnallisuudelle haaran versionhallintaan ja laitan työvedoksen talteen. Koodaan toiminnallisuuteen liittyvät muutokset eri kirjastoihin ja tutkin, miten olemassa olevat testit eri menetelmillä kattavat näitä kirjastoja. Varaudun kirjoittamaan sopivan määrän yksikkö- ja integraatiotestejä.

Välillä sukellan internetin ihmeelliseen maailmaan tutkimaan ratkaisumalleja tai keskustelen kollegoideni kanssa. Rakennan koodauksen aikana muutamaa laajempaa testitapausta, joilla voin nopeasti toistaa tämän toiminnallisuuden sekä siihen liittyviä muita, jo olemassa olevia toiminnallisuuksia. Tämä varmistaa sen, että voin muokata koodia ilman regressio-ongelmia.

All right stop, Collaborate and listen*

Toiminnallisuuden testauksessa olemassa olevan version päälle tehdään muutokset kyseistä toiminnallisuutta koskien ja rakennetaan tästä edelleen versio testiin. Version voi kuka tahansa ladata käyttöönsä ja asentaa sellaisiin ympäristöihin, joissa voidaan ajaa testipattereita.

Yleensä pyydän viikoittaisesta demokokouksesta aikaa, jolloin voin esitellä aikaansaannokseni. Kollegat ja asiakas katselmoivat demoni antaen lisätarkennuksia. Hoidan tarvittavat tarkennukset, testaajakollega puolestaan listaa testit, jotka kannattaa automatisoida. Testauksen aikana tarkkailemme kattavuuden nousua ja ideoimme asioita, jotka tulee verifioida tutkivan testauksen kautta.

Kun toiminnallisuus on mielestäni vaiheessa, jossa senior-kehittäjä voi sen käydä läpi, teen katselmointipyynnön. Tämän jälkeen koodi ja testit ovat ohjelmistomme päähaarassa, joka paketoi kokonaisuutta useita kertoja päivässä.

Varmistan lopuksi, että ratkaisun kuvauksen dokumentaatio on ajan tasalla ja tiketit on leimattu oikeaan releaseen. Raportoin korjatut virheet ja kuvaan vaiheet, joilla korjaus on toistettavissa sekä juurisyyn, miksi virhe on päässyt läpi. Testaajakollega ja katselmoinnista vastaava hoitavat tässäkin omat tehtävänsä ja työ luistaa.

Love it or leave it*

Tiimissä käymme läpi retrospektiivin: mitä tekemistä jatketaan, mitä käynnistetään ja vielä sekin, mitä lopetetaan. Meillä on mukavan arvostava ilmapiiri, jossa kaikkien havainnot ja ideat tulevat kuulluksi ja niillä on merkitystä.

Minulle tiimimme työn merkityksellisyys on tärkeää. Kehitämme yhteiskunnan toiminnan kannalta kriittistä ohjelmistoa ja pidämme sen laadun korkealla tasolla aktiivisilla toimilla. Hyödynnämme moderneja työkaluja sekä menetelmiä meidän tiimiimme sopivalla tavalla. Opimme lisää sekä liiketoiminnasta että teknologioista.

Asiakkaan kanssa kommunikoiminen on työssämme onnistumisen avain. Asiakas antaa meille palautetta, niin kehityskohteista kuin onnistumisista, ja arvostaa tiimimme kokonaissuoritusta. Koen olevani omalla kentälläni asiantuntijatyössä, jossa saan esitellä työtäni ja tehdä hommia yhdessä muiden kanssa.”

Oheinen tarina on totta ja perustuu Profit Softwaren kehittäjän aka devaajan haastatteluun. Jos kiinnostuit ja haluat oman työpäiväsi kuulostavan samalta, tutustu avoimiin työpaikkoihimme osoitteessa: https://careers.profitsoftware.com/.

*) Alkuperäiset sanat kappaleesta Vanilla Ice: Ice Ice Baby

**) Tuntuuko termistö hankalalta? Ei huolta, olemme koonneet alle IT-jargon-suomi -sanakirjan:

Feature
Toiminnallisuus. Toiminnallisuus voi liittyä esimerkiksi siihen, miten järjestelmä toimii tietyssä tilanteessa.

Issue branch build
Olemassa olevan version päälle tehdään sivuhaara uudelle toiminnallisuudelle.

Regressio-ongelma
Kun järjestelmästä korjataan koodivirhe ja testataan, että korjaus toimii. Tämän jälkeen huomataan, että jokin muu asia ei enää toimikaan kuten aiemmin. No niin, korjaus on siis rikkonut jotain muuta ennalta määrättyä toiminnallisuutta, joten muutos aiheutti regressiota.

Release
Release eli julkaisu. IT-maailma ei eroa muusta maailmasta: uusi release on entistä ehompi versio edellisestä.

Retrospektiivi
Suomeksi: miten meillä meni. Katsaus menneeseen, onnistumisiin, kehityskohteisiin ym. yhdessä tiimin kanssa.

Scrum Master
Scrum on ketterässä ohjelmistokehityksessä yleisesti käytetty projektinhallinnan viitekehys. Scrum Master luotsaa kehitystiimiä.