Apprixin Builder-oppimisjärjestelmä on yhtäaikaisesti käytössä kymmenillä asiakkailla, sadoissa koulutuksissa ja tuhansilla käyttäjillä. On selvää, että eri tahoilla on toisistaan hyvinkin erilaisia tarpeita ja toiveita Builderin kehittämisen suhteen. Tämän kirjoituksen tarkoitus on avata ja kertoa vähän, miten Apprixissa hoidetaan tuotekehitys niin, että kaikkien toiveet pystytään täyttämään mahdollisimman hyvin.

Apprixin Builder-jär­jes­telmä on tehty niin, että sen avulla voidaan toteuttaa hyvin monen­laisia säh­köisiä kou­lu­tuksia, ja kaikki toi­minnot ovat käy­tet­tä­vissä verk­ko­se­laimen avulla. Samassa ohjel­mis­tossa tulee siis olla eri käyt­tä­jillä käy­tössään todella paljon eri­laisia toimintoja. 

Builder-jär­jes­telmän kehit­tä­misen perus­pe­ri­aat­teena on, että:

  • Olemme läh­tö­koh­tai­sesti val­miita toteut­tamaan jär­jes­telmään mitä tahansa asiakkaan toiveita.
  • Kaikki yleis­käyt­töiset toiveet pyritään toteut­tamaan niin, että näitä pys­tytään tar­joamaan käyttöön kai­kille muil­lekin Buil­derin käyttäjille.

Edellä mai­nitut peri­aatteet eivät ole mitenkään itsestään selviä, eikä kaikki SaaS (Software as a Service) -pal­ve­luita tar­joavat yri­tykset suinkaan toimi näin. Olisi esim. huo­mat­ta­vasti hel­pompaa toimia niin, että ohjel­mistoon ei koskaan tehdä mitään asia­kas­koh­taisia rää­tä­löintejä, vaan että ohjel­mis­tosta on ole­massa vain yksi ja ainoa versio ja se on tis­malleen saman­lainen kai­kille (tämä on itsea­siassa hyvin yleinen toi­min­tatapa: vai oletko kuullut, että joku olisi saanut vaikkapa Mic­ro­sof­tille läpi rää­tä­löityjä toi­veitaan Office 365:sta löy­tyviin teks­tin­kä­sittely, tau­luk­ko­las­kenta yms. ohjelmistoihin).

Ylä­tason tavoit­tei­tamme Buil­derin rää­tä­löin­ti­mah­dol­li­suuksiin liittyen ovat mm.:

  • Builder on helppo käyttää sekä kou­lu­tusten suun­nit­te­li­joille, että niihin osallistuville. 
    • Help­po­käyt­töi­syyden tavoit­teesta pidetään kiinni, vaikka Buil­de­rissa on paljon eri­laisia toimintoja.
  • Kou­lu­tuk­sissa pys­tytään käyt­tämään sel­laisia sisältöjä ja har­joi­tuksia, jotka pal­ve­levat oppi­mista mah­dol­li­simman hyvin.
    • Eri­laisiin oppi­mis­ti­lan­teisiin voidaan tarvita esim. hieman toi­sistaan poik­keavia harjoitustehtäviä.
  • Kou­lu­tukset ovat graa­fi­selta ilmeeltään tilaa­jiensa toi­veiden mukaisia.
    • Graa­fisen ilmeen rää­tä­löinti tar­koittaa sitä, että kou­lu­tus­ma­te­ri­aa­leissa käy­tetyt värit ja kir­ja­simet, sekä kuva-aineistot ovat asiakkaan oman ilmeen mukaisia.

Samalla kun tar­jou­dumme muok­kaamaan oppi­mis­jär­jes­telmää hyvinkin pit­källe asiak­kaiden toi­veiden mukai­sesti, syntyy jär­jes­telmän kehit­tä­mistä kohtaan suuri joukko tois­tensa kanssa jopa ris­ti­rii­taisia toi­veita. Pys­tyäk­semme hal­lin­noimaan tätä toi­veiden tulvaa, on tuo­te­ke­hi­tyk­semme jaettu vas­tuiltaan kolmeen eri vaiheeseen:

1: Vaa­ti­mus­ten­hal­lin­nalla tar­koi­tetaan tii­vistäen sitä, että keräämme kaikki eri läh­teistä tulevat ideat samaan “toi­veiden tyn­nyriin” (Feature back log). Kehi­ty­si­deoita voi tulla yhtä hyvin sekä asiak­kail­tamme, että itsel­tämme, ja ne saat­tavat koskea joko uusia toi­veita jär­jes­telmän suhteen, tai vali­tet­ta­vasti välillä löytyy myös bugeja/​epäloogisuuksia, joita tar­vitsee muuttaa/​korjata. Käymme kehi­ty­sideat läpi ja prio­ri­soimme ja suun­nit­te­lemme niiden toteu­tus­rytmin. Kor­keim­malle prio­ri­tee­tille nousevat kii­rei­simmät toiveet, ja toi­saalta monesti useita samaan aihe­piiriin liit­tyviä toi­veita on teho­kasta toteuttaa samalla kertaa. Vaa­ti­mus­ten­hal­linnan tavoit­teena ja lop­pu­tu­loksena on huo­lehtia, että kehit­tä­jil­lämme on selvät sävelet siitä, mitä asiaa aletaan edis­tämään seuraavaksi.

2: Yksit­täisten kehi­ty­si­deoiden toteut­ta­mi­sesta Apprixilla vastaa tiimi ohjel­mis­to­ke­hi­tyksen huip­puo­saajia. Toteu­tuksiin kootaan tapaus­koh­tai­sesti sopiva kokoonpano niin tek­nisen ark­ki­teh­tuurin, käyttökokemuksen/​käyttöliittymien, graa­fisen ilmeen, peda­go­giikan kuin tek­nisen toteu­tuksen ja tes­taa­misen osaajia. Tiimi huo­lehtii, että toteu­tettava koko­naisuus vastaa toi­min­nal­lista tar­vettaan, on helppo käyttää ja toi­saalta integroituu luon­te­vasti osaksi jär­jes­telmän muita toimintoja.

3: Kun uuden toi­minnon toteutus on valmis, huo­lehtii jul­kai­sujen hal­linta siitä, että toi­minto tulee hal­li­tusti osaksi Builder-jär­jes­telmää. Tässä yhtey­dessä var­mis­tetaan vielä, että kaikki Buil­deriin tehtävä koodi on toteu­tettu niin, että se nivoutuu osaksi muuta koodia. Koo­dista tar­kis­tetaan esi­mer­kiksi, että siinä nou­da­tetaan yhtei­sesti mää­ri­teltyjä tie­to­turvaan liit­tyviä käy­täntöjä ja var­mis­tetaan, ettei ohjel­miston eri osissa esim. toteuteta eri tavoin hyvin saman­laisia tarpeita.


Lop­pu­tu­loksena aset­ta­mis­tamme tavoit­teista, asiak­kail­tamme tul­leista toi­veista ja sel­keästä tuo­te­ke­hi­tys­pro­ses­sista olemme onnis­tuneet pää­semään tilan­teeseen, jossa Builder on yhtä aikaa sekä jokaisen asiaan tar­peisiin rää­tä­löity yksi­löl­linen jär­jes­telmä, että toi­saalta kaikki asiak­kaamme pää­sevät hyö­tymään jat­ku­vasti tapah­tu­vasta tuotekehityksestä. 

Tavoit­tee­namme on, että meillä on joka hetki käyn­nissä muutama suu­rempi kehi­tys­hanke, joissa toteu­tetaan jär­jes­telmään joitain kokonaan uusia toi­min­nal­li­suuksia. Suu­rempien kehi­tys­hank­keiden lisäksi yhtä­ai­kai­sessa kehi­tyk­sessä on tyy­pil­li­sesti joitain kym­meniä pie­nempiä yksit­täisiä toiveita/​ideoita. Tai­tavien ja tehok­kaiden kehit­täjien, sekä selkeän tuo­te­ke­hi­tys­pro­sessin ansiosta Buil­deriin jul­kais­taankin läh­tö­koh­tai­sesti joka viikko jotain uutta: joko pie­nempiä paran­nuksia, tai isompia uusia toi­mintoja. Näistä tuo­te­ke­hi­tyksen hedel­mistä pääse naut­timaan koko asiakaskuntamme.

Ter­ve­tuloa mukaan käyt­tämään tar­peittesi ja toi­veittesi mukaista säh­köistä oppimisjärjestelmää!

-

Kirjoittaja

Antti Rasi

Kir­joittaja on Apprixissa mukana mm. tuo­te­ke­hi­tys­pro­sessin kehit­tä­mi­sessä sekä ark­ki­teh­tuurin ja uusien toi­min­tojen suunnittelussa.