Uusi kehitettävä järjestelmä
Kehitysprojektin edetessä ja tilitoimiston nykyisten kankeiden työprosessien käytyä ilmi, päädyin siihen, että toiminnan tehostamiseksi ja parantamiseksi toimivin sekä helpoin ratkaisu on kehittää tilitoimiston tarpeisiin soveltuva tehtävienhallinnan järjestelmä. Järjestelmä tulisi olemaan tietokantapohjainen ja selainkäyttöinen sekä mahdollisimman helppokäyttöinen työkalu päivittäiseen työskentelyyn. Uuden ratkaisun myötä ja yhden järjestelmän avulla, tilitoimisto voi tarjota jatkossa asiakkailleen aidosti sähköisiä taloushallinnon palveluja, jotka vastaavat hyvin pitkälle tulevaisuuden tarpeisiin.
Teknisesti järjestelmän rakentaminen on selkeää, mutta vaatii ennen toteutusta yksityiskohtaisen tietojärjestelmäsuunnittelun, joka voidaan toteuttaa opintoihini liittyvänä erillisenä projektina tai opinnäytetyönä. Tehtävienhallinnan järjestelmältä vaadittavien ominaisuuksien perusteella, olen hahmotellut vaatimukset täyttävän tehtävänhallinnan järjestelmän alustavaa tietokantarakennetta tutkinut rajapintoja teknisten mahdollisuuksien sekä rajoitteiden tunnistamiseksi. Myös asiakasviestinnän hoitaminen uudesta sovelluksesta käsin on edellyttänyt alustavia tutkimuksia. Teknisesti toteutukselle ei ole esteitä.
Tekniset tiedot
Alkuvaiheessa kehitettävä ratkaisu toimisi yhtenä palveluna hyödyntäen valmiita palveluita mm. tietokantoihin ja sähköpostipalvelimiin liittyen. Mikäli kehitysvaiheessa ilmenee, että se rakentuu selkeästi erillisistä osioista, voidaan ne irrottaa omiksi palveluikseen. Järjestelmä pystytetään omille virtuaaliservereille, joilla se pyörii Docker-konteissa. Docker-alustalla toimiminen helpottaa skaalautuvuutta, jolla en tässä tarkoita samaa kuin useimmissa webbipalveluissa, joissa käyttäjämäärän lisääntyminen koetaan tärkeimmäksi syyksi skaalautuvuudelle. Tehtävienhallintajärjestelmän käyttäjämäärä ja käyttö on rajattua, ja skaalautuminen on tärkeää lähinnä tavoitettavuuden ja ylläpidon kannalta. Mikäli samasta palvelusta on käytössä yhtä aikaa useampia kopioita, voidaan esimerkiksi kriittiset päivitykset tehdä ilman että loppukäyttäjien palvelun käyttö keskeytyy.
Kaikki palvelut tehtäisiin ”cloud native” -tekniikoilla, jotta ne ovat vietävissä sellaisenaan yleisimmille pilvialustoille. Järjestelmän ydintoimintojen toteutus tapahtuisi Javalla ja Spring Frameworkilla, joilla tällaisten sovellusten tuottaminen on vaivatonta. Muita teknologioita voidaan ottaa käyttöön tarpeiden mukaan. Järjestelmän kehityksessä pyritään käyttämään valmiita avoimen lähdekoodin komponentteja ja palveluita, eli ei yritetä keksiä pyörää uudelleen, vaan keskitytään yrityksen toiminnan kannalta tärkeiden toiminnallisuuksien kehittämiseen. Yrityksen olemassa olevia palveluita, eli Office365 yms., voidaan hyödyntää käyttäjienhallinnassa ja autentikoinnissa.
Tallennettavat tiedot tulevat olemaan rakenteeltaan yhtenäisiä ja hyvin määriteltyjä, joten suunnitelman mukaiseen palveluun paras tallennusratkaisu on relaatiotietokanta. Tietokannaksi olen alustavasti valinnut PostgreSQL:n, koska sen käytöstä ja ylläpidosta on kokemusta ja se laajentuu tarvittaessa myös dokumenttitietokannaksi. Tietokannan tyyppi ei sinänsä ole tärkeää, koska sen suuntaan tehtävä rajapinta on vaihdettavissa käyttämään muita tietokantatyyppejä, mikäli tarpeen. Tällainen tarve voi tulla esimerkiksi, jos jo aluksi tai myöhemmässä vaiheessa halutaan siirtää palvelu pilvialustalta ja -palveluntarjoajalta toiseen, eikä siellä tarjolla ole valmiina kyseisen tyyppistä tietokantaa. Redis-dokumenttitietokantaa käytetään käyttäjäistuntojen aikaiseen tallentamiseen ja senkaltaisen tiedon jakamiseen järjestelmän eri palveluiden välillä. Tämä tieto säilytetään ainoastaan muistissa ja se poistetaan, kun se tulee tarpeettomaksi, esimerkiksi käyttäjän uloskirjautumisen yhteydessä.
Tietokantarakenne mahdollistaa tehtävien vapaan kategorisoinnin ja luokittelun tilitoimiston vaatimusten ja käytännön tarpeiden mukaan heidän itsensä toimesta niin, että tietoja voidaan hakea niiden perusteella. Tietokantahakuja voidaan lisäksi rajata myös muiden tietojen, kuten henkilöiden, asiakasyritysten, laskutettavien tietojen ja ajanjaksojen mukaan. Tietokantaan tallennetut tiedot ovat hyödynnettävissä raportoinnissa ja liittymärajapinnoissa, joista esimerkkinä tilitoimiston laskutus. Laskutus tapahtuu käytännössä siten, että yrittäjä suorittaa tietokantahaun laskutettavista tehtävistä valitsemillaan kriteereillä ja laskut siirtyvät nappia painamalla API-rajapinnan kautta tilitoimiston omassa käytössä olevaan Procountor-tietokantaan, josta laskut lähtevät asiakkaille. Procountorissa voidaan nykyisin tarkastella kerrallaan vain yhtä asiakasyritystä ja sen yksittäisiä toimintoja. API-rajapinnan kautta voidaan jatkossa hakea samaan näkymään kaikkien asiakasyritysten halutut tiedot ja esittää ne kokonaisuutta selkiyttävänä yhteenvetona tilitoimiston toiminnan helpottamiseksi.
Aikataulu
Tehtävienhallinnan järjestelmän kehittäminen tulisi porrastaa sopiviin vaiheisiin siten, ettei kehitystyö rasita tarpeettomasti tilitoimiston henkilökuntaa.
Tietojärjestelmäsuunnittelu voidaan toteuttaa opintoihini liittyvänä projektina kesällä 2018, jonka jälkeen yksityiskohdat ovat selvillä, jotta niiden perusteella voidaan pyytää tarjous toteutuksesta, mahdollisesti myös jossain määrin osana opintojani. Varsinainen ohjelmistokehitys voitaisiin näin ollen aloittaa syksyllä 2018.
Käytännössä ohjelmistotyön kehitysaikataulu tarkentuu sen jälkeen, kun järjestelmän ensimmäinen demoversio valmistuu ja järjestelmän tulevilta käyttäjiltä saadaan lisätietoja. Tässä vaiheessa näkemykseni on, että varsinainen ohjelmistokehitys tulisi vaiheistaa ainakin kahteen osaan, jotka on mahdollista toteuttaa loppuvuoteen 2018 mennessä siten, että vuodenvaihteen jälkeen vuonna 2019 tilitoimistolla olisi käytössään uusi tehtävienhallinnan osio ja Procountorin API-rajanpinnan kautta saatavat tiedot seuraavia kevätkiireitä helpottamaan.
Asiakasviestinnän osuus voidaan jättää viimeiseksi ja toteuttaa vasta kesällä 2019, mikäli se aiemmin toteutettuna ja kiireiseen kevätkauteen ajoittuvana kehitysvaiheena tulisi vaatimaan tilitoimiston henkilökunnalta resursseja.
Kehitystyön hyödyt
Varsinaiset taloudelliset ja toiminnalliset hyödyt tulevat esille tässä kehitysprojektin toisessa vaiheessa, jossa uusi järjestelmä tehostaa työprosesseja ja säästää sitä kautta merkittävän määrän työntunteja. Samalla koko yrityksen toiminta selkiytyy sekä laadukkaiden ja virheettömien palvelujen tuottaminen asiakkaille on nopeampaa ja vaivattomampaa. Merkittävimmät työn tehostumisen hyödyt ovat yrittäjältä vapautuvat työtunnit, jotka mahdollistavat aiempaa nopeamman laskutussyklin lisäksi yrityksen kehittämistoimet sekä kokonaan uudet liiketoiminnan tuotot.
Maltillisesti laskettuna voidaan olettaa, että laskutettavien työtuntien (70 €/h) määrä lisääntyy jokaisena kuukauden työpäivänä (21,5 pv) kaksi tuntia, joka tarkoittaisi yrityksen liikevaihdon kasvavan vuosittain noin 36 000 eurolla (2 h x 70 €/h x 21,5 pv x 12 kk).
Kustannukset
Tietojärjestelmän suunnittelu voidaan toteuttaa oppilastyönä. Muilta osin uuden tehtävienhallinnan järjestelmän kustannukset muodostuvat kehitystyöstä ja ylläpidosta ja ne lasketaan niin, että takaisinmaksuaika on enintään viittä vuotta. Yrityksille on lisäksi olemassa erilaisia tukimuotoa, esimerkiksi tähän tarkoitukseen hyvin soveltuvia kehittämisavustuksia, joiden avulla takaisinmaksuaika voi pienentyä jopa puoleen.
Kolmannen osapuolen kehityskustannukset eivät ole tässä vaiheessa tiedossa, mutta arvioni mukaan ne ovat mahdollisia tukimuotoja huomioimatta on noin 25 000 euroa. Kustannukset muodostuvat vähitellen kehitystyön edetessä ja ne voidaan rahoittaa tulorahoituksella. On selvää, että tehtävienhallinnan järjestelmän kustannukset määräytyvät suunnittelutyön edetessä ja käyttäjien määrittelemien lopullisten ominaisuuksien mukaan.