Blogi

Kompleksisen projektin haltuunotto ja mitä huomioida eri vaiheissa

Joonas Pajunen Bisnes

Pohtikaamme vaikeassa tilassa olevan projektin haltuunottoa ja sen vaiheita. Tiukkaan tilanteeseen joutunut järjestelmä on monesti ajautunut sellaiseen kompleksisuuden kasvaessa joko luonnollisista syistä (kuten liiketoiminnalliset tarpeet) tai luonnottomista (esimerkiksi toimittajan tai asiakkaan grandiööttiset harhat). Usein kyseessä on molemmat.

Yhtä kaikki, suuren monimutkaisuuden saavuttanut projekti on muun muassa edellämainituista syistä mielenkiintoinen. Jokainen tällainen haaste on uniikki, ja ennennäkemättömän ongelman ratkaisu tuottaa kutkuttavia tuntemuksia. Olo on kuin tosielämän Winston Wolfella. Siksi emme kaihda tällaisia hankkeita, vaan pikemminkin kutsumme niitä luoksemme.

Selvitystyö

Haltuunotto on tärkeintä aloittaa selvittämällä kuinka nykyiseen tilanteeseen on tultu. Mitkä ovat olleet ne oikeat asiakkaan tarpeet, ja mitä ne ovat nyt. Alustavan selvitystyön tarkoituksena on saavuttaa riittävä ymmärrys muun muassa järjestelmän tarkoituksesta, näkyvistä ominaisuuksista, integraatioista, tausta-ajoista ja bisneslogiikasta. Täydellinenkään dokumentaatio ei riittäne niin kutsutun perstuntuman saavuttamiseen järjestelmän tilasta, saatika generoi luottamusta sen pystyssä pitämiseen.

Yleensä alan toimittaja on ammattimainen, ja tiedonsiirto onnistuu ongelmitta. Toisinaan sukset ovat lipsuneet ristiin, ja silloin haltuunotto voi tapahtua pienelläkin aikavälillä, jolloin selvitystyöhön ei jää riittävästi aikaa. Oli aikaa riittävästi tai ei, täysin kaikkea ei kuitenkaan koskaan saada tietää tai voida ymmärtää.

Piirretään haltuunottosuunitelmasta kuva. Otetaan järjestelmät haltuun.

Järjestelmän ja bisneksen pystyssä pitäminen

Tärkeintä on estää pahimmat katastrofit ja kiusalliset tilanteet. Tiukassa tilanteessa sormet lyödään saveen ja alan hyväksi havaittuja menetelmiä joudutaan usein karvaasti laiminlyömään. Oleellisinta on priorisoida järjestelmän ja asiakkaan liiketoiminnan kannalta tärkeimmät toiminnot.

Kiireessä tehdyn haltuunoton yhteydessä kaikkien on tärkeä muistaa, että on hypätty liikkuvaan junaan, ja kukin toimii sen hetkisen parhaan tietämyksen mukaan. Toimittajan on omistauduttava asialleen ja kantaa vastuu. Edellisen toimittajan syyttelystä ei kostu kukaan. Asiakkaan tulee ymmärtää puutteellisesta tiedosta syntyvät häiriötilanteet.

Yksi yleisimmistä haltuunoton tarpeeseen johtaneista skenaarioista on järjestelmän suorituskyvyn tai luotettavuuden heikkeneminen. Näitä ominaisuuksia voidaan hetkellisesti kohentaa koneellista prosessointi- tai lihallista valvontakapasiteettia lisäämällä. Luotettavuuden parantaminen on tärkeintä, jotta tilanne saadaan tasapainoitettua ja jatkoja voidaan ylipäätään järjestää. Pitkään jatkunut epävarmuus luo myös psyykkisesti vaikeat olosuhteet järkevien päätösten tekemiseen ja tulevaisuuden suunnitteluun.

Haltuunoton jälkeinen kehitystyö

Jatkuvan kehittämisen tarkoituksena on uusien ominaisuuksien lisäksi pikkuhiljaa, pala kerrallaan stabilisoida ja modernisoida järjestelmä. Teknisen velan poismaksu nostaa kehityksen vauhtia, jolloin uusia ominaisuuksia on mahdollista tehdä rivakammin. Velan otto, eli vanhojen asioiden pelkkä niin kutsuttu puukottaminen, sen sijaan monimutkaistaa tilannetta entisestään, ja täten hidastaa vauhtia pidemmällä aikavälillä.

Toimittajan on pidettävä omat, sekä asiakkaan grandiööttiset harhat aisoissa. Asiakas voi pyytää mahdottomia, tai toimittaja yliarvioida tarpeita ja lähteä rakentamaan jotain “siistiä” ja samaan aikaan tarpeetonta. Jatkuva kehittäminen koskee sekä järjestelmän, että työskentelytapojen kehittämistä.

Sekä asiakkaan, että toimittajan tulee sitoutua jatkokehittämiseen. Haltuunoton jälkeinen stagnaatio pahoittaa vähintäänkin toisen mielen, ja projektiin panostetut henkiset varat ovat vaarassa mennä hukkaan. Kaiken kattavaa, äänetöntä ja implisiittistä tietoa sisältävää dokumentaatiota, kun on mahdotonta laatia.

Mielekkyys

Pitkällä aikavälillä saviset sormet uuvuttavat vähintäänkin tekijät, sekä lopulta laskeneen työnilon ja tuottavuuden kautta myös asiakkaan. Alkupinnistyksestä, tiukasta tilanteesta selvittyään, adrenaliinitasot laskevat ja kehittäjän katse siirtyy kohti tulevia koitoksia. Projektissa tulee olla sopivat mahdollisuudet itsensä kehittämiseen ja haastamiseen.

Kun järjestelmä pysyy ajan hengessä, on myös tekjiöitä helpompi löytää ja ennenkaikkea pitää. Teknologinen maisema muuttuu alallamme sitä vauhtia, että työntekijä voi kokea jäävänsä muista jälkeen, jos projektissa ei ole mahdollista oppia. Tunkkaisen, niin kutsutun legacykoodin korvaaminen tuoreilla teknologioila ja menetelmillä pitää motivaation ja inspiraation paremmin yllä.

Toimialallamme ollaan siinä pisteessä, joissa hyvät tekijät voivat kutakuinkin valita minkälaisten pulmien parissa painivat. Mitä tahansa paskaa löytyy aina lapioimaan se kuuluisa joku, mutta ennenpitkää myös asiakas turhautuu teknisiin vaikeuksiin ja tekijöiden työlääseen etsintään.

Saattohoito

Toisinaan, ei ole millään tasolla järkevää yrittää loihtia olemassaolevasta järjestelmästä uuttaa ja parempaa. Tässä surullisimmassa tapauksessa haltuunoton tarkoitus on pelata aikaa uuden järjestelmän luomisen ajaksi, ja ennen kaikkea löytää nykyisestä järjestelmästä kaikki siitä opittavissa olevat opit.

Asiakas toki toivottavasti ehkä kenties ymmärtää omistamansa järjestelmän tarkoituksen, mutta laajat ja iäkkäät sovellukset sisältävät poikkeuksetta dokumentoimattomia yksityiskohtia, rajatapauksia ja odottamattomia sääntöjä. Hyvällä tuurilla vanhasta voi pelastaa osia, tai sitä voi käyttää referenssinä vielä käytöstä poistamisen jälkeenkin.

That being said

Suhteessa juveniili alamme aikuistuu reipasta tahtia, ja hyväksi havaitut menetelmät ovat entistä paremmin rakkaiden kollegoidemme käytössä. Kotitekoisia pommeja tulee vastaan yhä harvemmin, ja haltuunoton motivaationa onkin yhä useammin kokonaisvaltaisempien tai muuten joustavampien työtapojen käyttöönotto.