Minulla oli kovasti
suunnitelmissa, että kesälomalla ehdin hyvin käydä Aalto Yliopiston ja
Reaktorin Elements of AI –kurssin ja Code Academyn koodauskursseja läpi, Suomen
kesä ja yllättävä helleputki oli toista mieltä. No en valita, koska rakastan
aurinkoa ja nautin tästä, että kerrankin täällä tarkenee. Koodaamisen ehtii
oppia syksymmälläkin, kyllähän tässä maassa niitä koodareille soveltuvia
pimeitä päiviä riittää. Mutta tosiaan tarkoitus oli kesän aikana syventää ymmärrystäni
koodaamisesta eli ohjelmoinnista ja eri ohjelmointikielistä ja kirjoittaa
blogia tästä oman osaamisen kasvattamisesta. Nyt, kun helleputki on jatkunut jo
niin kauan, että maltan olla välillä sisällä, päätin kirjoittaa kolmiosaisen
sarjan, jossa paneudun enemmänkin asioihin, joita olen oppinut tässä kahden ja
puolen vuoden IT-urallani. Puhutaan ihan perusjutuista, mutta minulle nämä
olivat uutta ja näitä ei todellakaan selitetä missään, joten olen oppinut
kaiken itse, tutkimalla ja kyselemällä.
Olen aiemminkin
maininnut, että tykkään jotenkin luetteloida asioita ja mielestäni se auttaa
myös lukijaa hahmottamaan kokonaisuuden, lisäksi silloin pysytään paremmin
rajatussa aiheessa, joten tässä taas kolmen kohdan lista asioista, joita olen
oppinut ja joita tämä juttusarja käsittelee:
1. Ohjelmointi
ja ohjelmistot, softamyyjä vai koodari?
2. Pilvipalvelut
ja lyhenteet (SAAS, PAAS, RAAS, SLA), mikä ihmeen pilvi?
3. Tieto eli Data,
miksi aina Big Data, miksei ”kaikki Data”, onko tekoäly pelkkää hypetystä?
1. Ohjelmointi ja ohjelmistot
Kun aloitin urani
pankkimaailman jälkeen RPA:n (Robotic Process Automation) eli
ohjelmistorobotiikan parissa, kaverini kysyi ”oletko siis softamyyjä?” ja jo
tuo lause pisti miettimään, mitä hän oikein tarkoittaa. Tiesin kyllä, että
softa eli software on suomeksi ohjelmisto ja kun puhun ohjelmistorobotiikasta,
täytyy sen liittyä ohjelmistoihin. Mutta siis RPA:ssa automatisoidaan
ohjelmistojen käyttämistä. Jotenkin tosi nurinkurista, että ensin on kehitetty
valtava määrä ohjelmistoja, joiden piti helpottaa ihmisten arkea ja vähentää
paperin määrää. Nyt ihmisten pitää käyttää niin monia eri ohjelmistoja, jotka
eivät tietenkään kommunikoi keskenään, että pitää kehittää robotteja, jotka
käyttävät näitä ohjelmistoja, jotta ihmisten aikaa säästyy järkevämpään
tekemiseen, kuten innovointiin ja uuden liiketoiminnan kehittämiseen.
En siis ollut varsinaisesti
softamyyjä, vaan myin ratkaisua, joka helpottaa ihmisten arkea ja tekee
olemassa olevalla softalla asioita, joita ihmiset ovat tehneet tähän asti. Koodaaminen
tapahtuu puolestaan taustalla ja jokainen robotti koostuu riveistä ja riveistä
koodia, joilla annetaan robotille käskyjä tehdä erilaisia asioita. Koodaamista
eli erilaisten ohjelmointikielien kirjoittamista tai ”skriptaamista” on valtavasti
erilaista ja koska näitä ei vielä ymmärretä laajemmin, niin aina puhutaan vain
yleisesti koodareista. Riippuu siis siitä, että oletko kehittämässä jotain
applikaatiota eli sovellusta esimerkiksi älypuhelimelle vai nettisivuja, että
mitä ohjelmointikieltä sinun tulee osata. Toistaiseksi kaikki on laajan yleisön
mukaan yhtä massaa ja siksi myös luemme jatkuvasti uutisista, että ”koodareista
on pulaa ja heidän palkkansa ovat tähtitieteellisiä”, pitäisi aina muistaa
tarkistaa, että mistä ohjelmointikielestä ja sen osaamisesta nyt olikaan pulaa.
Aivan, kuten kielten opiskelu, jokainen kieli on erilainen, mutta luultavasti esimerkiksi
kiinaa osaaville maksetaan enemmän kuin ruotsia osaaville ja heistä on myös
pulaa. Sama pätee myös koodaamiseen.
Olen siis oppinut, että
ohjelmointikieliä on monenlaisia ja kaikki ohjelmistot perustuvat koodiin. Kehittämällä
hyvää loogista päättelykykyä, kehität myös ”kielipäätä” ja opit helpommin
koodaamisen logiikan. Ohjelmistot on puolestaan kehitetty helpottamaan ihmisten
arkea ja työntekoa, kuten esimerkiksi pankissa kassajärjestelmä. Ohjelmistoja
voidaan integroida eli laittaa keskustelemaan keskenään, mutta aina se ei ole
mahdollista tai se on todella kallista ja aikaa vievää, tällöin ohjelmistorobotiikka
on hyvä vaihtoehto. Esimerkiksi sairaaloissa on useita järjestelmiä, jotka
sisältävät potilastietoja ja lääkärit ja sairaanhoitajat joutuvat täyttämään
moneen paikkaan samoja tietoja.
Ohjelmistorobotiikkaan on
kehitetty omia teknologioita, joista tunnetuimpiaovat Blue Prism ja UiPath, joiden kanssa pärjää
myös ilman koodirivien kirjoittamista. Niissä on sisällä graafinen
käyttöliittymä, jonka avulla prosesseja mallinnetaan vuokaavioiden avulla kuten
prosessikaavioissa. Tämä on varmasti vauhdittanut RPA:n kasvua, kun
liiketoiminnan ihmisetkin voivat ohjelmoida helposti omia robotteja.
Ohjelmistorobotiikkaa on kuitenkin mahdollista myös koodata ja yleisimpiä ohjelmointikieliä
ovat Python ja C# (joka lausutaan C sharp). Koodaamalla on mahdollista tarttua
ohjelmointirajapintojen (Application programming interface, API) kautta
tietokantoihin ja rakentaa roboteista muun muassa nopeampia. Muuten robotilla menee todella
paljon aikaa odottamiseen, jos sille opetetaan ohjelmistojen käyttöä samojen
käyttöliittymien kautta kuin ihmisille. Käyttöliittymien vasteajathan on
optimoitu ihmiskäyttäjille. Käyttöliittymä on siis yksinkertaistettuna se ikkuna, johon tehty
selkeät valikot ja nappulat, mitä ihmiset painelevat, kun käyttävät jotain
ohjelmistoa. Rajapinta puolestaan tarjoaa mahdollisuuden tarttua siihen ”varsinaiseen tietoon”, minkä käyttämistä käyttöliittymä helpottaa.
Ohjelmistojen toimivuutta
täytyy myös testata, koska niissä voi olla virheitä eli bugeja tai ne eivät
kestä kovaa kuormitusta, jos yhtäkkiä valtavat massat käyttävät samanaikaisesti
samaa ohjelmistoa, esimerkiksi jokin konserttilippujen varausjärjestelmä. Tätä ohjelmistojen
testaamista on myös mahdollista automatisoida ja silloin puhutaan
testiautomaatiosta. Se on myös eräänlaista robotiikkaa ja monet sekoittavatkin
sen myös RPA:han. Teknisesti nämä kaksi, testiautomaatio ja
ohjelmistorobotiikka ovatkin lähellä tosiaan, mutta ohjelmistorobotiikassa
nimenomaan automatisoidaan liiketoimintaprosesseja ja ohjelmistoja, joita
liiketoiminnassa käytetään. Testiautomaatiossa puolestaan automatisoidaan
taustaprosesseja ja varmistetaan ohjelmistojen toimivuus.
Tässä oli näitä ensimmäisiä
oppeja softasta ja koodaamisesta. Seuraavalla kerralla sitten aiheena
pilvipalvelut ja siihen liittyvä termistö, joka sai ainakin minut varsin
solmuun, kun ihan untuvikkona opettelin erilaisia kirjainlyhenteitä.
Koodaamisesta ja robotiikasta tulen kirjoittamaan vielä lisää jatkossa. Nyt
takaisin aurinkoon!