Ohjelmistokehitysprojektin osa-alueet

Ohjelmistokehitys on yleisenä teemana kovinkin selkeä. Tietty sovellusidea suunnitellaan ja sitten se toteutetaan luodun suunnitelman mukaan. Suunnittelu ja toteutus voi toki edetä osissa ja toisensa rinnalla, mutta perusidealtaan toiminta on selkeää. 

Ohjelmistokehityksen projektit pitävät kuitenkin sisällään useita eri osa-alueita, joilla on oma tarkoituksensa ja tarpeensa. Käymme tässä artikkelissa läpi näitä eri vaiheita, että mitä nämä yksittäiset osa-alueet pitävät sisällään.

Alla lyhyempänä listauksena ohjelmistokehitysprojekteihin kuuluvat osa-alueet:

1. Palvelumuotoilu ja prototyypit

Sitä ensimmäistä versiota tekemässä? Ehkä et tiedä vielä tarkkaan miltä valmis tuote näyttäisi? Jokainen sovellus lähtee liikkeelle ideasta ja halusta tehdä jotain uutta. Alkuvaiheessa kaikkien asioiden ei kuulukaan olla vielä selvillä. Sovelluskehityksen ensimetreillä auttaa palvelumuotoilu, liiketoimintamuotoilu sekä prototyypit ja käyttäjätutkimukset. Vaikka projekti voi alkaa erilaisilla muotoiluilla ja tutkimuksilla, voidaan kuitenkin koodaus aloittaa heti kun sille on edellytykset olemassa.

Liiketoimintamuotoilua varten valitaan aina tilanteeseen ja asiakkaan tarpeeseen sopivat työmenetelmät, mutta Lean Service Creation ja Business Model Canvas ovat meidän asiantuntijoidemme lempityökaluja. Työkalut tarjoavat viitekehyksiä, joiden ansiosta asiakkaan ei tarvitse olla asiantuntija. Riittää kun on idea, intoa ja pinkka kunnossa.

Palvelumuotoilulla tarkoitetaan yleensä ohjelmistojen ja sovellusten kehittämistä muotoilun menetelmin. Suunnittelijan tehtäviin kuuluu mm. asiakkaan nykytilan ja tarpeiden kartoitus, markkinatutkimus, suunnittelu, pilotointi ja lanseeraus sekä jatkuva kehittäminen palautteen perusteella.

Usein tehtäviä voidaan kuvataan esimerkiksi bullet-pointteina näin:

  • Tiedon kerääminen ja analysointi

  • Asiakaskokemuksen kehittäminen

  • Käyttöliittymä- ja käyttökokemussuunnittelu 

  • Palveluiden innovointi

  • Palvelupolun mallintaminen

2. Käyttäjäkokemuksen suunnittelu

“Sen täytyy olla helppokäyttöinen ja tosi simppeli ja sellanen, että sitä on kiva käyttää”

Toisinsanoen sen tulee tarjota hyvä UX eli käyttäjäkokemus.

Käyttäjäkokemuksen suunnittelu (tai UX-suunnittelu) tähtää tulosten saavuttamiseen. Tärkeintä on tuottaa ratkaisu, joka on käyttäjäkokemukseltaan mahdollisimman vaikuttava, tehokas käyttää ja tekee ennenkaikkea käyttäjästä tyytyväisen. 

Käyttäjäkokemuksen suunnittelu on yksi osa sovelluskehitysprosessia. Se on iteratiivista prosessi, jossa suunniteltavan tuotteen suunta tarkentuu sitä mukaan kun ymmärrys vallitsevasta tilanteesta laajenee. Käytännöntasolla tämä tarkoittaa sitä, että kun ymmärrys esimerkiksi tietyn käyttäjäryhmän tavoitteista, tarpeista ja mieltymyksistä paranee, kyetään tuotekehitystä viemään sellaiseen suuntaan, että se tarjoaa entistä paremman käyttäjäkokemuksen valitulle kohderyhmälle. Suunnitelmien tarkennus perustuu testaamiseen ja vuorovaikutukseen käyttäjien ja asiakkaiden kanssa.

Käyttöliittymäsuunnittelussa työkaluina käytetään käyttäjähaastatteluita, käyttäjätutkimuksia, Figmaa, Adobe XD:tä tai mitä vaan tilanteeseen soveltuvaa työkalua.

Työtehtäviä ja työntuloksia ovat mm:

  • Rautalangat

  • Käyttöliittymien leiskat

  • Toiminnalliset prototyypit

  • Käyttäjäpersoonat

  • Käyttäjätutkimukset

  • Käyttäjähaastattelut

  • Käyttäjän ja sovelluksen välisen vuorovaikutuksen suunnittelu

Lue lisää käyttäjäkokemuksen suunnittelusta artikkelistamme “Mitä on UX-suunnittelu?”.

3. Projektinhallinta ja ketteryysvalmentaja

Kuka tekee päätökset silloin kun tarjolla on vain huonoja vaihtoehtoja? Kuka kannustaa katsomaan leijonan kitaan? Tuoteomistajan apuna projekteissa voi olla ketteryysvalmentaja sekä projektipäällikkö. 

Kehitysprojektin, budjetin, aikataulun ja sidosryhmien hallinta ei ole helppoa. Kun projekti sisältää useita eri toimittajia ja satoja muuttujia paranevat onnistumisen mahdollisuudet merkittävästi kun tiimissä on mukana kokenut ketteryysvalmentaja tai projektipäällikkö. Vuosikymmenien kokemus hankkeista, projektinhallinnasta ja ketterästä valmentamisesta ovat osoittautuneet avaintekijöiksi ainakin meidän Haltun asiakkaiden onnistumisen taustalla.

Ketteryysvalmentaja valmentaa asiakasta ja tiimiä, joka soveltaa ketteriä menetelmiä omassa työssään. Projektipäällikkö auttaa pysymään aikataulussa, budjetissa ja projektin tavoitteissa.

Laaja kokonaisuus pitää kattaa esimerkiksi:

  • Projektien suunnittelu, toteutus ja valvonta

  • Ketterän tiimin ohjaaminen (esim. scrum master tai product owner –rooli)

  • Kokonaisvastuullinen projekti-/hankehallinta

  • Muutoshallinta ja muutosjohtaminen

  • Budjetti- ja aikatauluseuranta

  • Toimittajasuhteiden hallinta ja toimittajien työn johtaminen

  • Hankekokonaisuuksien koordinointi ja hallinnointi

  • Projektin ja projektisalkunhallinta sekä projektitoimistopalvelut

  • IT-projektien sisällöllinen valvonta, hallinta ja koordinointi

  • Tietojärjestelmäarkkitehtuurin valvonta, hallinta, koordinointi ja kehittäminen

  • Elinkaari-/kehitysskenaarioiden suunnittelu ja sparraus

4. Ohjelmistokehitys

“Tää on koodaamista vaille valmis”

Oli kyseessä sitten uusi äppi tai vanhan legacy-järjestelmän uudelleenkirjoittaminen, ei hommasta tule mitään ellei tiimistä löydy osaavaa koodaria. 

Ohjelmistokehitys jaetaan useimmiten kahteen osa-alueeseen: käyttäjälle näkyvään puoleen eli front-endiin ja taustapuolen asioihin eli backendiin. Front-end -ohjelmointi kattaa siis palvelun näkyvien rakenteiden, animaatioiden, asiakkaan käyttämien toimintojen ja muiden visuaalisuuksien luomista. Back-end -ohjelmointi vastaa taas kaikesta varsinaisesta logiikasta ja datan prosessoinnista, kun esimerkiksi uusi käyttäjä rekisteröityy palveluun tai palvelimelta pitää hakea tietoja.

Kustannustehokasta ja nopeaa kehitystyötä varten kannattaa olla olemassa myös valmis projektirunko, joka sisältää ohjeiston parhaista käytännöistä teknisten ongelmien ratkaisemiseksi ja tiimin toiminnan kehittämiseksi.

Ohjelmistokehityksessä voidaan hyödyntää myös avointa lähdekoodia, jonka ansiosta järjestelmien toteuttaminen voi olla edullista ylläpitää. Varsinaisten ohjelmistokomponenttien toteutuksen lisäksi kehitykseen voi sisältyä myös mm. liittymien ja rajapintojen toteutuksia, käyttöliittymien toteutuksia tai vaikkapa sovellukseen liittyvien tietokantaratkaisujen toteuttamista.

Usein eri palveluissa on myös tarve erilaisille integraatioille eli yhdistämisille eri palveluihin. Tällaisia integrointeja voidaan tehdä esimerkiksi maksujärjestelmiin, varastointiratkaisuihin tai muihin yrityksen keskeisiin hallinnointiohjelmistoihin, kuten CRM- tai ERP-järjestelmiin. 

Näin koodarin työtä voi kuvata:

  • Sovellussuunnittelutyöt

  • Ohjelmointi

  • Uusien sovellusten ja/tai sovelluskomponenttien toteutus

  • Tietokantatyöt

  • Sovelluskehitysprojektin hallinta

  • Integraatiosuunnittelu

  • Ohjelmistoratkaisujen räätälöinti

  • Integraatiototeutukset

  • Tietomallien suunnittelu

  • Järjestelmien käyttöönotto

  • Integrointi- ja tietovarastoratkaisujen suunnittelu, toteutus ja kehittäminen

5. Verkkopalveluiden ylläpito

Kun palveluita kehitetään asiakkaille, on niille hyvä tarjota myös säilytyspaikka internetistä. Tähän tarpeeseen vastaa ylläpitokokonaisuus, joka tuotetaan turvallisesti ja josta pidetään huolta säännöllisesti. Lisäksi ylläpitoratkaisun valinnassa tulee kiinnittää huomioita, että se kestää myös aikaa.

Tärkeänä osana palveluiden ylläpitoa on myös aktiivinen seuranta, joka poistaa huolehtimisen tarvetta asiakkaan päästä. Me esimerkiksi Haltulla seuraamme asiakkaidemme sovelluksien toimintaa ja otamme asiakkaaseen yhteyttä, mikäli jokin asia vaatii asiakkaan huomiota.

Ylläpitopalvelun aikana on myös mahdollista saada vikatilat nopeasti selville hyödyntäen automaattitestejä. Näin vikatilat voidaan huomata erittäin nopeasti niiden sattuessa ja niihin voidaan reagoida ja selvittää ne välittömästi. Usein tukipalvelut ovat sijoitettu toimistoajoille, mutta erilaisten SLA-tasojen avulla voidaan nopeuttaa vasteaikoja tai laajentaa tukea iltoihin tai viikonlopuille.

Näistä kiinnostutaan kun etsitään ylläpitokumppania:

  • Palvelinympäristöt

  • Ubuntu ylläpito

  • Monitorointi ja lokitus

  • Tukipalvelut ja tukikanavat

  • SLA-sopimukset eli palvelutasot

  • Tietoturvapäivitykset

  • Varmuuskopiot

Lisää ylläpitopalvelu Mielenrauhasta voit lukea täältä.

Loppusanat

Nyt tiedät enemmän, millaisia osa-alueita ohjelmistokehityksen projekteihin kuuluu. Jos kuva ohjelmistokehityksestä valkeni sinulle nyt tarpeeksi ja sinulla olisi idea sovelluksesta, jonka haluaisit toteutettavaksi, niin ole meihin toki yhteydessä.