Ilotulitus
29.10.2018 Petri Tuomaala Tuotekehitys

Parhaiten suunniteltu hanke koskaan!

Teknologia

Muistissa ovat vanhat virheet ja miten ne tällä kertaa vältetään. Kädessä on kuuma kahvi, aurinko kerrankin paistaa, pieni tuulenvire kutittelee jäljellä olevaa hiusta ja uuden tekemiselle on vain taivas rajana. Tästä tulee parhaiten suunniteltu hanke koskaan!

Takaisin todellisuuteen

Kuluu päivä tai kaksi, kun realiteetit iskee. Edessä on ainoastaan taiteilijoilta tuttu tyhjä valkoinen canvas. Riskit ja vaihtoehtojen määrä alkavat painaa leukaa kohti rintaa. Samaan aikaan raahelainen pessimismi alkaa nostaa omaansa. Ei tästä mitään tule! Vaikeuksien hetkellä palaan itse perusasioiden äärelle. Näiden perusasioiden huomioimisella teknologiavaihtoehtojen määrää saadaan rajattua ja riskiä vääristä valinnoista pienennettyä.

Tiimi mukaan teknologiavalintoihin

Ensimmäinen nyrkkisääntö teknologiavalintoihin on tiimin huomioiminen. Huomioimisella tarkoitan sitä, että tiimi osallistuu teknologiavalintojen tekemiseen ja vastaavasti teknologiavalinnat ovat sellaisia, joihin tiimillä on osaamista tai potentiaalia. Kaukana ovat ne päivät, jolloin yksittäinen arkkitehti tai vastaavassa asemassa ollut, määritteli hankkeen teknologiavalinnat.

Pelkkää demokratiaa valintojen tekeminen ei kuitenkaan ole. Kaikille on eduksi, jos arkkitehti tai valinnoista vastaava, on pystynyt rajaamaan mahdollisuuksia muutamaan vaihtoehtoon. Tällöin tiimi pystyy evaluoimaan niiden toimivuuden ennen lopullista valintaa. Samalla saadaan kokemusta vaihtoehdoista ja löydetään niistä tiimille parhaiten sopivat. Kun asioita evaluoi isommalla joukolla, tulee vaihtoehtojakin tarkasteltua useasta eri näkökulmasta. Tällöin voi paljastua uusia vaatimuksia tai voi selvitä, että ollaan ampumassa tykillä kärpästä.

Tuttu ja turvallinen Java - ja kokeilut rajapintojen takana

Tiimin nykyinen osaamisalue on mielestäni teknologiavaihtoehtoja eniten rajaava tekijä. On turhaa kuvitella, että teknologiavalinta on tuottava, jos aikaisemmin pelkkiä Java-hankkeita tehneelle tiimille valitaan teknologiaksi esimerkiksi .NET. Toki aika korjaa puutteen, mutta ensimmäisen hankkeen uudella teknologialla voi aina mieltää enemmänkin harjoitteluksi kuin laadukkaaksi tekemiseksi.

On kuitenkin kaikkien etu, että tiimi pystyisi toimimaan erilaisilla teknologioilla. Tätä voi tukea esim. sillä, että ydinteknologia olisi vaikka entuudestaan tuttu ja turvallinen Java, mutta osassa järjestelmää voidaan kokeilla jotakin uutta. Tällöin on tärkeää kapseloida kokeilut rajapintojen taakse, jolloin kokeilun hylkääminen tai uudelleenkirjoittaminen heijastuu mahdollisimman vähän kokonaisjärjestelmään. Tämähän oli yksi ydintoiminnoista eläkkeelle siirtyvässä SOA:ssa ja samaa ajattelumallia on myös mikropalvelulähtöisessä arkkitehtuurissa (korotettuna potenssiin X).