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
Uusien sovellusten ja/tai sovelluskomponenttien toteutus
Tietokantatyöt
Sovelluskehitysprojektin hallinta
Integraatiosuunnittelu
Ohjelmistoratkaisujen räätälöinti
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ä.