Aihearkisto: Projektihallinta

TKrekryn kehityksestä ja tekniikasta

Julkaisimme TKrekryn lähdekoodit viime viikolla avoimena GitHubiin ja tämän kepin johdosta bloggaaja on ajettu taas sorvin ääreen. Valotan seuraavassa Tkrekryn toimintaa tekniseltä näkökantilta ja jaan joitakin havaintoja mitä matkalla tehtiin.

Teknologiavalintoja ja arkkitehtuuria

Ennen kuin päätös TKrekryn uudistamisesta oli tehty, olimme Jaakon kanssa puntaroineet jo useaan kertaan sitä miten mahdollinen tuleva sivusto kannattaisi tehdä. Edellinen sivusto oli toteutettu Ruby on Rails pohjaisen Radiant CMS:n päälle, jonka kehitys näytti jossain vaiheessa kuolevan kasaan ja mm. tästä syystä sivuston teknologiapinon päivittäminen oli joka kerralla entistä haastavampaa. Vuosien saatossa asiakas ei ollut juurikaan käyttänyt julkaisujärjestelmää, vaan sisällön päivittäminen sivustolle oli ollut käytännössä HTML:ää puhuvan allekirjoittaneen heiniä. Koska ylläpitomalliin ei ollut näköpiirissä muutoksia, olimme epäluuloisia sen suhteen kannattaisiko uutta sivustoa rakentaa lainkaan valmiin julkaisujärjestelmätuotteen varaan. Tarvetta sisällönmuokkauskäyttöliittymälle ei olisi ja rajoittaisiko valmis softa liikaa käsiä vai taipuisiko se kustannustehokkaasti meidän ja käyttäjien tarpeisiin? Toinen kysymys oli se että, jos uutta sivustoa lähdettäisiin tekemään meidän voimin, niin haluaisimmeko edes vai tekisimmekö sivuston ns. skrätsistä.

En hetkeäkään epäile etteikö sivustoa olisi voinut toteuttaa valmiilla softalla ulkoisesti sellaiseksi, kuin millaisena se elokuussa julkaistiin. Näin varmasti olisi tehtykin, jos päivätöinämme toteuttaisimme sivustoja WordPressillä, Drupalilla tms., koska työ olisi tietenkin ollut nopeaa ja alustan mahdollisuudet ja rajoitteet hyvin tiedossa. Meillä sen sijaan olisi ollut useamman päivän tutkimusmatka edessä selvittääksemme miten valitulla alustalla toteutus olisi kannattanut tehdä sen parhaita kehitys- ja laajennoskäytäntöjä noudattaen.

Skrätsistä tehdyssä sovelluksessa kiehtoi mahdollisuus oppia uutta ja vapaat kädet tehdä parhaalla katsomallaan tavalla. Työn tuottavuus ei mielestämme ollut ongelma, koska jokaiseen tarpeeseen mitä tulisimme keksimään löytyy jonkinlainen avoimen lähdekoodin kirjasto mitä hyödyntää. Toisaalta tuottavuusriski piilee siinä, että kuinka montaa kirjastoa pitää kokeilla ennen kuin löytyy sopiva käsillä olevan ongelman ratkaisemiseksi. Sitten kun saimme tiedon siitä, että lähdetään uudistamaan sivustoa näillä käsillä, niin valinta alustan suhteen olikin jo oikeastaan tehty. Syteen tai saveen, skrätsistä tehdään. Projekti oli käytännössä kiinteähintainen, joten me tekijöinä kantaisimme riskin valintojemme seurauksista.

Lähtökohtamme toteutuksen arkkitehtuuriin oli se, että julkinen sivusto ja työpaikkailmoitusten jättämiseen työnantajien käyttämä ylläpitokäyttöliittymä erotetaan toisistaan kokoaan. Näin muutosten tekeminen yhteen ei olisi turhan riippuvaista toisesta ja päivittäminen sekä jatkokehitys olisi sujuvampaa ja riskittömämpää. Julkinen sivusto tulisi olemaan kasa staattisia tiedostoja (ilman tietokantaa), jotta se olisi mahdollisimman nopea ladata. Julkisen sivuston generointi ja työpaikkailmoitusten julkaisu ja ylläpito tultaisiin rakentamaan Node.js sovelluksina. Tietokannan virkaa toimittaisi MongoDB, jota käytettäisiin JSON rajapinnan kautta. Sovellukset hostattaisiin edelleen Herokussa, josta julkinen sivusto generoitaisiin tietyin väliajoin Amazon S3:een. Tulevaisuudessa mahdollisesti tehtävä työpaikkavahti rakennettaisiin MailChimpin / Mandrilin varaan.

Seuraavassa kuvassa on UX-suunnittelijan näkemys TKrekryn arkkitehtuurista. En tiedä millaisen kuvan kehittäjä piirtäisi.

TKrekryn tekninen arkkitehtuuri 2014

Backend kehityksestä

Terveyskeskusten ylläpitokäyttöliittymä päätettiin toteuttaa ns. single page JavaScript-sovelluksena, kuten nykyään on muodikasta. Alustava ajatus oli käyttää kehyksenä Ember.js:ää, mutta ensimmäisten kokeilujen jälkeen vaihdettiin Angular.js:ään. Vaihto tehtiin koska todettiin, että Ember.js:ää ei osattu riittävän syvällisesti eikä sitä ehditty projektin puitteissa opiskelemaan. Ennestään tutulla Angularilla saatiin tuottavammin tulosta aikaan. Itse node.js:n päälle tehtävää työsarkaa vähennettiin käyttämällä Express.js kehystä, joka teki MongoDB:tä tietokantana käyttävän REST-palvelun kehittämisestä suoraviivaista ja helppoa. REST-palveluun kirjoitettiin kattavat testit Mocha:n ja Chain avulla ja testipatteria täydennettiin tekemällä vähän end-to-end testejä Protractor:lla. Suurimmat haasteet ylläpitotyökalun toteutuksessa liittyivät IE8:n tukemiseen (josta lisää tuonnempana).

Staattisen sivuston generointiin otettiin avuksi JavaScript:llä kirjoitettu Docpad, jolla noin lyhyesti sanottuna voi generoida kaikenlaisia dokumentteja. Docpad:n laajennukset kirjoitettiin CoffeeScriptillä ja sivupohjat koottiin Jadea hyödyntäen. Docpadissa on paljon hyvää ja valmista, mutta näin jälkikäteen tunteemme sitä kohtaan ovat ristiriitaisia emmekä ole aivan varmoja oliko sen käytöstä enemmän hyötyä vai haittaa. Ensinnäkin työkalussa tuntuu olevan jokin suorituskykyyn liittyvä ongelma, joka johtaa muistin vuotamiseen. Tämän johdosta sovellus pitää välillä uudelleenkäynnistää. Toisekseen Docpadin dokumentaatio jättää toivomisen varaa mm. esimerkkien puuttuessa. Lahjoitimme projektille kuitenkin kokonaiset $7, joten odotukset olivat korkealla 😛

Ideaalimaailmassa heittäisimme Docpadin todennäköisesti roskiin ja tekisimme sivuston generoinnin jotenkin muuten.

Kehitykseen luonnollisesti liittyi keskustelu kehitysympäristöistä jne. ja koska kuulemma Windowsilla ei voi tehdä mitään aikuisten töitä, niin allekirjoittanut käytti projektin ajan “sujuvasti” Nitrous.io kehityspurkkia. Palvelun kautta saa pytyn käytiin muutamalla klikkauksella, mutta se on sitten oma keskustelunsa voiko niillä tehdä oikeasti vakavaa kehitystyötä. Tässä tapauksessa purkki oli minun käyttöön riittävä, mutta johtuen mm. sivuston generoinnin muistinkäytöstä, piti purkista maksaa vähän rahaa. Puolen vuoden aikana palvelu taisi olla kerran pois linjalta ja ihan ymmärrettävästä syystä ks. kuva alla.

Nitrous down OpenSSL (Heartbleed)

Frontend kehityksestä

Kun aloitin kokopäivätyöt alalla 2007, oli Web 2.0 vouhotus käynnissä. Ajax oli myyntisanana keksitty pari vuotta aikaisemmin ja jQuerya oli kehitetty vuoden ajan. IE6 oli valtaselain ja Firefox edusti edelleen kaikkea uutta ja ihanaa. Facebookkiin suhtauduin skeptisesti (Miksi kukaan haluaisi ”mikroblogata” raportoiden arkielämästään julkisesti netissä?!?) ja aikajana näyttää lähinnä kaveripyyntöjä tuolta ajalta ja vähemmälti mitään sisältöä. Työnjako kehittäjän ja käyttöliittymäkaverin välillä oli melko selvä: Kaikki mikä ei ole HTML:ää, CSS:ää ja JavaScriptiä, kuuluu sille backend-tyypille. Eikä sillä JavaScriptillä silloin vielä mitään monimutkaista tehty. Käytetyt softa-alustat (Sharepoint mm.) toivat tullessaan enemmän valmista toiminnallisuutta kuin kukaan ikinä tulisi tarvitsemaan. Käytännössä siis se fronttikehitys minkä minä olen oppinut tuntemaan ja päässäni jäsentämään, oli ensisijaisesti asioiden laittamista näyttämään joltakin ja toissijaisesti niiden laittamista toimimaan jotenkin.

Tuosta ajasta maailma on muuttunut siinä mielessä, että JavaScript on nykyään vakavasti otettava ohjelmointikieli, eikä se enää määritä tapahtuuko kehitys edessä vai takana. Sekä etu- että takapää voidaan toteuttaa JavaScriptillä ja osa sovelluksesta voi olla palvelimella tai sitten se voi toimia kokonaisuudessaan selaimessa. Tämän johdosta front-end kehittäjän toimenkuvan määrittäminen on entistä vaikeampaa. Jos joku toimenkuvallinen raja pitää piirtää, niin mihin se piirretään? Olisiko se esim. HTML, CSS ja JavaScript mVc? Joku voisi kyseenalaistaa, että miksi moinen raja pitää olla olemassa? Eikö kehittäminen ole kehittämistä ja sillä selvä? Tähän vastaan, että tunnen kehittäjiä jotka eivät pitkällä tikullakaan koskisi CSS:ään, jos ei ole aivan pakko ja toisaalta en jättäisi edellä kuvatun arkkitehtuurin suunnittelua itseni harteille. Sitten päästään kysymykseen, että eikö sen graafisen suunnittelijan pitäisi tehdä ne CSS:t, johon vastaan… meistä on moneen veneeseen eivätkä kaikki osaa, ole hyviä tai halua tehdä kaikkea jne. Se on tärkeää, että kaikki projektin jäsenet ovat mukana tekemässä alusta loppuun, mutta siinä ei ole mitään järkeä että kaikki tekevät samoja asioita.

TKrekryssä mentiin tällä linjalla. Minä koostin käyttöliittymät ja Jaakko toteutti niiden toiminnallisuuden. Ylläpitosovelluksessa käyttöliittymä pohjautui Bootstrap CSS-kehykseen, josta oli merkittävä hyöty työn tuottavuudelle, koska näkymät koostuvat pääasiallisesti lomakkeista. Näiden tyylittäminen tyhjästä olisi ollut merkittävä ponnistus suhteessa projektin kokonaisbudjettiin. Yksinkertaisella julkipuolella en katsonut tarpeelliseksi turvautua Bootstrappiin. Projektin alussa oli jo hyvä haju siitä, että CSS:n määrä tulisi olemaan pieni, jolloin myös esiprosessoreiden tuomat tuottavuushyödyt jäisivät pieneksi. Tästä syystä päätin kirjoittaa puhdasta CSS:ää, jota kaiken kaikkiaan syntyi noin 1300 riviä.

Ylläpitosovelluksen toteutuksessa käytettiin Angularia ja muutamaa sen laajennosta mm. tiettyjen käyttöliittymäkomponenttien aikaan saamiseksi. jQueryä ei juuri käytetty muuten, kuin Bootstrapin komponenttien riippuvuuden takia ja senkin riippuvuuden voisi purkaa tulevaisuudessa, jos homma osoittautuu vaivan arvoiseksi.

Mitä tulee tuettaviin selaimiin, niin päätimme kävijätilastojen perusteella tukea vielä IE8:a. Ylläpitopuolella tämä tarkoitti erinäisten kolmansien osapuolien kirjastojen lukitsemista tiettyyn IE8:a tukevaan versioon, erilaisten paikkausten ja tilkkeiden käyttöä esim. respond.js ja kohtuuttomasti revittyjä hiuksia ja bugien perässä juosten hukkaan heitettyä aikaa. Uskon, että IE8 tulee vainoamaan meitä vielä pitkään, koska ainakin ne julkisorganisaatiot joiden kanssa olen ollut tekemisessä, ovat kuolettavan hitaita päivittämään selaimiaan. Kummallista tässä on, se että jos esim. viime syksynä on siirrytty Win XP:stä Win 7:aan, niin oletusselaimeksi on jätetty edelleen IE8 vaikka pari-kolme uudempaakin versiota olisi ollut saatavilla. Tiedä sitten onko vieläkin jossain aikanaan IE6:lle tehtyjä ja ainoastaan quirksmodessa toimivia sovelluksia käytössä, jotka toimivat kehityksen jarruna hankaloittaen selainten päivittämistä uudempiin. En keksi muuta syytä mistä moinen toiminta tai oikeastaan toimimattomuus johtuu. IE8 on nykypäivän IE6, joka olisi syytä toimittaa jo ansaitsemaansa haudan lepoon.

Todettakoon vielä, että valitulla hostausratkaisulla on myös vaikutuksia fronttitekemiseen. Julkinen sivusto on hostattu Amazon S3 ämpärissä ja koska kyseessä ei ole webpalvelin, niin tiedostojen pakkaaminen ja vanhenemisaikojen asettaminen sivuston latausaikojen ja näin ollen käytettävyyden parantamiseksi ei onnistu asetuksia säätämällä. Sivusto pitäisi pakata etukäteen sen generoinnin yhteydessä ja vasta sitten puskea S3:een. S3 käyttää menestyksekkäästi Etageja, mutta tiedostojen vanhenemisaikojen asettaminen sivuston lataamisen yhteydessä vähentäisi palvelimen suuntaan tehtyjä pyyntöjä entisestään. Lisää tekemistä toiveiden tynnyriin. S3:n uudelleenohjauksien rajoituksista kirjoitin edellisessä jutussa.

Avointa lähdekoodia

Sekä julkisen sivuston, että ylläpitosovelluksen lähdekoodit on julkaistu avoimena MIT-lisenssillä ja repot löytyvät GitHubista. Ennen julkaisua kuvatiedostot siivottiin (ja paljon muuta) pois projekteista Cloudinaryyn, koska emme laiskoina jaksaneet lähteä selvittämään mitä niistä olisi lisenssissä pitänyt mainita. Julkisen sivuston projektista löytyy oletettavasti Googlen tekijänoikeuksilla oleva OpenSans fontti(tiedostot), joka on julkaistu Apache 2.0 lisenssillä (jos keksit tästä ristiriidan, niin heitäpä kommentti).

Samoin tällä hetkellä tunnetut bugit ja muutama kehitysehdotus listattiin GitHubiin. Josko ihan vaivihkaa tekisivät itse itsensä. Muuten ei vielä olla hirvittävän avoimessa moodissa, koska esim. ohjeet kehitysympäristön pystyttämiseen puuttuvat. Jos talkoot kiinnostavat, niin kirjoitellaan ohjeita sitten 😉

Retrospektiivi

Kaiken kaikkiaan projekti sujui hyvin ja valmistui budjetissa, aikataulussa ja sisällössä. Seuraavassa kuitenkin muutamia seikkoja joihin kiinnittäisimme seuraavalla kerralla huomiota:

  • Joitakin teknologisia oikoteitä on matkan varrella otettu eikä budjettiin mahtunut eri kehityslinjojen saati käytettyjen työkalujen kartoitus ja vertailu riittävällä tasolla. Tämä tulee varmasti kostautumaan jossain vaiheessa ylimääräisenä työnä niin kuin tapana on. Vaikka merkittävää arkkitehtuurisuunnittelua ei voi tai kannata ennen toteutusta tehdä, on epävarmojen asioiden tutkimiselle varattava riittävästi aikaa/pisteitä/tilaa/rahaa budjettiin.
  • Jälleen kerran: Työmääräarvio on lähes aina liian pieni. Sen jälkeen, kun arvio asiasta X on annettu, on se syytä kyseenalaistaa iteroimalla asian sisältö uudestaan ja arvaamalla uudestaan.
  • Projekti oli liian suuri tehtäväksi siten, kuin se nyt tehtiin eli toinen meistä teki pääsääntöisesti osa-aikaisesti päivällä töitä ja toinen päätoimensa ohella iltaisin. Tämän johdosta ja toisaalta siitä, että meillä ei ollut määräajan kanssa hoppu, projektista tuli kalenteriajassa pitkä. Tämä taas johti esim. siihen, että asioita unohtui enemmän kuin mitä intensiivisemmässä, mutta lyhyemmässä projektissa olisi unohtunut. Toisistaan erillään ja eri aikaan tapahtuva työskentelystä aiheutui myös viestinnällisiä ongelmia, joita ei olisi ilmennyt kasvokkain työskennellessä. Projekti olisi pitänyt jakaa selkeämmin kalenteriin sidottuihin inkrementteihin ja tunnistaa paremmin työt jotka olisi kannattanut järjestää kasvotusten tehtäviksi.
  • Alustava backend/arkkitehtuurityö olisi hyvä eriyttää irralleen ominaisuuksista backlogissa. Ehkä, mutta sitten mennään oppikirjojen antia vastaan siitä, että jokaisen asian backlogissa pitää tuottaa näkyvää arvoa asiakkaalle ja loppukäyttäjälle…

Ja lopuksi: Älä tee kiinteähintaisia projekteja PISTE.

Mainokset

Julkaistu! Lepo!

Sinne se meni. Julkaistiin liveksi tuontantoon. Ja lähes vaivihkaa ilman kommervenkkejä. Tai no yksi bugi oli vähän aikaa allekirjoittaneen jäljiltä, mutta ei siitä sen enempää 🙂

Ensimmäiset työpaikkailmoitukset ja terveyskeskusten esittelyt on myös julkaistu, joten ainakin osa terveyskeskuskäyttäjistä tulee toimeen uuden ylläpitotyökalun kanssa. Myös muutamia käyttäjätunnuksia on päässyt tekemään ja ainakin vielä suunniteltu ylläpitokuvio toimii hyvin.

Jotenkin on takki auki julkaisun jälkeen etten ole edes oikein keksinyt mitä siitä pitäisi kirjoittaa. Kalenteriajassa pitkän projektin tärkein virstanpylväs on nyt takana ja projekti viimeistelyä vaille valmis. Vielä pitäisi tehdä markkinointia, käyttäjien aktivointia, muokata vähän RSS-syötettä, virittää analytiikka kuntoon ylläpitopuolelle jne. Ja kuulemma jotain siivoustakin pitää tehdä ennen kuin ne luvatut lähdekoodit kehtaa laittaa GitHubiin jakoon.

Projektin retrospektiivin jälkeen on varmaan taas enemmän kirjoitettavaa ja ajattelinkin raapustaa siitä tänne jutun. Lisäksi ainakin front-end devaus, työkalut ja tekniikka ylipäätään sekä tavoitteet ja mittaaminen (taas) ovat aiheita mistä tulen kirjoittamaan jatkossa. Ehkäpä myös siitä käyttöasteesta ja avoimesta lähdekoodista tulee myös juttua.

Aika näyttää.

PS. Kiitokset Jaakolle, Pasille ja Johannekselle sekä Pirkanmaan sairaanhoitopiirin projektiryhmälle onnistuneesta julkaisusta!

Sivuston ja sen uudistusprojektin taustaa – osa 2

Tässä juttusarjan toisessa osassa kerrotaan työnalla olevan TKrekry.fi:n uuden version suunnittelusta, joka tehtiin vuoden 2013 aikana. Juttusarjan ensimmäisessä osassa avattiin nykysivuston toteutuksen taustoja.

Sivuston uuden version suunnittelu käynnistyi 2013 talvella edellisen vuoden ollessa pitkälti hiljaiseloa kehitystöissä. Suunnitteluprojektin tavoitteeksi asetettiin ”selvittää käyttäjälähtöisesti onko uudistamiselle tarvetta ja millainen mahdollinen uusi versio tulisi olemaan”. Käytännössä projekti vaiheistui seuraavasti:

  • Käyttäjätutkimuksen tekijän rekrytointi ja tutkimuksen suunnittelu
  • Sivuston tavoitteiden, vaatimusten ja käyttäjäryhmien tarkistaminen
  • Käyttäjätutkimuksen toteutus
  • Konseptisuunnittelu ja toiminnallinen määrittely
  • Sivuston käyttöasteen tarkistaminen ja käyttäjäkysely
  • Päätös sivuston uusimisesta

Käyttäjätutkimuksen tekijän rekrytointi ja tutkimuksen suunnittelu

Koska projektin tavoitteena oli tarkistaa nimenomaan käyttäjälähtöisesti olisiko sivuston uudistamiselle tarvetta, piti se väistämättä sisällään käyttäjätutkimuksen. Itse en olisi muilta töiltäni tutkimusta ehtinyt tekemään ja toisaalta projektin budjetti oli rajallinen, joten suunnitelmana oli kääntyä Tampereen korkeakoulujen puoleen ja pyrkiä rekrytoimaan käytettävyyttä opiskeleva lopputyöntekijä projektiin.  Otin yhteyttä Tampereen teknillisen yliopiston ihmiskeskeisen teknologian yksikköön, Tampereen yliopiston informaatiotieteiden yksikköön (vuorovaikutteinen teknologia) ja Tampereen ammattikorkeakouluun asian johdosta. Teknillisen yliopiston vastaus oli käytännössä, että diplomitöitä ei tehdä ilman korvausta joten kääntykää yliopiston puoleen. Yliopistolta löytyikin useita hyviä hakijoita tehtävään ja näiden joukosta valittiin Johannes Pitkänen tutkimusta tekemään.

Suunnittelimme tutkimuksen yhdessä Johanneksen kanssa ja käytännössä siinä tultaisiin kyselyn, haastattelun, käytettävyystestin ja kilpailija-analyysin keinoin vastaamaan seuraaviin kysymyksiin:

  • Minkälaiset käyttäjät käyttävät sivustoa ja miksi?
  • Miksi käyttäjä käyttäisi juuri tätä sivustoa?
  • Mitkä seikat houkuttelevat käyttäjiä?
  • Miksi käyttäjä käyttäisi mieluummin jotain toista sivustoa?
  • Miten käyttäjäkuntaa voidaan laajentaa?

Näiden kysymysten myötä saataisiin muodostettua kokonaiskuva käyttäjien tarpeisiin pohjautuvista perusteluista sivuston uudistamiselle (tai sitä vastaan). Suunnittelun taustamateriaalina käytettiin aikaisemmin tehtyjä kyselytutkimuksia ja tehtäväanalyysiä. Tutkimuksen suunnittelun yhteydessä puntaroitiin myös mahdollisuutta, että Johannekselle olisi tullut työpariksi lääketieteen opiskelija. Toinen suunnittelun yhteydessä keskusteltu idea oli se, että projektin yhteydessä rakennettaisiin ns. käyttäjäverkosto, jonka kautta voitaisiin myöhemmin mm. rekrytoida testihenkilöitä käytettävyystesteihin. Nämä ajatuksen jäivät kuitenkin toteuttamatta, koska tarvittavia resursseja käytäntöön viemiseksi ei ollut.

Sivuston tavoitteiden, vaatimusten ja käyttäjäryhmien tarkistaminen

Käyttäjätutkimuksen suunnittelun rinnalla valmisteltiin ja pidettiin työpaja johon osallistuivat kaikki asianosaiset eri ERVA-alueilta. Työpajan tavoitteena oli tarkistaa ns. liiketoiminnan tavoitteet ja vaatimukset sivustolle sekä sen käyttäjäryhmät ja näiden tehtävät sivustolla. Samalla ideoitaisiin uusia mahdollisia sisältöjä, toiminnallisuuksia ja tapoja markkinoida sivustoa.

Työpajan tuloksena todettiin, että sivuston tavoitteet ja kohderyhmät ovat samat kuin aikaisemmin, mutta ensimmäistä työpaikkaansa hakevat lääketieteen opiskelijat / vastavalmistuneet ja erityis- ja erikoistumiskoulutukseen hakeutuvat lääkärit nostetaan sivuston ensisijaisiksi käyttäjäryhmiksi.

Käyttäjätutkimuksen toteutus

En lähde tässä yksityiskohtaisesti avaamaan käyttäjätutkimuksen sisältöä, koska toiveeni on, että Johannes kirjoittaisi siitä jutun jossain vaiheessa. Seuraavassa kuitenkin tiivistäen:

  • Tutkimukseen osallistui 7 terveyskeskuksessa työskentelevää nuorta lääkäriä ja 3 terveyskeskusten rekrytoinnista vastaavaa henkilöä kolmelta eri paikkakunnalla.
  • Yksi testisessio sisälsi taustatieto- ja kyselylomakkeiden täyttämisen, TKrekryn ja jonkun muun rekrysivuston käyttöä vertailevan käytettävyystestin ja haastattelun.
  • Tutkimukseen osallistuneille lääkäreille tärkein tapa hakea töitä on suora yhteydenotto työnantajaan. Samaan tulokseen oli päädytty aikaisemmissa kyselytutkimuksissa.
  • Palvelun tunnettuus ja kattavuus eli se, että kaikki työnantajat ovat edustettuina (ajantasaisesti) sivustolla, oli tärkeää lääkäreille.
  • Yhteystietojen ja työpaikkailmoitusten ohella jatkokoulutuksesta kertovat sisällöt kiinnostivat lääkäreitä.
  • Terveyskeskuskäyttäjille ilmoituksen jättämisen nopeus ja vaivattomuus oli tärkeää ja mielellään vielä siten, että kunnan oma rekryjärjestelmä työntäisi ilmoitukset muihin palveluihin (Mol.fi, Kuntarekry.fi, Terveysportti.fi, TKkrekry.fi jne.).
  • Sivuston toimivuutta mobiililaitteilla ei pidetty oleellisena.

Tutkimuksen tuloksena voitiin todeta, että sivustolta ei käyttäjien näkökulmasta löydy merkittäviä puutteita sisällöissä tai toiminnallisuuksissa, mutta suurin savotta on sen markkinoinnissa kaikille kohderyhmille.

Tehdyn käyttäjätutkimuksen (ja aikaisempien) pohjalta Johannes kirjoitti kolme käyttäjäpersoonaa (kaksi lääkäreille, yksi terveyskeskuskäyttäjille) konseptisuunnittelun ja mahdollisen tulevan toteutusprojektin tueksi. Käyttäjäpersoonathan ovat siis käyttäjistä kerättyihin tietoihin pohjautuvia käyttäjien arkkityyppejä, joista voi olla hyötyä palvelun tai tuotteen kehityksessä, jos toteutustiimi pystyy niiden avulla paremmin astumaan loppukäyttäjien saappaisiin suunnitteluratkaisuita tehdessään. Ks. lisää käyttäjäpersoonista Wikipediassa.

Konseptisuunnittelu ja toiminnallinen määrittely

Yhdistämällä työpajassa syntyneet ideat nykysivuston toiminnallisuuteen, sivuston olemassaolon aikana kerättyihin kehitysehdotuksiin ja käyttäjätutkimuksen tuloksiin saatiin aikaan ensimmäinen vedos sivuston uudesta versiosta ja sen ominaisuusluettelosta.

Konseptisuunnittelun syötteeksi tehtiin vielä kevyt kilpailija-analyysi vertailemalla eri rekrytointisivustoja keskenään sekä kahlattiin läpi kävijäseurantadataa (tästä aiheesta myöhemmissä jutuissa lisää). Kävijäseurantadatan perusteella noin 15% sivuston kävijöistä käytti selaamiseen mobiililaitetta tai tablettia, joten eri päätelaitteille mukautuva (ns. responsiivinen) käyttöliittymä tuli vaatimukseksi vaikka käyttäjähaastatteluiden perusteella sitä ei tarpeelliseksi tunnistettu. Onkin tärkeää vahvistaa käyttäjien väittämät tarkkailemalla mitä he tekevät.

Suunnittelussa tehtiin kaksi selkeää rajausta. Ensinnäkin sivustolla olevat ammattiryhmät tulisivat olemaan edelleen samat (lääkärit, hammaslääkärit) vaikka joitain toiveita palvelun laajentamisesta muihin ammattiryhmiin oli ajan saatossa esitetty ja aiheesta monta kertaa keskustelu jo ihan nykysivuston ensimmäisestä suunnittelupalaverista lähtien. Tarkka fokus kahteen ammattiryhmään nähdään palvelun etuna ja kilpailutekijänä erottautumisessa muista palveluista. Toinen vastaava rajaus oli se, että palvelussa työnantajina tulisivat edelleen olemaan pelkät terveyskeskukset. Sairaaloiden jne. ottaminen mukaan palveluun veisi huomioarvoa terveyskeskuksista, jossa lääkäreistä ja hammaslääkäreistä on pulaa ja joiden rekrytointihaasteisiin sivusto oli alun alkaen perustettu.

Itse suunnitelma konkretisoitui kahteen artefaktiin: Dokumenttiin nimeltä Toiminnallinen määrittely (plus se ominaisuusluettelo) sekä sivuston julkisen puolen HTML-prototyyppiin.

Kevyt toiminnallinen määrittely piti sisällään sivuston vision, käyttäjien tavoitteet, persoonien näkökulmasta kirjoitetut sivuston tärkeimmät käyttöskenaariot, tietomallin (ks. kuva) ja informaatioarkkitehtuurin. Dokumentin tarkoitus oli siis toimia toteutuksen lähtökohtana ja ohjenuorana, mutta toisaalta myös mahdollistaa sivuston jatkokehitykseen liittyvä päätöksenteko ja toimia mahdollisen kilpailutuksen pohjamateriaalina.

tietomalli

Päätin tehdä sivuston julkipuolen käyttöliittymäsuunnittelun suoraa protoilemalla HTML:ää. Tämähän on ollut viime vuosien kestoaihe www-suunnittelijoiden keskuudessa eli tehdäkö rautalangat ja leiskat perinteisesti vai hypätäänkö suoraa koodaamaan? Otin protoon mukaan jQuery Mobile käyttöliittymäkirjaston, koska muuten aikaa olisi palanut kohtuuttomasti CSS:n koodaamiseen. Ja aikaa paloi silti. Koodaaminen on kokoluokkaa tarkempi suunnittelutyökaluna kuin Photoshop tms. ja kahta tarkempi kuin esim. Balsamiq, joten luonteensa vuoksi nysväämiseksihän se meni (asiaa ei myöskään auta se, että on pedantti ja tehnyt fronttikoodia työksensä). Huomasin myös että JQM:n käyttö rajoitti ajatteluani ja suunnitteluratkaisuja, koska käyttöliittymäkontrolleja on helppo leikata-liimata paikalleen esimerkkien pohjalta, mutta asetettujen reunaehtojen rikkominen on työlästä. Piirtotyökalussa reunaehtoja on merkittävästi vähemmän (lähinnä UI-suunnittelun hyvät käytännöt). Jatkossa tulen piirtämään ensimmäisen iteraation käyttöliittymästä Balsamiqillä ja hyppään vasta sen jälkeen HTML:ään, jos tarve.

Sivuston hallintatyökalun suunnittelu rajattiin projektista ulos varsinaisen toteutusprojektin asiaksi.

Konseptisuunnitelma esiteltiin asianosaisille projektin toisessa työpajassa. Sivuston uudistamisen puolesta puhuivat seuraavat seikat:

  • Lääketieteen opiskelijoiden / vastavalmistuneiden nostaminen tärkeimmäksi kohderyhmäksi ja sisällön uudistaminen heidän tarpeisiinsa.
  • Terveyskeskusten yhteystietojen selkeämpi esitys, terveyskeskusten sekä niiden koulutusvalmiuksien esittelysisällöt.
  • Työpaikkavahdin toteutus.
  • Sijaisuusilmoitusten määrän lisääminen sivustolla ja niiden huomioarvon kasvattaminen.
  • Rakennemuutokset sivuston organisaatiohallintaan, terveyskeskuksella voi olla useita fyysisiä toimipisteitä.
  • Käytettävyysparannukset työpaikkailmoitusten (mm. toistaiseksi voimassa olevat ilmoitukset) ja yhteystietojen julkaisun osalta.
  • Ilmoitusten julkaisu TKrekryyn suoraa Kuntarekrystä ja mahdolliset muut integraatiot.
  • Sivuston visuaalisen ilmeen freesaus (ei niinkään perustelu, mutta kannattaisi tehdä samalla, jos sivusto uusitaan).

Sivuston uudistamista vastaan tunnistettiin seuraavat seikat:

  • Käyttäjätutkimuksen perusteella ei löytynyt merkittäviä sisällöllisiä tai teknisiä puutteita; parannuskohteet liittyvät palvelun tunnettuuteen ja kattavuuteen.
  • Ajankohtaisen sisällön tuottamiseen ei ole resursseja eikä käyttäjien näkökulmasta tarvetta (kunhan terveyskeskusten tiedot ovat kunnossa), joten nykyiset julkaisutyökalut ovat riittävät.
  • Kustannukset ja uudistusprojektista PSHP:lle ja kumppaneille aiheutuva oman toimen ohella tehtävä työ.

Lopullinen päätös sivuston uudistamisesta jäi työpajan jälkeen vielä kypsymään, mutta käytännössä mahdollisia etenemisvaihtoehtoja tunnistetiin neljä erilaista:

  1. Ei tehdä mitään tai ajetaan nykyinen sivusto alas.
  2. Terveyskeskusten esittelysisältöjen toteutus ja muun sisällön stilisointi nykysivustolle.
  3. Kokonaan uuden sivuston hankinta kilpailuttamalla.
  4. Kokonaan uuden sivuston hankinta (karsituin ominaisuuksin) samalla porukalla kuin millä nykysivusto on tehty.

Sivuston käyttöasteen tarkistaminen ja käyttäjäkysely

Osana konseptin viimeistelyä päätettiin suorittaa vielä kyselytutkimus niille terveyskeskuksille, jotka eivät käytä TKrekryä ja pyrkiä selvittämään käyttämättömyyden syitä ja mahdollisia parannuksia joilla käyttöastetta saataisiin nostettua. Sivuston käytöstä kerätyn datan perusteella arviointiin, että 150 terveyskeskuksesta vain 65 kpl (43%) oli jättänyt palveluun ilmoituksen 2013 vuoden aikana. Aihe on siinä mielessä mielenkiintoinen, koska palvelun käyttö terveyskeskuksille on ilmaista (miksi siis olla käyttämättä?).

Kukin ERVA-alue kontaktoi omat passiiviset terveyskeskuksensa 2013 loppuvuoden aikana ja näistä noin puolelta saatiin selkeä vastaus käyttämättömyyteen. Pääasialliset syyt olivat seuraavat:

  • Palvelusta ei tiedetä
  • Käyttö koetaan työlääksi muiden ilmoituskanavien ohella
  • Palvelua ei koeta hyödylliseksi
  • Rekrytointi on ulkoistettu
  • Ei ole avoimia paikkoja joita ilmoittaa
  • Jokin muu syy

Alhainen käyttöaste on iso ongelma, koska käyttäjätutkimuksen mukaan sivuston mahdollisimman laaja kattavuus (ja tunnettuus) olivat lääkäreille tärkeä asia. Toisaalta terveyskeskukset eivät vaivaudu käyttämään palvelua, jos sen kautta ei saa itselle riittävästi näkyvyyttä (kävijöitä, työnhakijoita). Kyseessä on siis perinteinen muna-kana ongelma.

Meneillään olevan uudistusprojektin yksi tavoitteista onkin nostaa käyttöastetta merkittävästi. Kirjoitan käyttöasteesta, tavoitteista ja mittareista lisää blogissa myöhemmin.

Päätös sivuston uusimisesta

Päätös uuden sivuston toteutuksesta (karsituin ominaisuuksin) tehtiin joulukuussa 2013. TKrekryn toimintaa haluttiin jatkaa, mutta nykyisen sivuston jatkokehitys (vaihtoehto 2) katsottiin riittämättömäksi vastaamaan uuteen tahtotilaan. Vaihtoehto 3 puolestaan todettiin potentiaalisesti liian kalliiksi ja työlääksi.

Päädyttiin vaihtoehtoon 4 eli tehdään uusi sivusto, mutta karsituin ominaisuuksin, jotta budjetti saadaan kilpailutusrajan alle. Karsimista pitikin tehdä jos jonkin verran puoleen ja toiseen, mutta nyt projekti on käynnissä ja vauhdissa. Edellisessä jutussa totesin, että jos sivuston kehitys jää ainoastaan sisältöjen, ominaisuuksien ja tekniikan tasolle, niin sivustolle asetettua visiota ei saavuteta. Ikävä kyllä rajalliset resurssit rajoittavat asioiden edistämistä niillä muilla rintamalohkoilla.

Tämän myötä myös tämä kilometrihistoriikki on saatu päätökseen ja seuraavissa jutuissa tulen kirjoittamaan ajankohtaisemmista toteutuksessa vastaan tulleista ja tulevista aiheista.

Sivuston ja sen uudistusprojektin taustaa – osa 1

Tässä jutussa kerrotaan Pirkanmaan sairaanhoitopiirin (PSHP) omistaman TKrekry.fi sivuston ja nyt käynnissä olevan uudistusprojektin taustoista eli siitä miten tähän päivään on tultu. TKrekry on Pirkanmaan sairaanhoitopiirin kehittämä ja ylläpitämä valtakunnallinen terveyskeskuksien käyttöön tarkoitettu lääkärien ja hammaslääkärien rekrytointisivusto. Kyseessä on myös blogin ensimmäinen varsinainen kirjoitus, joten harjoitellaan, harjoitellaan. Juttu on jaettu kahteen osaan. Ensimmäisessä pohditaan nykyisen sivuston taustoja ja tulevassa osassa sivuston uuden version määrittelyä ja suunnittelua.

Nykyisen sivuston toteutus

TKrekry sai alkunsa 2008 syksyllä. Silloinen PSHP:n projektiryhmä oli saanut terveyskeskusten ylilääkärien aloitteesta Tampereen Lääkäripäivien kohdeapurahan. Projektiryhmälle oli syntynyt ajatus siitä, että apuraha tulisi hyödyntää jotenkin terveyskeskusten lääkäripulan ja rekrytoinnin helpottamiseksi ja verkkosivuston toteutus aiheen tiimoilta voisi tuoda eniten vastinetta rahalle.

Lääkäripula

Niin nykyään, kuin silloin viisi ja puoli vuotta sitten, terveyskeskuksilla on haasteita saada riittävästi pätevää henkilöstöä palkatuksi (etenkin pienillä paikkakunnilla). Tämä koskee erityisesti lääkäreitä ja hammaslääkäreitä, joilla on usein mahdollisuudet kilpailuttaa palkkansa ja työsuhde-etunsa. Yksityisellä sektorilla on myös merkittävä rooli terveyskeskusten henkilöstöpulassa, joilla ei ole vastaavaa markkinointi- ja rekrytointibudjettia käytössään.  Usein lääketieteen opiskelijat rekrytoidaan ”suoraa koulun penkiltä” töihin yksityiselle. Voidaan kai puhua ns. lääkäripulasta.

Näin käytettävyysasiantuntijan näkökulmasta on mielenkiintoista lukea Suomen Lääkäriliiton työvoimapoliittista ohjelmaa, jossa arvioidaan, että ”600 lääkärin työpanos menee hukkaan toimimattomien tietojärjestelmien vuoksi”. Jälkikäteen on helppo viisastella ja kallista korjata, mutta tällä saralla olisi merkittävästi savottaa mitä tulee käyttäjien tavoitteiden ja tehtävien ymmärtämiseen, riittävän käytettävyyden ja teknisen laadun varmistukseen sekä ketteriin toimituksiin. Toivottavasti Apotissa ei toisteta menneisyyden virheitä.

Takaisin aiheeseen.

Päädyin konsultoimaan projektiryhmää sivuston suunnittelussa ja toteutuksessa ja parin ensimmäisen tapaamisen aikana sen alustava tavoite, käyttäjät, kilpailijat, sisällöt ja toiminnallisuudet alkoivat hahmottua. 10.10.2008 päivätyssä palaverimuistiossa on todettu seuraavaa:

Projektissa suunnitellaan ja toteutetaan rekrytointisivusto tkrekry.fi jonka tavoitteena on kertoa millaista työskentely terveyskeskuksissa julkisen työnantajan palkkaamana on sekä ilmoittaa terveyskeskusten avoimista työpaikoista Pirkanmaalla. Myöhemmässä vaiheessa verkkopalvelu voi kattaa ERVA-alueen muut terveyskeskukset tai jopa koko valtakunnan julkisen terveydenhuollon avoimet työpaikat.  Sivuston sisällön ylläpidon ja työpaikkojen ilmoittamisen tulee onnistua ilman teknistä osaamista.

Myöhemmin samainen asia kiteytyi seuraavaan muotoon:


TKrekry on verkkosivusto, jonka tavoitteena on tukea ja tehostaa lääkärien ja hammaslääkärien rekrytointia terveyskeskuksiin:

  • Kertomalla mitä työskentely terveyskeskuksessa on ja mistä terveyskeskuksen palkkalistoilla olevan lääkärin tai hammaslääkärin palkka muodostuu.
  • Ilmoittamalla terveyskeskusten avoimista työpaikoista (ainoastaan lääkärit ja hammaslääkärit tässä vaiheessa).
  • Tekemällä yhteydenoton terveyskeskuksen rekrytoinnista vastaaviin henkilöihin mahdollisimman helpoksi.

Visio: TKrekry on ensimmäinen ja tärkein tiedonlähde jokaiselle uutta työpaikkaa hakevalle lääkärille tai hammaslääkärille. TKrekry palvelee sekä terveyskeskusten, että työnhakijoiden tarpeita olemalla selkeän informatiivinen ja käytettävä verkkopalvelu.

Sivuston mahdollisiksi käyttäjiksi tunnistettiin seuraavat ryhmät, mutta näiden tavoitteita, tarpeita tai tehtäviä ei projektissa tutkittu:

  1. Työpaikkaa hakevat lääkärit ja hammaslääkärit
  2. Hoitohenkilökunta
  3. Erityishenkilöstö (esim. puheterapeutit, psykologit yms)
  4. Työpaikkailmoituksia hallinnoivat ihmiset terveyskeskuksissa
  5. PSHP:n Yleislääketieteen vastuunalueen (silloinen YLVA) määrittämä ylläpitäjä

Sivuston toteutuksesta sovittiin silloisen ja sittemmin edesmenneen BF Engineeringin kanssa, jonka kautta allekirjoittanut myös työllisti itsensä projektin suunnittelijaksi ja projektipäälliköksi. Projekti toteutettiin perinteiseen tapaan ilman sen erityisempiä haasteita tai oivalluksia:

  1. Tavoitteiden ja käyttäjien määrittely.
  2. Informaatioarkkitehtuurin ja sisältöjen suunnittelu.
  3. Toiminnallinen määrittely.
  4. Tekninen suunnittelu eli käytännössä julkaisujärjestelmän (Radiant CMS, tästä myöhemmin lisää) valinta.
  5. Käyttöliittymäsuunnittelu.
  6. Sisällöntuotanto.
  7. Tekninen toteutus ja sivuston koostaminen.
  8. Hyväksyntätestaus.
  9. Käyttäjien koulutus.
  10. Julkaisu.

Tai no yksi haaste tulee mieleen. Sivuston tuotantoympäristö. Alustava suunnitelma oli hostata (suomeksi isännöidä?) sivusto Sigmaticillä, koska palveluntarjoajasta oli aikaisempaa kokemusta. Sivuston julkaisujärjestelmä ja siihen sivustoa varten tehdyt laajennokset toteutettiin Ruby on Railsilla. Tuolloin Rails 2 oli kuuminta hottia, mutta Suomessa vielä kohtalaisen uusi tuttavuus. Syystä tahi toisesta (versiot, riippuvuudet jne.) sivustoa ei saatu toimimaan Sigmaticin webhotellissa, joten se päätettiin hostata Herokussa. Tätä päätöstä ei ole tarvinnut katua hetkeäkään.

Sivusto julkaistiin viimeisten viilauksien ja PSHP:n terveyskeskusten käyttäjien koulutusten jälkeen helmikuussa 2009 Tampereen yliopiston lääketieteen opiskelijoille pidetyssä rekrytointitilaisuudessa.

Nykyisen sivuston jatkokehitys

Keväällä 2009 allekirjoittanut teki kevyen käyttäjätutkimuksen tehtäväanalyysin muodossa sivuston terveyskeskuskäyttäjien rekrytointiprosesseista. Tutkimus oli osa Tampereen teknillisen yliopiston vastaavaan kurssin suoritteita.

Kesän 2009 aikana sivustoon tehtiin jatkokehitystä sen käytön laajentamiseksi koko valtakuntaan. Esim. sisällöt käännettiin ruotsiksi. Syksyllä koulutukset ja käyttö laajenivat koko TAYS:n alueelle ja vuoden 2010 aikana myös muille ERVA-alueille eli koko maan terveyskeskusten käyttöön.

2010 ja 2011 sivuston eri käyttäjiltä kyseltiin niin paperilla kuin sähköisesti asioita sivuston käytöstä ja kokemuksista, mutta näissä kyselyissä vastausprosentti jäi pieneksi eikä saaduista vastauksista saatu toivottua syötettä sivuston jatkokehitykseen. 2011 sivustolle toteutettiin myös työpaikkailmoitusten julkaisu TKrekryn Facebook-sivulle.

2012 lähinnä jahkailtiin jatkokehityksen suhteen ja 2013 talvella ryhdyttiin verkkaisesti hommiin.

TKrekryn kehitys kokonaisuutena voidaan jakaa seuraaviin ylätason aiheisiin, joita kaikkia pitäisi ideaalimaailmassa suunnitelmallisesti edistää ja kehittää:

  1. Tuote / tekniikka eli sivuston ominaisuudet, toiminnot, visuaalinen ilme, vakiosisällöt jne.
  2. Sivuston tunnettuus ja kattavuus (käytössä kaikissa terveyskeskuksissa) eli markkinointi ja siihen liittyvä verkostoituminen sekä ajankohtaisen ja vaihtuvan sisällön tuotanto ja sisällöntuotantoprosessi.
  3. Terveyskeskusten tuottamien työpaikkailmoitusten ja muun sisällön sekä itse rekryprosessien kehittäminen / valmentaminen.

Kunnianhimo ja käytössä olevat resurssit ja raha määrittävät sen kuinka laajalti näitä aiheita voidaan edistää. Mielestäni vaarana on, että jos / kun kehityksessä jäädään ensimmäiselle tasolle, niin sivuston tavoitteisiin ei päästä eikä visiota saavuteta. Haaste, jota lähdetään ratkaisemaan verkkosivustolla, on harvoin ratkaistavissa pelkästään toteuttamalla ko. sivusto. Monen muunkin asian on muututtava, oli kyse sitten organisaatiosta, prosesseista, viestinnästä jne. jotta ideaalitulokseen tai edes lähelle päästäisiin.

Kirjoitan tästä kehitystyöstä eli sivuston uuden version suunnittelusta lisää jutun toisessa osassa.

Blogin tulevia aiheita

Ilmeisesti blogaajan pitää aloittaessaan laatia itselleen lista aiheista, joista myöhemmin kirjoittaa, joten tässä omani:

Jos siis nämä aiheet kiinnostavat, niin laita blogin linkki talteen, tilaa RSS-syöte tms. millä sitten seuraatkaan blogeja.

Toivoisin kovasti myös kommentteja, mielipiteitä, kritiikkiä tai ihmisten omia kokemuksia web-projekteista kommentteihin. Jakamalla kokemuksia meistä toivottavasti tulee parempia, joten osallistu keskusteluun!