Hallittu sovelluskehitys ja sovellusten julkaisu Qlikillä, osa 1

/ Arto Nimander


Sovelluskehitys Qlikillä on nopeaa ja ketterää. Kehitys tapahtuu usein iteratiivisesti ja monesti nälkä myös kasvaa syödessä. Riskinä voi tällöin olla määrittelyjen tekeminen ”lennossa”, jolloin pahimmillaan tehdään samoja asioita uudelleen, kun määrittelyt muuttuvat. Toinen sudenkuoppa voi olla kokonaisuuden laajeneminen enemmän tai vähemmän hallitsemattomasti, jolloin sovelluksen julkaisu siirtyy koko ajan eteenpäin.

Hallittu kehitysprosessi tuo tekemiseen tehokkuutta ja varmistaa investoinnin hyödyntämisen, kun loppukäyttäjille saadaan päätöksenteon tueksi oikeaa tietoa helppokäyttöisessä muodossa. Myös sovellusten ylläpito ja muutoksenhallinta helpottuvat, kun prosessi on alusta asti ollut hallittu ja sovittuja periaatteita on noudatettu.

Ennen kuin tarkastellaan itse kehitysprosessia, on syytä vilkaista perustaa ja sen rakennuspalikoita. Yksi perustan kulmakivistä on organisoituminen ja siihen liittyvät selkeät roolit ja vastuut. Kehityshankkeista päättäminen ja hankkeiden priorisointi pitäisi olla selkeästi valtuutettu yhdelle taholle. Näin saadaan vietyä hankkeita läpi ohjatusti ilman ”kuka huutaa kovimmin” välistävetoja. Työn aikana tulee myös aina tilanteita, joihin pitää reagoida nopeastikin. Tällöin sekä asiakkaan että toimittajan puolelta hankkeita pitää aktiivisesti seurata ja ohjata tehden päätöksiä esimerkiksi resursointiin liittyen. Tärkeää on myös sopia sovelluskehityksessä noudatettavista periaatteista kuten sovellusarkkitehtuurista, käyttöliittymämalleista, nimeämiskäytännöistä jne. Tekemistä helpottavat myös erilaiset vakioidut dokumenttimallit ja muut mahdolliset työkalut.

Itse kehitysprosessin eri vaiheiden osalta on hyödyllistä miettiä kriteereitä etenemiselle. Laatuporttien ajatus on, että seuraava vaihe ei lähde liikkeelle ennen kuin laatuportin kriteerit on täytetty. Tällä varmistetaan, että tekeminen on tehokasta kehityksen kaikissa eri vaiheissa.

Blogin toisessa osassa käsitellään varsinaista sovelluskehitysprosessia ja sovellusten ylläpitoa.