HULA – auttaa resursoimaan sopivat asiantuntijat hankkeisiin

Voiko tiimi, joka ei ole koskaan tavannut livenä, saada aikaan toimivan lopputuotteen? Kyllä voi!

Varmuutta kohti

Niin dynaaminen kuin ohjelmistoala onkin, koronakriisi näkyi epävarmuutena meilläkin. Codeolla suunniteltiin parhaillaan maltillista kasvupolkua, kun maailma mullistui ja lamautti hetkellisesti myös ohjelmistokehitysmarkkinat. Niinpä haimme Business Finlandilta kehitysrahaa toiminnanohjauksemme kehittämiseen. Tavoitteeksi otettiin toteuttaa Codeolle uusi ratkaisu, joka parantaisi yrityksemme kykyä tuottaa palveluamme. Koska Codeon keskeinen arvo on läpinäkyvyys, päätettiin lopputulos jakaa avoimena lähdekoodina muidenkin hyödynnettäväksi.

Tästä projektista syntyi HULA-ratkaisu, jonka lähdekoodi on kaikkien saatavilla: https://github.com/CodeoOy/Hula

Projektin taustaa

Codeon toiminnanohjauksen kehitystarve oli tunnistettu jo ennen koronakriisiä, kun olimme miettineet toimintamme skaalautuvuutta. Kuten monet muutkin pk-yritykset, huomasimme kasvun myötä, ettei kaikkea enää voinut hoitaa manuaalisesti. Käytimme hajanaisia järjestelmiä ja moni asia toimi muistinvaraisesti. Lisäksi poikkeustilanteessa asiakaskysyntä laski radikaalisti, jolloin myyntiä täytyi tehostaa entistä enemmän.

Tämänkaltainen sisäinen, omaan tarpeeseen tuleva kehitys on pienille organisaatioille usein vain haave, joten mahdollisuus haluttiin ehdottomasti hyödyntää. Heti aluksi päätettiin, että tavoitteena on tehdä mahdollisimman monia tahoja hyödyttävä ratkaisu. Codeon perusajatuksena on olla edistämässä uudenlaista jakamisen kulttuuria, koska verkosto saa enemmän aikaan kuin yksittäinen toimija.

Projektin ideointivaiheessa havaittiin, että kehitysprojektissa on mahdollisuus toteuttaa monia eri asioita varsinaisen kovan koodaamisen lisäksi. Uskomme vahvasti yhteistyöhön ja päätimme pilotoida projektissa yritysyhteistyötä. Saimme kumppaniksemme Notkia IT:n vastaamaan projektin johtamisesta ja Giraffe Coden toimimaan ohjelmistoarkkitehtina.

Lisäksi ymmärsimme, että projekti on oiva mahdollisuus tarjota aloitteleville koodareille ikkuna kehitysprojekteihin. Codeo haluaa olla edistämässä nuorten ohjelmistokehittäjien työllistymistä, joten tiimiin haettiin kokeneen arkkitehdin ohjaukseen sekä työharjoittelija että työkokeilija. Lähtökohtana oli, että harjoittelijat voisivat projektin lomassa opetella ketteriä projektikäytäntöjä ja perehtyä ajan kanssa uusiin aihealueisiin.

Projekti päätettiin toteuttaa ketteränä kehitysprojektina (agile development) hyväksi havaitun sprinttimallin mukaisesti. Projekti roolitettiin perinteisen scrum-mallin mukaan, joten tuoteomistajina toimivat ensisijaiset loppukäyttäjät, eli Codeon ja Notkian liiketoimintavastaavat.

Hula-projekti toteutettiin 100% etätyönä: tiimin keskeiset jäsenet eivät tavanneet kertaakaan projektin aikana (eikä sitä ennenkään). Projekti on erinomainen esimerkki siitä, että ketterää projektia, työharjoittelua ja työkokeiluakin voi tehdä etätyönä, kun välineet ja asenne ovat kunnossa.

Ideointia ja haaveita automaatiosta

Alusta lähtien oli selvää, että pienen, mutta kasvavan yrityksen operatiiviseen pyörittämiseen tarvitaan automatisoituja apuvälineitä. Niinpä projektia alettiin kutsua ERP-projektiksi, vaikka tiedossa oli, ettei varsinaista ERP-järjestelmää voidakaan toteuttaa. Tarvemäärittelyä tehtiin tiimin voimin pari kuukautta, ja samalla käytiin myös erilaisia valmisratkaisuja läpi. Codeo ja Notkia IT olivat siihen saakka muistinvaraisesti yhdistelleet vapautuvia asiantuntijoitaan ja tulevaisuudessa alkavia asiakashankkeita eli ”mätsänneet”, niitä toisiinsa. Bisneksen kasvaessa oli selvää, ettei hallintaa voinut enää tehdä ilman apuvälineitä.

Lopputulema oli, että erilaisia (ja hyviäkin) yritysdatajärjestelmiä oli saatavilla, mutta kaikista tuntui puuttuvan konsultointibisnekselle olennainen ratkaisu: miten saadaan konsulttien osaaminen ja asiakkaiden projektien vaatimukset kohtaamaan? 

Miten Hula rakennettiin

Kun ydinkysymys oli selvitetty, ryhdyttiin suunnittelemaan itse järjestelmää. Ideointiin ja tarvekartoitukseen panostettiin kunnolla, jotta päästiin jyvälle, mitä tarpeita ratkaisun tulisi täyttää. Näin syntyi Hula.

Projektitiimi halusi toteuttaa taustajärjestelmistä riippumattoman työkalun, joka yhdistää saatavilla olevan osaajadatan saatavilla oleviin projektivaatimuksiin. Taustadata voi tulla eri paikoista, ja esimerkiksi Notkia IT:llä ja Codeolla on eri järjestelmät käytössään. Ideana on, että kaikki data kootaan näkyville yhteen paikkaan, joten taustajärjestelmät on hyvä laittaa kuntoon samalla.

Hula tarjoaa helpon tavan suorittaa erilaisia projekti- ja asiantuntijahakuja. Yritysten vastuuhenkilöt saavat selkeästi näkyville projektien tarpeet sekä osaajien taidot ja aikataulut. Lopputuloksena voidaan tarjota asiakkaalle sopivia ja vapaana olevia osaajia tehokkaasti ja oikea-aikaisesti. Uuden asiantuntijan tullessa on helppo tarkistaa, mitä projekteja on tarjolla, ja vastaavasti voidaan helposti listata vapautuvat asiantuntijat asiakkaan projektitiimien muodostamiseen.

Hula on toteutettu moderneilla tekniikoilla. Ohjelma ja serveri on koodattu Rustilla, joka on nouseva systeemistason ohjelmointikieli ja erittäin luotettava sekä nopea vaihtoehto palvelimeksi. Rust on kuitenkin nuoresta iästään johtuen myös vähemmän tunnettu ja toisinaan haasteeksi nousi avun löytäminen, mutta mm. koodiklinikka oli monella tapaa avuksi. Frontend on koodattu Vuella, joka on Reactiin nähden vähemmän tunnettu, mutta erittäin hyvin dokumentoitu ja pidetty ohjelmistokehys.

Mitä jäi käteen? Vaikka ja mitä!

Kuten projektitiimin videoterveisistä voi päätellä, projektista saatiin Hulan lisäksi monia upeita kokemuksia.

Lopputuloksena Codeolla ja Notkia IT:llä on käytössään ratkaisu, jonka avulla kasvavia tietomääriä voidaan hallita. Samalla myös yritysten perusprosessit tuli käytyä läpi, joten tehostumista saatiin aikaiseksi monella tapaa.

Myös yritysyhteistyön tekemistä voimme tämän kokemuksen perusteella lämpimästi suositella. Projekti on tarjonnut monenlaisia synergiaetuja ja kokemuksia vertailemalla on havaittu, että ongelmat ovat hyvin pitkälle samanlaisia, joten yhden keksiessä ratkaisun, kannattaa tietoa ehdottomasti jakaa muillekin. Läpinäkyvyys hyödyttää kaikkia!