Sytyke Laivaseminaari 5.-7.10.2017

TIEKARTTA TULEVAISUUTEEN 2037

Tiekartta tulevaisuuteen 1977 – 2037

Risto Linturi

Arvoisat kollegat,

Edellisellä tuhatluvulla, Sytykkeen 20-vuotisjuhlaseminaarissa, puhuin vaurauden luonnista; aloitin antiikin Roomasta. Vaurauden luonti on ollut tärkein kehitystä määrittävä tekijä. Nyt Suomessa kehitystä ohjaavat pelot ja varovaisuus. Puhun peloista – niiden uusista syistä ja seurauksista myöhemmin. En aloita roomalaisista, vaikka varovaisuus ja turhat pelot jäykistivät heidätkin. Yhteiskunta kehittyy ympäristön tahdissa tai sortuu.

Tämä on Sytykkeen 20. -laivaseminaari. Lienee sopivaa katsoa vuosikymmen kerrallaan systeemityön ja tietojärjestelmien muutosta. Lopetan vuoteen 2037, jolloin Suomi täyttää 120 vuotta.

60-luvulla puhuttiin Lumikista ja seitsemästä kääpiöstä. 70-luvulla IBM hallitsi keskuskonemarkkinaa jo lähes suvereenisti. Minikoneet nousivat kehityksessä etualalle. Ne poikkesivat toisistaan niin paljon, että kunkin ympärille syntyi erillinen ekosysteemi. Koneiden välinen tiedonsiirto ja sovellusten siirto koneesta toiseen olivat suuritöisiä projekteja.

Eräajo oli ajan tapa. Tiedot syötettiin reikäkorttien tai reikänauhojen avulla. Raportit luettiin paperilta. Päätelaitteita käyttivät aluksi vain operaattorit ja lävistäjät. Sitten ryhdyttiin puhumaan loppukäyttäjistä. Päätteet muuttuivat kirjoituskonemaisista kuvaputkipäätteiksi. Lomakkeiden editointia tukivat vain kalliit, älykkäät päätteet erityisesti IBM-ympäristössä. Osituskäyttökoneiden teho ei riittänyt edes yksinkertaisimpaan tekstinkäsittelyyn. Se vaati omat laitteensa.

Systeemityö oli yksinkertaista. Organisaation tietojenkäsittelytarpeet selvitettiin haastattelemalla työntekijöitä. Vain määrämuotoinen tieto analysoitiin. Tiedonkulkua optimoitiin ja automatisoitiin. Työt vaiheistettiin koneen rytmiin ja ihmiset koulutettiin toimimaan koneen ehdoilla. Suunnittelu, ohjelmointi ja lävistys olivat selkeästi eri tehtäviä ja tietojärjestelmäarkkitehtuuri oli tietokonevalmistajan määräämä.

TKK:lla meille opetettiin tuolloin selkeää ohjelmointia. Nopeuteen ei haluttu kiinnittää huomiota. Koneenläheisestä ohjelmoinnista ohjattiin lausekieliin. Oma paneutumiseni mikrotietokoneisiin ja työstökoneen ja puhelinrobotin ohjelmointiin karistivat nuo ajatukset mielestä.

SYPistä irronnut Tietotehdas, Tieto, oli selkeästi suurin ohjelmistotalo. Työntekijöitä v. 81 oli 400, vanhat lävistäjät, operaattorit, myyjät sekä hallinto mukaan lukien. Suurimmat asiakkaat olivat kaupan, vakuutuksen ja pankkien toimialoilta. TT:n hallitus päätti panostaa mikrotietokoneisiin. Minut palkattiin valmistelemaan uusia mikropuolen liiketoimintoja.

Mikrojen ja Unixin nousu leimaa 80-lukua, vaikka systeemityö pääosin tehtiin vielä suurkoneiden ja minikoneiden ympäristöön. Paine yhteensopivuuteen kasvoi yritysten verkostoitumisen myötä. Alihankkijan ja päämiehen tietojärjestelmien yhteensovittaminen saattoi vaatia useiden henkilötyövuosien panostuksia. Fuusiot johtivat kymmeniin työvuosiin.

Standardoituvan tietoliikenteen ja yhtenäistyvän laitemaailman myötä systeemityö muuttui paradoksaalisesti aiempaa haastavammaksi. Uudet laitteet tarjosivat runsaan valikoiman kehitysvälineitä. Valinnan vaikeutta lisäsi se, etteivät samaan laitteeseen saatavat välineet aina olleet keskenään yhteensopivia. Systeemityölle asetettiin haasteeksi, että suunnittelu on tehtävä välineriippumattomasti, mutta se käytännössä johti määritystyöhön, jota toteuttajat eivät kyenneet järkevästi noudattamaan.

Tietojärjestelmäarkkitehdin rooli syntyi ja kasvoi tärkeäksi. Systeemityössä oli pakko ottaa ohjelmoinnin tehokkuus ja sovellusten käyttäjäystävällisyys huomioon. Sovellusrungot yleistyivät. Oma panoksemme tuohon oli K-Mies menetelmäpaketti. Sitä käyttivät kymmenet merkittävät ohjelmistotalot ja yritysten atk-yksiköt.

1985 Suomessa tehtiin jo ensimmäisiä Windows-sovelluksia. Valtion tietokonekeskuksen Teko ja R. Linturi Oy:n Alloc jakavat ykkössijan nuolen selkäänsä saaneina pioneereina. SQL alkoi vallata alaa, vaikka sitä edeltäneet verkkomalliset Codasyl -kannat olisivat sopineet vuorovaikutteisiin sovelluksiin huomattavasti paremmin.

Vuosikymmenen lopulla mikrotietokoneet olivat lyöneet itsensä läpi yritysten tietojärjestelmien osana. Puhuttiin client server -mallista sovellusarkkitehtuurina. Ote käyttäjään alkoi löystyä, kun yhä laajempi joukko työntekijöistä sai mikrotietokoneen eteensä. yhteistyökumppanit ja asiakkaat tulivat järjestelmien käyttäjiksi. Heitä ei voinut enää komentaa järjestelmän osiksi, vaan sovellusten tuli sietää kaikenlaista käyttöä.

90-luvulla mikrot haastoivat keskuskoneiden ja minikoneiden roolin palvelimina. Sovellusten suunnittelu kriisiytyi graafisen käyttöliittymän tilattomuuden vuoksi. Käyttäjä tuli mallintaa satunnaiseksi toimijaksi. Nopeasti muuttuva ympäristö johti vesiputousmalliksi kutsutun suunnitteluprosessin ja laajojen kokonaisvaltaisten kehityshankkeiden hautaamiseen. Ohjelmoija ja käyttäjä yhdessä saivat suunnitella sovelluksen käyttöliittymän prototyyppien avulla. Suunnittelija jäi sivuun.

Itse opetin 90-luvulla oliopohjaisia suunnittelumenetelmiä ja erityisesti kolmitasomallia, jossa käyttöliittymä, business-logiikka ja tietokanta on erotettu toisistaan. Se malli olisi monessa sovelluksessa edelleen kova sana, mutta tilaajat eivät sitä ole osanneet vaatia.

90-luvun Internet oli sovellusympäristönä vaatimaton. Virtuaalinen Helsinki osoitti suuntaa, mutta valtavirtaa olivat yksinkertaiset HTML-sivut. Tietojärjestelmät toki jo yleisesti keskustelivat keskenään TCP/IP -yhteyksillä ja internetin käytännöillä. Intranet ja extranet tunnettiin.

Systeemityön kriisi on laajentunut 2000 luvulla. Puhelinten appsit ja some yhdistävät käyttäjät toisiinsa ja netin palveluihin. Tämä tulisi käyttää voimavarana. Panokset on kuitenkin laitettu toisaalle. ITIL ja muut työkalut tietojärjestelmäprojektien hallittuun läpivientiin ovat toki yksi vastaus monimutkaisuuteen. Projektinhallinta on vain pintaraapaisu.

Katsotaan, mitä onnistujat ovat tehneet. Amazon, Uber, AirBnB, Apple, Google, Microsoft ja monet muut. Onnistujat ovat rakentaneet ekosysteemin, jossa on win-win -logiikka. Tietojärjestelmiä ei ole ajateltu laskentatehtävinä vaan kommunikointialustoina, jotka yhdistävät eri toimijoiden tietoja toisiinsa. Näihin on myös rakennettu kasvupolku. Yksittäisten organisaatioiden hyvätasoisetkaan palvelut netissä eivät muodosta tämän kaltaisia ekosysteemejä tai kasvupolkuja.

Wikipediassa systeemityö kuvataan organisaation toiminnan kehittämiseksi ja korostetaan sisäistä luonnetta. Tästä painotuksesta tulisi päästä eroon. Systeemityö tulisi nähdä laajana pyrkimyksenä vaikuttaa organisaatiorajojen yli. Systeemi ei koostu organisaatiosta ja sen sidosryhmistä, vaan kaikista niistä, joihin valinnat voivat vaikuttaa.

Itselleni tärkeänä esimerkkinä mainitsen Innofactorin, jonka kestävä kasvu suunniteltiin Microsoft-ympäristössä pitäytymisen varaan. Tämä johti asiakaskunnan valikoitumiseen, mutta myös osaamisen kertymiseen, valmismoduulien kehitykseen ja ylläpidon kannattavuuteen.

Kriisiytymisen suurin yksittäinen syy liittyy mielestäni lainsäädäntöön. Voiko edes määritellä laadukkaan toteutuksen ennen suunnittelua? Härski myyjä tarjoaa helposti tarjouspyynnön mukaisen, mutta käytännössä puutteellisen järjestelmän. Voitto tehdään pakollisten laajennusten avulla.

Suurin kilpailulainsäädännön virhe on se, ettei mainetietoa tai aiempia negatiivisia kokemuksia saa huomioida. Tilaajalle asetetaan kohtuuton osaamisvaatimus. Seurauksena on epäterve kilpailu ja heikko laatu.

Vendor-lock -pulmiin on vastattu avoimella lähdekoodilla ja toteutuksia pilkkomalla. Siinä katoaa ohjelmistotalon oma investointihalu. Toimiva ja ongelmaton ratkaisu on edelleen haussa. SaaS on viimeisin yritys.

Tätä 2010 -lukua hallitsee byrokratia ja kuluttajistuminen. Tietoturva jäykistää sekä kehitystä että käyttöä. Sekavuuden automatisointi on päivän sana terveydenhuollon tietojärjestelmissä. Taylor saisi käydä katsomassa, kuinka suuri osa lääkärin ajasta on automaattisen tietojenkäsittelyn manuaalista käyttöä, ja kuinka suuri osa potilastyötä.

Ennen edessä olevien vuosikymmenten haasteita, pohditaan systeemiä eli systeemityön objektia. Kysehän ei ole vain tietojärjestelmäkehityksestä. Haetaan vauhtia Bouldingin systeemiteoriasta ja systeemien tyypeistä.

Alussa on staattinen rakenne. Järjestelmäarkkitehtuuri tai käsitekaavio ja organisaatiohierarkia edustavat sitä. Toinen taso sisältää yksinkertaisen toiminnallisuuden: järjestelytehtävät, prosessikuvaukset ja eräajot esimerkkeinä. Kolmas taso tuo takaisinkytkennän mukaan. Tapahtumat säätyvät tulosten ja havaintojen perusteella. Moni on jäänyt tähän tasoon.

Neljäs taso nostaa meidät suljetuista malleista avoimiin systeemeihin. Asiat voivat tapahtua tietojärjestelmän ohjeista riippumatta. Ulkopuolisia virikkeitä seurataan ja niihin reagoidaan. Malli on tapahtumaohjattu ja sääntöpohjainen. Suunnittelija hylkää vuokaaviot ja avaa rajapinnat.

Viides taso kuvaa kasvua. Systeemi ei valmistu vesiputousmallin mukaisesti; kehitykselle suunnitellaan edellytykset. Resilienssi ja erityisesti antifragiilisuus, mutta myös kehityspolkujen suunnittelu sekä avointen alustojen kehitys liittyvät tähän ketterän systeemityön tasoon.

Kuudennella tasolla huomataan, että käyttäjät ovat tietoisia itsestään ja omista eduistaan. Pelillisyyden ja onnistumisen kokemusten lisääminen systeemeihin alkaa tästä oivalluksesta, mutta myös tietoisuus valvonnasta.

Seitsemäs taso nojaa symboleihin. Ihmiset keräävät ympärilleen hyväksyttäviä sanoja. Asioiden nimeäminen vaikuttaa siihen, miten niitä käsitellään. Käyttöliittymäsuunnittelua edeltävä yrityskulttuurien tutkiminen voi parantaa käyttökokemuksia olennaisesti. Muistan opettaneeni myyttianalyysiä osana käyttöliittymäsuunnittelua.

Kahdeksannella tasolla tarkastellaan sosiaalista dynamiikkaa. Virusten tehokas leviäminen vaatii sen ymmärrystä. Ekosysteemien rakentaminen, luottamusalustojen menestys, Trumpin saaminen presidentiksi! Sosiaalisen dynamiikan suunnittelu on tämän hetken tärkeimpiä systeemitasoja ja alustaliiketoiminnalle välttämätön edellytys.

Yhdeksäs ja korkein taso – transsendentaalinen taso – puhuu ontologisista kysymyksistä. Käsiteanalyysi hyvin syvällisesti ymmärrettynä on tätä. Mistä oikeasti on kyse, ja minkälaisia objekteja meillä kannattaisi olla? Miten kategoriat kannattaa muodostaa? Käärme taisi nyt syödä häntänsä.

Palataan tulevaisuuteen. Vuoden 1999 puheessa lupasin monia asioita, jotka ovat nykyistä systeemityötä. Osa toteutuu laajemmin ensi vuosikymmenellä. Puhun nyt enemmän yleisperiaatteiden tasolla. Huomisessa esityksessä sukelletaan tulevaisuuden yksityiskohtiin.

Nyt kovasti hypetetty IoT on 20-luvulla kuuma aihe. Kymmenet vuodet on toki jo luettu mittalaitteita ja ohjattu prosesseja tietoteknisin välinein. Hallinto ja muu laskentatoimi on kuitenkin pääosin pidetty erillään tästä.

Tämä muuttuu nyt. Robotit tilaavat, mitä tarvitsevat. Toiset robotit käsittelevät ja toimittavat tilaukset. Siirrymme taas automaattisen tietojenkäsittelyn aikaan – ihmisen ei tarvitse automaattisia systeemeitä käyttää. Eräajoksi se kai tulisi ajatella, jos tilaus johtaa robotisoituun mittaamiseen, suunnitteluun, toteutukseen ja toimitukseen.

Business Process Re-engineering lienee sopiva systeemityön viitekehys. Liiketoiminta ja kokonaisten B2B2C -ketjujen toiminta tulisi suunnitella uudelleen. Yritysasiakkaiden lisäksi tulisi ymmärtää heidän asiakkaidensa arvomaailma ja teknologian siihen tarjoamat mahdollisuudet.

Tämä on 20-luvun suuri haaste. Toinen, vielä suurempi haaste liittyy tekoälyyn. Miten suunnitellaan tietojärjestelmä, joka oppii itse, ja joka ei edes osaa kertoa, mitä kaikkea on oppinut, eikä perustella päätöksiä.

Tekoälyyn kehitetään nyt prosessoreita, jotka matkivat hermostoa. Intelin juuri julkistamassa prosessorissa on 130 tuhatta hermosolua ja 130 miljoonaa synapsia niiden välillä. Hummereilla on vähemmän älyä ja sosiaalisesti älykkäillä mehiläisillä kuusinkertainen määrä.

Tekoäly oppii tunnistamaan hahmoja, mutta parhaat tulokset vaativat miljoonia näytteitä. Takeita ei ole siitä, oppiiko se rasistiksi vai sovinistiksi. Tilastolliset säännönmukaisuudet opettavat kaikenlaista.

Suunnittelija voi tehdä mallin, jonka riippuvuussuhteisiin tekoäly luottaa. Mallin avulla tekoäly simuloi tilanteita ja oppia niistä. Tämä vaatii vähiten havaintoaineistoa, mutta sopii vain yksinkertaisin malleihin. Vapaammassa oppimisessa tekoälylle annetaan luokiteltua dataa tai kokonaan luokittelematontakin dataa. Kone tunnistaa itse kategoriat ja kausaliteetit. Syväoppimisessa tämä ohjataan tapahtumaan kerroksittain.

Systeemityön haasteet eivät rajoitu oppimisen ohjaukseen eikä edes aineiston haalimiseen. Miljoonat havainnot eivät synny helposti. Haasteet ovat myös teknisiä – oppimisnopeus ja lopputuloksen laatu vaihtelevat hyvin suuresti. Valittavissa on jo nyt lukuisia tekoälyalustoja.

Suurin haaste saattaa olla lainsäädännössä. Vanha henkilötietolaki ja uusi GDPR vaativat, että tietojärjestelmän on tuotettava rekisteriseloste tiedoista, joiden avulla henkilön voi yksilöidä ja mahdollistettava näiden tietojen poistaminen. Jos tekoäly oppii kamerakuvien avulla, on sen yhtä mahdotonta noudattaa tällaista lakia kuin lapsen, jonka päästä saa hahmot ja assosiaatiot pois ainoastaan kirurgin veitsellä. En mene tähän nyt syvemmin – sanon vain, että tämän ymmärtäminen vei pitkän hetken.

2030-luvulle mentäessä nämä asiat on sujuvasti ratkaistu maissa, joissa kehitys etenee. Silloin edistyksellisissä hankkeissa ohjelmoidaan biologiaa. Synteettinen biologia etenee jo. Viruksia ja bakteereita ohjelmoidaan laboratorioissa tuottamaan uusia aineita. Vuonna 2037 elatusmaljoissa kasvaa jo nykyisten 3D-tulostimien tyylisesti biologista materiaa ja tavaraa CAD-mallien mukaan. Nahkakengät tai dodopihvi, mutta myös lääkeaineet tai aurinkopaneelit syntyvät kattilassa. Synteettinen biologia tuottaa myös elämää tuolloin. Uusia bakteereja, hiivoja, viruksia ja GMO-perhosia syntyy autotallissa.

Miten vaikuttaa systeemityöhön se, että me näemme AR-lasien avulla harhakuvia, tai voimme VR-laseilla siirtyä muihin maailmoihin? Kuinka vaikuttaa, ettemme enää erota tekoälyä oikeasta ihmisestä tai, että tuotanto, kauppa, logistiikka ja useimmat palvelut ovat robottien hoidossa? Muutos tulee olemaan kehittyneissä maissa todella nopea.

Systeemiset haavoittuvuudet ovat massiivisia. Antifragiilisuuden on oltava systeemisuunnittelun keskiössä. Kuinka luodaan systeemeitä, joissa ei ole keskitettyjä riskejä, ja jotka vahvistuvat iskuista. Kuinka luodaan systeemeitä, jotka ovat itsekorjaavia ja itseoppivia. Kuinka luodaan systeemejä, jotka muuttuvat tarpeiden muuttuessa ja kehittyvät mahdollisuuksien kasvaessa.

Biologia on kerroksittaista. Itsekorjaavuus ilmenee jokaisessa kerroksessa – DNA:ssa, soluissa, elimissä, yksilössä, yhteisössä ja yhteiskunnassa. Tämä on syntynyt evolutiivisten algoritmien avulla. Näiden ajatusten käyttö systeemityössä ei vielä ole edes lapsenkengissä, mutta teoriaa on kehitetty. Vikasietoisia järjestelmiä tarvitaan todella kipeästi, jos laskemme tietojärjestelmien ohjaamat robotit kaduille ja koteihin.

Systeemityön varhaisina vuosikymmeninä kokonaisuus hallitsi osia. Nyt monet osat koettavat hallita kokonaisuutta. Ohjelmistojen avulla kilpaillaan vallasta ja rahasta. Niiden avulla tuhotaan kokonaisia toimialoja ja synnytetään uusia. Milloin kehitetään ensimmäinen järjestelmä, joka säätiöi itsensä ja hankkimaan taloudellisen autonomian. Pörssikauppa on jo valtaosin tekoälyjen hallussa.

Haasteita riittää, mutta systeemisen ajattelun keinoin niihin on vastattava. Meidän on suunniteltava uudestaan koko länsimaisen teollisen ja taloudellisen järjestelmän perusta, jotta globaaleista haasteista selvitään. Nämä ovat systeemityön tulevia haasteita.

Kiitos kärsivällisyydestä!