Ohjelmistoroboteilla tarkoitetaan sovelluksia, joilla automatisoidaan tavallisesti ihmisen tietokoneilla tekemiä työtehtäviä. Tavoitteena on nostaa tuottavuutta, parantaa työtyytyväisyyttä ja vähentää virheiden määrää. Ohjelmistorobotit räätälöidään yleensä aina organisaation tarpeisiin, eikä niitä osteta niin sanotusti hyllytavarana. Sopivia tehtäviä roboteille löytyy käytännössä kaikista organisaatioista, myös Oulun ammattikorkeakoulusta (Oamk). Tässä blogitekstissä esitetty kirjoittajan tekemä toteutus voisi koko Oamkin tasolla tuoda lähes yhden opettajan vuosityöajan verran säästöjä.

Ohjelmistoroboteille sopivia työtehtäviä ovat esimerkiksi toiminnan suorittaminen sähköpostin perusteella, tietojen syöttäminen web-sovelluksessa tai tietojen siirtäminen sovelluksesta toiseen. Sopivia tehtäviä on tyypillisesti kaikissa organisaatioissa. Ohjelmistorobotit voivat käyttää kaikkia samoja ohjelmia, joita ihmisetkin tavallisesti käyttävät tietokoneillaan. [1]

Robotic Process Automation (RPA) -termin (suomeksi ohjelmistorobotiikka) kehitti Blue Prism -yrityksen Pat Geary vuonna 2012, mutta vastaavanlaisia toteutuksia oli tehty aiemmin. Robotiikka-sana on hieman harhaanjohtava, sillä kyseessä ei ole oikeiden fyysisten robottien käyttö. Englanninkielisessä RPA-versiossa oleva ”Automation”-sana kuvaa hyvin, mistä asiassa kyse. [1]

Ohjelmistorobotit voivat etsiä tietokoneen käyttöliittymästä tekstiä ja kuvia, syöttää tekstiä, käyttää hiiren osoitinta, painaa nappeja, raahata ja pudottaa sisältöä, kopioida ja liittää sekä reagoida tapahtumiin, kuten sähköpostien saapumiseen tai kalenterikutsuun. Erona ihmistyöntekijöihin on, että ohjelmistorobotti ei tee virheitä eikä tylsisty. Se ei tarvitse kahvitaukoja tai työskentele vain tiettyinä kellonaikoina. Ohjelmistorobotit ovat täydellisiä apulaisia hoitamaan toistuvia työtehtäviä. [2]

Suurimpia ohjelmistorobottien suunnitteluun työkaluja tarjoavia yrityksiä ovat UiPath, Automation Anywhere, BluePrism, Datamatics ja Microsoft [3]. Suurin ero näiden tuotteiden välillä on siinä, kuinka robotit rakennetaan. UiPath ja Automation Anywhere tarjoavat graafisen käyttöliittymän, jolla käyttäjä voi rakentaa robotit. Blue Prismin työkalulla taas robotit rakennetaan perinteisemmällä ohjelmointityylillä, jossa käyttäjät kirjoittavat koodia, jolla robotin tehtävät määritellään. Robotteja voi rakentaa myös muilla ohjelmointiin perustuvilla välineillä, joilla päästään käsiksi ajossa oleviin ohjelmiin ja niiden osiin näytöllä.

Varsinaisissa RPA-tuotteissa on lisäksi robottien hallintatoimintoja sekä toimintoja esimerkiksi kuvan tai tekstin tunnistamisen näytöltä. Tällaisia ominaisuuksia robottien kehittäjille tarjoavat esimerkiksi UiPath ja Automation Anywhere.

Pieniltä vaikuttavia asioita automatisoimalla voidaan saavuttaa suuria hyötyjä

Tietokoneilla työskentelevät henkilöt käyttävät tyypillisesti työpäivän aikana useita eri ohjelmia. Osa ohjelmista on asennettu tietokoneelle ja osa on etäkäytettäviä, kuten esimerkiksi web-selaimessa suoritettavat ohjelmat. Oamkissa opettajan työssä usein käytetyt selainpohjaiset sovellukset ovat opintotietojärjestelmä Peppi ja oppimisympäristö Moodle.

Pienetkin usein toistuvat työtehtävät voivat tarjota suuria tehostusmahdollisuuksia. Esimerkiksi yksinkertainen 10 sekuntia vievä valitse-kopioi-liitä-tallenna-toiminto voi tarjota suuren tehostusmahdollisuuden, mikäli tehtävä suoritetaan usein ja usean henkilön toimesta.

Oletetaan, että 10 sekunnin tehtävä suoritetaan 30 kertaa päivässä joka päivä noin 228 työpäivänä vuodessa. Tämä tekee yhteensä 68 400 sekuntia eli 19 tuntia vuodessa. Jos organisaatiossa on 100 työntekijää 30 euron tuntipalkalla, niin yksinkertaiseen rutiinitehtävään kuluu 1 900 tuntia ja 57 000 euroa vuodessa. Eikä tässä ole vielä edes mukana työnantajan maksamien palkkojen sivukuluja.

Ohjelmistorobottien huonot puolet

Automatisoitaessa esimerkiksi selainpohjaisia sovelluksia haasteena ovat sovelluksia muuttavat päivitykset. Ohjelmistorobotti käytännössä hajoaa, jos esimerkiksi sen käyttämä painike tai muu toiminto katoaa sovelluksen päivityksen seurauksena. Ohjelmistorobotteja pitäisi päivittää samassa tahdissa kuin niiden käyttämiä sovelluksia, joten isommissa organisaatioissa IT-hallinnon tulee olla olla tietoinen mahdollisista riippuvuuksista ja testata ne etukäteen. Tämä on erityisen tärkeää, jos roboteilla suoritetaan jotain liiketoimintakriittisiä asioita. [1]

Ohjelmistorobotteihin on myös vaikea toteuttaa ihmisenkaltaista päätöksentekokykyä, jos päätökset eivät ole selkeitä valintatilanteita. Osalla ohjelmistorobottityökalujen valmistajista on tarjolla tai suunnitteilla mahdollisuuksia yhdistää tekoälytoimintoja robotteihin ja näin ehkä suoriutua paremmin. [3]

Robotti kirjaa arvosanat Peppiin nopeasti ja virheettömästi

Opettaja kirjaa opintojaksojen arvosanoja Peppiin useasti vuodessa. Oamkissa on periodijärjestelmä, jossa vuosi on jaettu viiteen noin kahden kuukauden periodiin. Periodin päättyessä sen aikana pidettyjen opintojaksojen arvosanat kirjataan Peppiin.

Kirjauksista syntyy paljon toistoa. Jos esimerkiksi opettaja opettaa periodilla neljää eri opintojaksoa ja jokaisella opintojaksolla on 80 opiskelijaa, on kirjattavia arvosanoja yhteensä noin 320. Arvosanat perustuvat yleensä erilaisiin opintosuorituksiin, kuten pisteytettäviin harjoitustehtäviin tai kokeisiin.

Suorituksista on pidettävä kirjaa jossakin. Oma ratkaisuni on käyttää Excel-tiedostoa, jonne merkitsen opiskelijan tekemät suoritukset. Suoritusten pisteiden perusteella Excel laskee arvosanan. Arvosanojen kirjaus Peppiin tapahtuu avaamalla Excel-tiedosto ja Pepistä opintojaksototeutus rinnakkain, jonka jälkeen arvosanat ja suoritustiedot kirjataan Peppiin opiskelija kerrallaan.

Yksi kirjaus vaatii toimenpiteitä seuraavasti:

  • Hae opiskelija Excel-tiedostosta.
  • Klikkaa opiskelijan rivi aktiiviseksi Excel-tiedostosta.
  • Hae opiskelija Pepistä silmämääräisesti.
  • Klikkaa arvosanavalikko auki opiskelijan riviltä (kuva 1).
  • Valitse pudotusvalikosta arvosana.
  • Klikkaa lisätietojen pudotusvalikkoa (kuva 2, painike mustalla nuolella alas).
  • Valitse ”Muokkaa”.
  • Klikkaa avautuvasta ikkunasta ”Huomiot opiskelijalle” kenttä aktiiviseksi.
  • Hae Excel-tiedostosta suoritustietokuvaus ja klikkaa se aktiiviseksi (kuva 1, sarake ”PeppiInfo”).
  • Kopioi suoritustietokuvaus leikepöydälle CTRL-C-näppäinkomennolla.
  • Liitä suoritustietokuvaus Peppiin ”Huomiot opiskelijalle” -kenttään kenttään CTRL-V näppäinkomennolla.
  • Paina tallenna.

Jos opiskelija ei ole ilmoittautunut opintojaksolle, niin hänet täytyy lisätä opintojaksolle Pepissä ennen kuin arvosanakirjaus voidaan tehdä.

Kuvakaappaus Pepin arvosanakirjausnäkymästä. Kuvassa näkyvät valikot opintopistemäärälle, arvosanalle ja opintojen tyypille.
KUVA 1. Pepin arvosanakirjausnäkymä, jossa arvosanan pudotusvalikko on auki.
Kuvakaappaus Pepistä, jossa valikoiden opintopisteet, arvosana ja opinnon tyyppi lisäksi on avattu muokkaa-valikko.
KUVA 2. Pepin arvioinnin kirjausnäkymä lisätietovalikko auki.
Kuvakaappaus excel-tiedostosta, jossa Peppi-info-kentässä näkyy opiskelijalle näytettävä suoritustietoteksti.
KUVA 3. Käyttämäni Excel-tiedoston rakenne. Excelissä näkyy ”PeppiInfo”-kenttä, joka sisältää opiskelijalle näytettävän suoritustietotekstin.

Yhteensä toimenpiteitä on valtava määrä, koska ne tehdään kaikille opintojaksojen opiskelijoille periodin päätteeksi. Jos yhteen kirjaukseen kuluu arviolta 12 sekuntia, esimerkin 320 opiskelijan kirjauksiin kuluu noin 64 minuuttia. Kokemukseni perusteella aikaa kuluu kuitenkin paljon enemmän. Syynä ovat opintojaksojen tietojen haku ja vaihto, puuttuvat ilmoittautumiset, keskeytykset ja keskittymiskyvyn herpaantumisesta aiheutuvat virhekirjaukset ja niiden korjaukset.

Käsin tehdyissä kirjauksissa syntyy melko suuri määrä virheitä. Niitä ei välttämättä kirjausvaiheessa havaitse, mutta opiskelijat ilmoittavat niistä myöhemmin. Virheiden korjaamiseen jälkikäteen kuluu taas lisää aikaa.

Kokonaisuudessaan arvosanojen kirjaaminen on erittäin puuduttavaa mekaanista työtä suurella virhetodennäköisyydellä. Siksi rakensin ohjelmistorobotin hoitamaan arvosanakirjaukset Peppiin. Kuvassa 4 on toteutetun ohjelmistorobotin aloitusnäkymä.

Kuvakaappaus kirjausrobotin aloitusnäkymästä. Näkymässä on teksti: Peppi Course Assesment Automation.
KUVA 4. Kirjausrobotin aloitusnäkymä.

Toteutettu robotti toimii ohjatusti eli käyttäjä käynnistää sen sovelluksena. Käyttäjä antaa arvosanakirjauksen kohteena olevan opintojakson tunnuksen (kuva 4, ”Course ID”), valitsee tietolähteenä käytettävän Excel-tiedoston ja painaa käynnistyspainiketta (kuva 4, ”Execute grading” -painike).

Tämän jälkeen robotti avaa selaimen, kirjautuu käyttäjän puolesta Peppiin, hakee oikean opintojaksototeutuksen, siirtyy toteutuksen arviointinäkymään ja kirjaa arvosanat aiemmin kuvatun tehtävälistan mukaisesti. Robotti lisää myös puuttuvat opiskelijat opintojaksolle. Kuvasta 5 näkyy, miltä robotin toiminta näyttää. Kuvassa robotti on avannut toteutuksen arviointinäkymän ja on kirjaamassa arvosanaa opiskelijalle.

Kuvakaappaus, jossa näkyy Pepin valikko, johon robotti on syöttämässä arvosanoja.
KUVA 5. Kirjausrobotti työn touhussa.

Robotti käyttää noin 5‒6 sekuntia yhden opiskelijan arvosanan kirjaukseen. Tietokoneelle se on pitkä aika, mutta Pepin käyttöliittymä päivittyy melko hitaasti, joten robotti joutuu odottamaan käyttöliittymän päivittymistä ennen etenemistä seuraavaan vaiheeseen. Toiminta on silti nopeampaa kuin mihin ihminen pystyisi. Käytetty aika ei kuitenkaan ole kovin merkityksellinen, sillä robotti hoitaa kirjauksen itsenäisesti ja käyttäjä voi tehdä muita asioita sillä aikaa.

Teknisesti tämän ohjelmistorobotin toteutus on tehty käyttäen Playwright-testiautomaatiokirjastoa ja kirjoitettu TypeScript-ohjelmointikielellä. Playwright mahdollistaa testaamisen lisäksi myös selainautomaation ja toteutus hyödyntää niitä kykyjä.

Käyttäjän kannalta tässä toteutuksessa parasta on se, ettei robottia tarvitse ohjata kirjausten aikana. Robotti käynnistetään, jonka jälkeen se toimii itsenäisesti loppuun asti. Toiseksi parasta on virheettömyys. Omalla kohdallani virhemäärät putosivat dramaattisesti. Myös opiskelijoiden kannalta tilanne on parempi, koska virheellisiä arvosanakirjauksia ei tarvitse selvitellä enää niin usein. Aiemmin puuduttava ja aikaa vievä työtehtävä on automatisoitu, joka on hieno parannus.

Ohjelmistorobotti arvosanojen kirjaukseen toisi 64 000 euron säästöt vuosittain koko Oamkin tasolla

Laskelma, jossa yhden periodin arvosanakirjauksiin käytetty aika oli 64 minuuttia, voidaan skaalata myös koko Oamkin tasolle. Vuonna 2021 Oamkissa oli 333 päätoimista opettajaa [5]. Jos jokainen heistä käyttäisi arvosanakirjauksiin noin 64 minuuttia periodia kohden, kuluisi aikaa vuositasolla yhteensä seuraavan kaavan mukaisesti:

  • 333 (opettajien määrä) * 4 (periodien määrä vuodessa) * 64 (ajankäyttö minuuteissa periodia kohden) = 85 248 minuuttia
  • Yhteensä siis noin 1 420 tuntia, joka vastaa lähes yhden opettajan 1 600 tunnin vuosityöaikaa.

Oamkin tilinpäätöksestä käy ilmi, että henkilöstökulut vuonna 2021 olivat 32 844 070 euroa [6]. Tästä opetushenkilöstön osuus oli 75,2 prosenttia [5]. Opetushenkilöstön kulut olivat siis 24 698 740 euroa. Kun tämä jaetaan 333 henkilöllä, on yhden opettajan vuosikulu 74 170 euroa.

Arvosanojen kirjauksen automaatiolla olisi siis Oamkissa saavutettavissa vuosittain noin 64 000 euron säästöt. Nämä säästöt ovat luonnollisesti vielä suuremmat laskettuna esimerkiksi kolmen tai vaikka viiden vuoden jaksolle. Käytännössä tämä näkyisi työajan tehokkaampana käyttönä ja parantuneena työtyytyväisyytenä.

Jatkokehitysmahdollisuudet

Toteutettu ohjelmistorobotti sopii omaan tapaani työskennellä, joka perustuu opiskelijoiden tekemien suoritustietojen keräämiseen Excel-tiedostoon. Jatkokehitysmahdollisuus olisi tehdä automaattinen Excel-tiedoston luontitoiminto, joka hakisi Pepistä ilmoittautuneet ja loisi sen pohjalta Excel-tiedoston suoritusten seurantaa varten. Tällä hetkellä tiedosto luodaan käsin.

Robotti voisi myös tarpeen mukaan hakea suoritustiedot esimerkiksi opintojaksokohtaisesta Moodle-alustasta ja siellä olevista suorituksista, jos pisteiden muuttaminen arvosanaksi hoidetaan jollain muulla keinolla. Toteutus ei nykyisellään tue osasuoritusten kirjaamista, mutta se olisi tarpeen mukaan toteutettavissa.

Muita automatisoitavia tehtäviä on helppo löytää Oamkin opettajan työtehtävistä. Esimerkiksi olen jo toteuttanut vastaavalla tekniikalla toimivan automaattisen opinnäytetyön arvosanan kirjaustyökalun. Opinnäytetyön arvosanan kirjaus vaatii Pepissä pitkän listan toimenpiteitä, mutta on kuitenkin sen verran harvinainen tapahtuma, että aiemmin jouduin lähes aina katsomaan kirjauksen ohjevideot.

Automatisoinnille sopivia työtehoa ja -tyytyväisyyttä parantavia tehtäviä on mahdollista löytää lähes kaikista organisaatioista. Kyse on lähinnä siitä, halutaanko niihin investoida ja onko organisaatio edes tietoinen näistä mahdollisuuksista.

Lasse Haverinen
lehtori
Oulun ammattikorkeakoulu, Informaatioteknologian yksikkö

Lähteet

[1] Taulli, T. 2020. The Robotic Process Automation Handbook. Monrovia, California, USA: Apress.

[2] UiPath. Robotic Process Automation (RPA). Hakupäivä 9.11.2022. https://www.uipath.com/rpa/robotic-process-automation

[3] UiPath. Robotic Process Automation Software Reviews and Ratings. Hakupäivä 14.11.2022. https://www.gartner.com/reviews/market/robotic-process-automation-software

[4] UiPath. RPA AI Integration with AI Center. Hakupäivä 14.11.2022. https://www.uipath.com/product/rpa-ai-integration-with-ai-center

[5] Oulun ammattikorkeakoulu. 2021. Tietoja Oamkista. Hakupäivä 18.1.2023. https://www.oamk.fi/fi/oamk/yhteiskuntavastuuraportti-2020/tietoja-oamkista

[6] Oulun ammattikorkeakoulu. 2022. Oulun Ammattikorkeakoulu Oy. Tilinpäätös ja toimintakertomus 1.1.‒31.12.2021. Hakupäivä 18.1.2023. https://www.oamk.fi/images/pdf/oamk_tilinpaatos_toimintakertomus_2021.pdf