Julkaistu Suomen Kuvalehti 18, 5.5.2000, Puheenvuoro (= tavallista pitempi mielipidekirjoitus, joita on yleensä yksi joka numerossa), ss. 72-73. Laitoin Internetiin 26.1.2001 varmistuttuani sitä ennen, että Suomen Kuvalehdellä ei ole mitään sitä vastaan. Suomen Kuvalehden toimituksen tekemät (varsin vähäiset) muokkaukset eivät näy tässä versiossa.

Tietotekniikan huippukoulutuksen vinoutuma

Nyt kun tietotekniikan osaajapulaa käsiteltiin Suomen Kuvalehden pääkirjoituksessakin, on aika pohtia tilannetta pintaa syvemmältä.

Tietotekniikan koulutustarve jakautuu kahteen osaan. Tarvitaan huippuluokan ihmisiä suunnittelemaan kännykän antenneita ja radio-osia, mutta heitä ei tarvita kovin paljon. Tarvitaan optiikan erikoisosaajia suunnittelemaan valokaapelijärjestelmiä, mutta heitäkään ei tarvita kovin paljon. Tarvitaan elektroniikan osaajia suunnittelemaan koneistot monenlaisiin laitteisiin älykorttilukijoista puhelinkeskuksiin. Vaikka näitä ihmisiä tarvitaan enemmän kuin edellisiä, ei heitäkään tarvita tavattoman paljon.

Se ryhmä, jota tarvitaan paljon, valtavan paljon, ovat ohjelmointiosaajat. Nykyaikaisen tietoteknisen laitteen tuotekehityskuluista usein enemmän kuin puolet menee ohjelmien määrittelyyn, toteutukseen ja testaukseen. Osuus voi olla jopa yli 90%. Lisäksi on kasvava määrä tietoteknisiä tuotteita, jotka eivät ole laitteita ollenkaan, kuten wap-palvelut, www-sivustot ja tietoturvaohjelmistot.

Ohjelmointityö on tietotekniikan suuri näkymätön. Pienessä mittakaavassa ohjelmointi on helppoa. Joskus 1970-luvulla, kun mikroprosessoreihin ei paljon mitään mahtunut, todellisia sankareita olivat laitesuunnittelijat. Ohjelmat pystyi tekemään heistä kuka tahansa, jolla sattui olemaan hieman joutilasta aikaa.

Tekniikan kehityksen myötä tilanne on täysin muuttunut. Ohjelmointi on nykyisessä suuressa mittakaavassa tavattoman vaikeaa. Tätä on hyvin vaikea uskoa, jos on kokemusta vain pienten ohjelmien teosta, mutta totta se on: sen todistavat muun muassa ne lukuisat katastrofaaliset epäonnistumiset, joita suurissa ohjelmistohankkeissa on ollut. Suuren ohjelmiston teossa kompastuskiveksi nousee moni ilmiö, jonka olemassaoloa pienen ohjelman tekijä ei edes huomaa. Siksi ohjelmointi on nykyisin niin kallista.

Ikävä kyllä 1970-luku kummittelee edelleen monen johtajan, professorin ja virkamiehen asenteissa. Ohjelmoinnin suuri määrällinen tarve on tunnustettu, koska se on niin ilmeinen, että sitä ei voi enää mitenkään kiistää. Kuitenkaan ei ole löytynyt halua tarpeellisten laadullisten muutosten tekemiseen muun muassa koulutusohjelmien rakenteessa, jatko-opiskeluresurssien jakoperusteissa ja teollisuuden käyttämissä ohjelmointitekniikoissa. Sen sijaan, että yritettäisiin luoda valmiudet 2000-luvun ohjelmien tekemiseen, yritetään luoda valmiudet tehdä suuri määrä 1970-luvun ohjelmia.

Asenteiden vinoutuma käy hyvin ilmi eräästä pienenpienestä esimerkistä. Suhteellisuusteoria katsotaan niin tärkeäksi, että jokainen tuleva insinööri, myös ohjelmistoinsinööri, joutuu opiskelemaan sen alkeet. Sitä opiskellaan jopa lukioissa. Tätä perustellaan suhteellisuusteorian merkityksellä yleissivistykselle, ja varmaankin perustelu on pätevä. Mutta millä voi perustella sitä, että laskettavuuden ja laskennallisen vaativuuden teorian perusasiat katsotaan niin tarpeettomiksi, että monin paikoin kenenkään tulevan insinöörin, edes ohjelmistoinsinöörin, ei tarvitse opiskella sen alkeita? Eikö päinvastoin niidenkin tulisi kuulua kaikkien insinöörien yleissivistykseen ja jopa lukioihin siinä missä suhteellisuusteoriakin, ottaen huomioon tietotekniikan yhteiskunnallisen merkityksen kasvun?

Koulutusohjelmien pahin rakenteellinen vinoutuma on matematiikan opetuksessa. Tuleville ohjelmoijille opetetaan joko perinteistä insinöörimatematematiikkaa tai matemaatikkojen matematiikkaa. Tällainen matematiikka on valtaosalle ohjelmoijia täysin hyödytöntä, ja lopuillekin se on vain toissijaisesti tärkeää. Ohjelmoinnin omalle matematiikalle uhrataan korkeintaan pari alkeiskurssia. Kun koulutus on tällaista, niin ei ole ihme, että käytännön ohjelmoijat ja heidän työnantajansa kokevat matematiikan hyödyttömäksi. Tämä on aiheuttanut suurta vahinkoa.

Kovan teoriaosaamisen tarve isossa ohjelmistohankkeessa on määrällisesti vähäinen, mutta silti todellinen, ja onnistumisen kannalta joskus ratkaiseva. Tarvitseehan huipputason jääkiekkojoukkuekin ainakin yhden Teemu Selänteen, vaikka kaikkien ei tarvitse olla tähtiä. Olen ollut eri yhteyksissä soveltamassa ohjelmoinnin matemaattista teoriaa puolen tusinan hyvin erityyppisen yrityksen ongelmiin. Alkuvaiheen varautuneisuuden ja epäluulon vaihtuminen hämmästykseksi ja tyytyväisyydeksi on omalta osaltaan osoittanut, että yrityksissä on piilevää ohjelmoinnin teoriaosaamisen tarvetta paljon enemmän kuin yleensä uskotaan.

Nykyinen koulutusjärjestelmä tuottaa ohjelmistotekniikan kovia teoriaosaajia hyvin vähän, tuskin edes kahtakymmentä vuodessa koko Suomessa. Tähän on monia syitä, joista yksi on jo mainitsemani ohjelmistomatematiikan syrjitty asema.

Toinen tärkeä syy on kaikkien ohjelmoijien kouluttaminen samoissa suuren sisäänoton koulutusohjelmissa. Tyypillisen koulutusohjelman monen sadan opiskelijan sisäänotosta jokseenkin kaikista voidaan kouluttaa kelvollisia ohjelmoijia, varsinkin jos vaatimustasossa ollaan hieman joustavia niin sanottujen perinteisten akateemisten taitojen kohdalla, mutta kovaan teoriaosaamiseen kykeneviä joukosta on vain muutama kymmenen. Ei heitä enempää tarvitsisi ollakaan, mutta kun nämä muutama kymmenen koulutetaan muiden joukossa, jäävät teoriataidot opettamatta heillekin. Tilannetta on yritetty korjata vapaaehtoisilla erikoiskursseilla syventävien opintojen vaiheessa, mutta työlään teorian jälkijättöinen opiskelu ei kovin monia kiinnosta, kun riviohjelmoijan taidot on jo hyvin saavutettu, ja teollisuus tekee rahakkaita työtarjouksia.

Samoista syistä nuoria on vaikea houkutella ohjelmistoteorian jatko-opintoihin, ja valmistumisajat ovat pitkät. Ohjelmistoalalla valmistuu tohtoreita niin harvakseltaan, että heitä ei riitä edes kaikkiin yliopistovirkoihin. Eräässäkin tohtorikoulussa jouduttiin pohtimaan, voiko palkallisesta jatko-opiskelupaikasta myöntää virkavapaata siksi aikaa, kun sen haltija hoitaa professuuria. Kun lupaavia nuoria tohtoreita ja tohtorikoululaisia on nyt näin vähän, niin mistä ihmeestä saadaan uudet pätevät haltijat seuraavien kymmenen vuoden aikana vapautuviin tai perustettaviin professuureihin? Siirtyykö Suomi tästä syystä pikkuhiljaa mutasarjaan tietotekniikan ydinalueella?

Tätä valitusvirttä voisi jatkaa vielä monellakin tavalla, esimerkiksi ruotimalla niiden opetusta, jotka tarvitsevat ohjelmointia sivuaineena jonkin muun aineen tueksi. Tärkein viesti tuli kuitenkin sanotuksi: olisi enemmän kuin toivottavaa, että päättäjät korjaisivat suhtautumisensa ohjelmoinnin ja sen teorian opetukseen nykytilanteen mukaiseksi. Ohjelmoinnin pääaineopiskelijoiden opetusta on ainakin tekniikan alalla radikaalisti muutettava siitä huolimatta, että perinteinen insinöörilähestymistapa sopii hyvin useimmille muille tietotekniikan osa-alueille.

Antti Valmari
Professori, Ohjelmistotekniikan laitos, Tampereen Teknillinen Korkeakoulu
Varapuheenjohtaja, Suomen Tietojenkäsittelytieteen Seura