Järjestelmäkehitystä 100 vuotta Suomessa
Tiivistelmä
Suomi on kehittynyt hyvinvointivaltio ja tietoyhteiskunta. Tämä on pitkäaikaisen kehityksen tulosta. Ammattimaisen kehittämisen kohti tietoyhteiskuntaa voi katsoa alkaneen ensimmäisten reikäkorttikoneiden käyttöönotosta Tilastokeskuksessa vuodesta 1923 lähtien.
Varsinaiset tietokoneet tulivat käyttöön 1950-luvun lopulta lähtien, ensin hitaasti ja sittemmin suorastaan yhteiskunnan ja elinkeinoelämän valtavirtana. 1960-luvulla koottiin myös systeeminsuunnittelun ammatillinen sisältö yksiin kansiin Eero Kostamon toimittamana kirjana.
Tässä artikkelissa kuvataan järjestelmäkehitystä lähinnä viimeisen 60 vuoden ajalta. Muistini ei riitä pitemmälle, eikä ihan alkuvuosia ole kunnolla dokumentoitu järjestelmäkehittäjän näkökulmasta.
Kehityksessä on ollut aaltoilua, hitaampia ja nopeampia kausia. Nykyhetkeä voidaan kuvata sanalla digitalisaatio, kaiken tiedon siirtymisenä verkkoon ja binääriseen muotoon.
Artikkelissa ei kuvata IT-alan kehitystä laajemmin, paitsi jos sillä on merkitystä järjestelmäkehityksen kannalta.
Tulevaisuuden hahmottaminen ja varsinkin sen ennustaminen on vaikeaa järjestelmäkehityksen näkökulmasta.
Tiedämme, että siellä on nykyistä enemmän tekoälyä, suuria tietoaineistoja, uusia palveluja kaikkien käyttöön ja uudenlaista liiketoimintaa. Pelättävissä on myös uudenlaista rikollisuutta, huoltovarmuuden uhkia ja eriasteista polarisaatiota.
Hyvä ja ammattitaitoinen järjestelmäkehitys on entistä tärkeämpää, se on tulevaisuutemme todellinen avainammatti.
FM Henry Haglund, professori (emeritus) Pertti Järvinen, FM Eero Lähteenmäki ja DI Reino Myllymäki ovat monin tavoin auttaneet minua tämän artikkelin laadinnassa. Olen saanut heiltä tekstinpalasia, muistoja oman työuran alkuajoilta ja hyviä kommentteja artikkelin luonnoksiin.
Luettavuuden parantamiseksi en ole kuitenkaan merkinnyt artikkeliin kuin muutaman lähteen. Tekstin oikeellisuus on luonnollisesti vain minun vastuullani.
Risto Nevalainen, FISMA ry
1. Systeemiajattelua jo ennen IT-systeemejä
Järjestelmäkehitys – aiemmin yleisesti käytetty termi on systeeminsuunnittelu – voidaan nähdä systeemiajattelun ja akateemisemmin systeemiteorian soveltamisalana.
Systeemiteoria antoi hahmoa ja muotoa erityisesti luonnon selittämiselle ja varsin aikaisessa vaiheessa myös organisaatioiden johtamiselle.
Oppi-isänä voidaan pitää biologi Ludwig von Bertalanffyä, joka kuvasi luontoa järjestelmänä jo 1920-luvulta lähtien. Hänen kirjansa ”General System Theory” on vuodelta 1950.
Samoihin aikoihin syntyi termi kybernetiikka, ja sen perusteoksena on Norbert Wienerin teos ”Cybernetics: Or Control and Communication in the Animal and the Machine” (1948).Molemmat kirjat loivat yleisen tavan tarkastella asioita kokonaisuutena, enemmän kuin osiensa summana.
Seuraavina vuosikymmeninä systeemiajattelu levisi liikkeenjohdon perustyökaluksi eri menetelminä, kuten prosessiajattelu, laatujohtaminen ja arvoketjut.
Maininnan arvoinen on professori Jay Forresterin luoma systeemidynamiikka, jonka tunnetuin esimerkki on Rooman Klubille tehty kirja ja maailmanmalli ”Kasvun rajat” vuonna 1972. Siinä oleellista on takaisinkytkentä, eli järjestelmä pyrkii tavoitetilaansa osittain itseohjauksen avulla. Tätä ajatusta on sovellettu myös yhteiskuntaan, tuloksena esimerkiksi Yrjö Ahmavaaran kirja ”Social Cybernetics” (Yhteiskuntakybernetiikka) vuodelta 1974.
Systeemiajattelu on edelleen voimissaan. Nykyään sitä tutkitaan ja käytetään monimutkaisten ilmiöiden kuvaamiseen, kuten esimerkiksi ilmastonmuutos. Systeemiajattelu on luonteeltaan geneeristä ja sovellettavissa laajasti. Digitaaliset systeemit ovat usein hyvin monimutkaisia, joten niiden kehittäminen on nykyisin systeemiajattelun valtavirtaa.
Systeemiajattelu näkyy vahvasti standardeissa. Keskeinen käsite on Systems Engineering – käännökseni on nykyään järjestelmäkehitys.
Laajasti standardeissa käytetty termi on myös ohjelmistokehitys – Software Engineering. Standardeja on tehty yli 50 vuotta, ja niissä kiteytyy alan oleellisin sisältö, ohjelmistoihin perustuvat laajat digitaaliset järjestelmät.
Useilla turvallisuuskriittisillä aloilla on tehty myös omia järjestelmästandardeja 1980-luvulta lähtien. Termiä standardointi on käytetty yrityksissä myös vapaammin, tarkoittaen jonkun asian vakiointia ja uudelleenkäyttöä.
IT-alan termistö on mullistunut moneen kertaan, pääasiassa teknisen kehityksen takia.
IT-järjestelmät ovat pääsääntöisesti ottaneet käyttöönsä kaiken resurssin, mitä on ollut käytettävissä.
Muistin tarve ja käyttö on monituhatkertaistunut, samoin tietokoneiden laskentateho ja tiedonsiirron nopeus. Samalla IT on muuttunut tukitoiminnosta liiketoiminnan suorittajaksi, uudistajaksi ja mahdollistajaksi. Järjestelmäkehityksen ammattikuva on monipuolistunut, sisältäen nykyään esimerkiksi palvelumuotoilun vaatimuksia. Alan terminologia on kehittynyt siinä samalla, katso kokooma 1.
Järjestelmäkehityksessä oli alun perin monia erillisiä suuntauksia. Yrityksissä oli IT-osasto ja tietohallinto, pääasiana operatiivisten järjestelmien luominen ja pyörittäminen. Teollisuudessa oli tuotannon automatisointia, tuotekehitystä ja instrumentointia, joka on liukunut vähitellen laitekehityksestä ohjelmistopainotteiseksi. Viestinnässä on siirrytty digitalisaatioon, ja monet nykyiset IT-palvelutkin ovat sisältöpainotteisia.
Vuosikymmeniä erillään olleet alat ovat lähentyneet ja ovat nykyisin järjestelmäkehityksen yhteistä osaamista. Valtaosan työstään IT:tä käyttävät mukaan lukien IT-alalla on noin 300 000 työpaikkaa, eli se on yhteiskunnan suurimpia työllistäjiä. Voidaankin sanoa, että olemme tietoyhteiskunnassa. Järjestelmäkehittäjät ovat sen ydinammatti.
2. Reikiä korteissa - uutta kaikille sata vuotta sitten
Sadan vuoden takainen tietotekniikka oli reikäkorttikoneita ja -sovelluksia. Kaikki oli analogista ja sähkömekaaniseen logiikkaan perustuvaa.
Tilastokeskus otti reikäkorttikoneen ensimmäisenä käyttöön vuonna 1923 (hankintavuosi 1922) . 1920-luvulla reikäkorttilaitteistoja hankkivat myös Henkivakuutusyhtiö Salama ja Vakuutusyhtiö Sampo.
Kansaneläkelaitos otti ensimmäiset reikäkorttikoneensa käyttöön vuosina 1940–1941, ja sotavuosien jälkeen myös Pohjoismaiden Yhdyspankki ja Postipankki hankkivat reikäkorttikoneita. Reikäkorttilaitteistojen valmistajana toimintansa aloittanut IBM perusti tytäryhtiön Suomeen vuonna 1936, ja vuonna 1952 IBM alkoi myös painaa reikäkortteja omassa painossaan Helsingissä. Vuonna 1955 noin 80 suomalaista organisaatiota käytti reikäkorttikoneita.
Reikäkorttikoneen hankinta oli sota-aikaan varsin hankalaa ja monivaiheista. Pohjoismaiden Yhdyspankki (PYP, myöh. SYP, myöh. Merita, myöh. Nordea) oli tehnyt ensimmäisenä pohjoismaisena pankkina juuri ennen sotaa päätöksen IBM:n reikäkorttikoneen hankkimisesta.
Koneet tuotiin Petsamon ja Jäämerentien kautta, samoin tulivat maahan silloisen Henkivakuutusyhtiö Suomen uudet IBM-koneet. Koneet otettiin käyttöön vasta sodan jälkeen. PYP:lle oli kuitenkin hankittava 1940-luvun jälkipuoliskolla uudet, sillä sen tilaama kone oli sodan aikana jouduttu käyttämään varaosiksi, vain kuoret olivat jäljellä.
Reikäkorteista oli tarjolla erilaisia vaihtoehtoja. Oli pelkästään käsin käytettäviä, kuten neulakortit ja tirkistyskortit. Tärkeä reikäkorttien parissa työskennellyt henkilö oli Herman Hollerith (1860–1929). Hän oli yksi niistä keksijöistä, joka käytti Joseph Marie Jacguardin kutomakoneessa käyttämää ideaa reikäkorteista hyväkseen omassa keksinnössään.Hollerith oli ensimmäinen, joka käytti reikäkortteja tiedon käsittelemiseen ja tallentamiseen. Hänen keksimänsä kone USA:n väestönlaskentaan voitti kilpailun 1890. Tämän ”taulukointikoneen” avulla pystyttiin käsittelemään rei’itettyjen korttien avulla väestönlaskenta hyvin tehokkaasti. Herman Hollerithilla on ollut suuri vaikutus ohjelmoinnin ja tietokoneiden synnylle ja kehittymiselle. Hänen perustamastaan yhtiöstä on aikojen saatossa tullut IBM, vuosikymmeniä melkeinpä monopoliasemassa ollut IT-yhtiö.
Reikäkorttikoneella pystyttiin tekemään ”tai”-hakuja, mutta ei ”ja”-hakuja. Oli toki mahdollista, että hakuja suoritettiin peräkkäin. Siten päästiin lähemmäs nykyaikaa ja ohjelmistolähtöistä tietojenkäsittelyä, vaaditun liiketoimintalogiikan suorittamista.Reikäkorttikoneissa tiedot ja koneen suorittamat ohjelmat tallennettiin pahvikorteille. Reikäkorteissa olevat reiät esittivät jonkin vaihtoehdon toteutumista. Näistä kohdista sähkö pääsi kulkemaan korttipakan läpi laitteen laskuriin. Reikäkorttikone määrättiin suorittamaan erilaisia tehtäviä kytkemällä useita kaapeleita sen paneeliin kiinni. Reikäkorttikoneella ei kuitenkaan ollut omaa muistia, joten johdot jouduttiin aina kytkemään uudelleen jokaista tehtävää varten. Tämä teki reikäkorttikoneen käytöstä vaivalloista ja aikaa vievää.
Reikäkorttikoneista alkunsa saaneet varsinaiset tietokoneet erosivatkin juuri muistin osalta edeltäjistään. Vuonna 1952 markkinoille tullut IBM 701 Calculator oli ensimmäinen IBM:n koneista, jota voitiin kutsua tietokoneeksi sen perusteella, että sillä oli koneellinen muisti, johon voitiin asentaa ohjelmia. Se oli ensimmäinen tietokone, jota käytettiin tiedonhakuun, jossa haettiin usealla asiasanalla samanaikaisesti.
Mikrofilmi tuli reikäkorttien rinnalle ja tilalle, varsinkin kun haluttiin tallentaa ja hakea dokumentteja. Etuna oli käsittelyn halpuus ja suhteellisen suurien tietomassojen käsittely. Reikäkorteissa oli aina vaarana pakan sekoittuminen. Tämä estettin vetämällä pakan yli kulmittain viiva. Jos pakkaan tuli uusia kortteja, kannatti monistaa kaikki ja saada taas uusi ehjä viiva!
Lähde: https://fi.wikipedia.org/wiki/Reik%C3%A4korttikone
3. Systeemisuunnittelun synty
Muistiin talletetun ohjelman periaate on vanha. Englantilainen matemaatikko Charles Babbage oli ensimmäisiä tieteilijöitä, jotka keksivät idean tietokoneesta. Babbage omisti koko elämänsä tutkimukselleen, mutta hänen saavutuksistaan pitäisi kiittää myös tutkimuksessa häntä tukenutta ja auttanutta nuorta Ada Lovelacea, jonka havainnot olivat reippaasti omaa aikaansa edellä. Jos aikalaiset olisivat ymmärtäneet Adan työtä, digiaika olisi voinut alkaa jo 1800-luvulla, kuten James Essingerin kirjassa ”Adan algoritmi” todetaan. Ada Lovelace keksi ensimmäisenä idean ”operaatioiden koneesta” eli tietokoneesta. Ada Lovelace näki tietokoneiden aikakauden kirkkaasti etukäteen. Babbagen konetta on yritetty rakentaa nykyaikanakin, mutta tietääkseni ei ole saatu toimimaan kunnolla.
Elektroniikan kehitys toisen maailmansodan jälkeen mahdollisti tietokoneen, kuten sen nykyisin ymmärrämme. Pian voitiin tehdä ohjelmia ensimmäisten yleiskäyttöisten ohjelmointikielten avulla, kuten Fortran, Algol ja Cobol. Laiteläheisessä ohjelmoinnissa käytettiin yleisimmin Assembleria. Ohjelmointikielten yhteyteen syntyi erilaisia ohjeistoja. Samaan aikaan oli opittu tekemään varsin laajojakin reikäkorttisovelluksia. Näistä aineksista systeeminsuunnittelu vähitellen nousi omaksi ammattitaidokseen. Aluksi huomio oli sovellutusten toimivuudessa, kun tietokoneet ja niiden muistit olivat hyvin rajallinen resurssi.
Eero Kostamon toimittama kirja ”Automaattisten tietojenkäsittelyjärjestelmien suunnittelu” (1963) loi järjestelmäkehityksen ammattisisällön. Silloin puhuttiin systeeminsuunnittelusta tai systeemityöstä. Tässä artikkelissa käytän termiä järjestelmäkehitys, kun samaa työtä tehdään nykyään myös automaatio- ja viestintäjärjestelmien kehittämisessä. Niiden vastaavilla ammateilla on ollut eri nimikkeitä, kuten automaatiosuunnittelija tai palvelumuotoilija.
Toinen systeeminsuunnittelun alkuaikojen iso nimi Suomessa oli Miikka Jahnukainen. Hän julkaisi kirjan ”ATK-systeemien dokumentointi ja standardointi” vuonna 1966. Muutaman vuoden sisällä tästä eteenpäin Jahnukainen osallistui useiden systeemityön vaihejakoa ja hallintaa koskevien oppikirjojen laadintaan. Tunnetuin on Tietojenkäsittelyliiton julkaisu 25 ”Tietosysteemin rakentaminen” (1973, 1975). Kirja tunnetaan kansikuvansa perusteella myös ”naula ja vasara”- kirjana. Siitä tuli pitkäaikainen oppikirja erityisesti ammattikorkeakouluihin, ensimmäisenä ATK-Instituuttiin.
Jo 1960-luvulla saatiin aikaan monet järjestelmäkehityksen keskeiset mallit, joita käytetään vieläkin:
• Vaihejakomalli. Siitä oli kirjoittajilla erilaisia versioita. Pääperiaate oli tarkentuva suunnittelu, eli esitutkimuksesta toteutukseen ja käyttöönottoon.
• Iteraatio, eli tarvittava määrä kehittämiskierroksia ennen käyttöönottoa. Nykyään valtavirtaa on ketterä kehittäminen, eli iteraatiot ovat verraten lyhyitä ja pyrkivät päättymään näkyvään tulokseen.
• Huomio laatuun, ennen kaikkea käytön aikainen virheettömyys (tai pikemminkin virheiden hallinta). Tekniikka oli epäluotettavaa ja rajoittavaa, joten ongelmia riitti ratkottavaksi. Nykyään on testaajien ammattikunta, ja hyvät välineet tekevät osansa monimutkaisten järjestelmien testauksessa.
• Kokonaisuuden hallinta, eli omana loogisena tasonaan on kokonaissysteemityö. Nykyäänkin tätä tehdään, ja arkkitehtuurin hahmottaminen on sen keskeinen osa.Tietosisältöä kuvattiin ensisijaisesti lomakkeilla. Siten kerättiin myös käsiteltävä tieto. Systeemityön rinnalle syntyi lomakesuunnittelijoiden, lävistäjien ja luokittelijoiden ammattikunta.
Perusperiaatteita täydennettiin kokemusten perusteella. Läheskään aina kehitystyössä ei onnistuttu, eli työ oli ennakoitua vaikeampaa, kalliimpaa tai kesti pitempään kuin oli arvioitu. Tarvittiin hallintamalli, käytännössä projektimainen kehittäminen. Naula ja vasara- kirjassa käytetään termiä tietosysteemin rakentamisen ohjaus. Jakona oli projektimainen, tehtävälähtöinen ohjaus ja sisältöpainotteinen, tuloksen laatua korostava ohjaus.
Projektimainen systeemityö sai vuosikymmenten kuluessa lähes virtuaalimaisia piirteitä. Tehtiin työmalleja ja ne upotettiin projektin suunnitteluvälineisiin. Kehitettiin estimointimenetelmiä, jotta projekti saataisiin mitoitettua oikein ja riskit hallintaan. Kehitettiin projektien johtoryhmän työskentelyä mittareineen, esimerkiksi valmiustason raportointi.
Systeemityötä ruvettiin ulkoistamaan jo aikaisessa vaiheessa, ensin laitetoimittajien kanssa ja myöhemmin IT-palveluyhtiöiden kanssa. Suomeen syntyi myös suuri määrä pieniä ohjelmistoyhtiöitä, jotka myivät resursseja tai ratkaisuja. Moni niistä kasvoi kooltaan merkittäväksi vuosien mittaan. 2000-luvulla syntyi oma start-up yhtiöiden tyyppi, jolloin uutta ideaa ruvettiin toteuttamaan ja tuotteistamaan jopa maailmanmarkkinoille. Monet suomalaiset peliyhtiöt ovat menestyneet maailmanlaajuisestikin.
4. Systeemisuunnittelun opetus ja tutkimus
Systeeminsuunnittelun yliopistotasoinen opetus alkoi 1960-luvun puolivälissä. Ensimmäiseksi ehtivät Tampere ja Jyväskylä, mutta heti perässä tulivat muutkin. Tietojenkäsittely koettiin tärkeäksi uudeksi osaamisalueeksi. Yliopiston historian mukaan opetus sai erilaisia painotuksia. Vuosikymmenien mittaan vakiintui kolme pääasiallista opetuslinjaa:
• Tietojenkäsittelytiede, sisältäen formaalin (algoritmisen) ja matemaattisen suuntauksen. Muutamissa tiedeyliopistoissa painotettiin myös käyttöjärjestelmien teoriaa. Tietokannat ja erilaiset hakualgoritmit olivat tärkeitä, nykyään myös suurten tietoaineistojen käsittely.
• Tietojärjestelmätiede, suuntautuen Atk:n ja myöhemmin IT:n sovelluksiin, hyödyntämiseen, kehittämiseen ja johtamiseen. Opetus oli lähellä taloushallintoa, muotoutuen kuitenkin varsin itsenäiseksi tietohallinnon johtamiseksi. Opetusta oli useissa yliopistoissa ja erityisesti kauppakorkeakouluissa.
• Tietotekniikka, sisältäen toteutuspainotteista ohjelmistojen ja tietokantojen opetusta. Myöhemmin mukaan tuli esimerkiksi multimedia ja graafiset käyttöliittymät. Pelillinen toteutuksen osaaminen oli tärkeää. Lähialoja olivat esimerkiksi systeemianalyysi, tuotantotalous ja digitaaliset järjestelmät. Opetusta oli luonnostaan teknillisissä tiedekunnissa, mutta varsin laajalti muissakin tiedekunnissa.Ammattikorkeakouluista tuli keskeinen järjestelmäkehityksen opetuksen järjestäjä 1970-luvulta alkaen. Atk-Instituutti perustettiin jo 1970-luvun alussa, muuttuen monien vaiheiden jälkeen Haaga-Helia amk:ksi. Useimmissa muissakin ammattikorkeakouluissa on edelleen toteutuspainotteista tietotekniikan opetusta.
1980-luvulta lähtien opetus pirstoutui ja yhtenäistä käsitystä järjestelmäkehityksestä ei enää ollut. Tietotekniikka yhdistyi esimerkiksi signaalinkäsittelyn, automaation, lääketieteen tai fysiikan opetuksen osaksi, saaden siten erityisalojen lisäpainotuksia. Itsenäisenä opetuksen alana tietotekniikka koettiin tärkeäksi, kun osaajia tarvittiin nopeasti lisää. Nokian menestyminen matkapuhelinten kehittäjänä näkyi pitkän aikaa opetuksessakin. Alan standardien opetus on ollut heikkoa kautta historian. Jokainen oppituoli on ponnistanut siitä, minkä on luultu, tiedetty tai uskottu olevan parasta antia oppilaille.
Tutkimusta tehtiin aluksi lähellä opetuksen tarpeita. Vuosikymmenten mittaan syntyi paljolti Tekesin tuella itsenäisiä tutkimuslaboratorioita, jotka saivat myös EU-rahoitusta 1990-luvun lopusta lähtien.
Järjestelmäkehitykseen painottuvaa tutkimusta on tehty jo vuosikymmeniä sen kaikilla tasoilla. Se voitiin nähdä osana organisaatioiden johtamista ja kehittämistä. Menetelmäpohjana oli esimerkiksi toimintatutkimus. Järjestelmäkehityksen prosesseja on tutkittu monissa yliopistoissa, ja sen osana on voitu osallistua myös aihepiirin standardointiin. Yksittäisiä järjestelmälaadun piirteitä on tutkittu 1980-luvulta lähtien, esimerkkinä käytettävyys ja luotettavuus.
Vuodesta 1978 alkaen on järjestetty vuosittainen IS-alan seminaarisarja IRIS (information systems research in Scandinavia). Isännöinti on ollut vuorollaan kunkin pohjoismaan vastuulla, myös isäntäyliopiston vaihtuessa. Näin on saatu aikaan tiedonvaihtoa ja laajaa yhteistyötä järjestelmäkehityksen tutkimuksen alueella.
5. Tieto keskiöön, tietokannat ja rekisterit alulle
Järjestelmäkehityksen alkuaikana tietoa pidettiin reikäkorttipakassa tai magneettinauhalla. Pikkuhiljaa saatiin avuksi suorasaantimuisteja, mutta ne olivat kalliita ja kapasiteetiltaan rajallisia. Isommat ajot tehtiin erissä. Tietokoneiden teho oli heikko, joten yksittäinen iso eräajo saattoi kestää kuukausia. Esimerkkinä käyköön Kelan tekemien eläkkeiden indeksikorotusten kesto :
- Vuonna 1961 reikäkorttikoneilla päivitys kesti 3 kk
- Vuonna 1965 IBM 1460-tietokoneella ajo kesti 12 tuntia
- Vuonna 1970 IBM S/360 M50- tietokoneella ajo kesti 3 tuntia
- Vuonna 1974 IBM S/370 M158- tietokoneella ajo kesti noin tunnin, vaikka tapausmäärä oli jo tuplaantunut vuodesta 1961
- Verrokkina laskettu manuaalinen päivitys olisi maksanut vuonna 1974 reilusti yli 1000-kertaisesti
Merkittäviä kustannusetuja saavutettiin, kun tekniikka parani ja tietokoneiden tehokkuus kasvoi.
1970-luvulla saatiin avuksi järjestelmätoimittajien tarjoamia tietokantaratkaisuja. Niiden avulla saatiin lisää tehokkuutta ja tietojenkäsittelyyn monipuolisuutta. Kesti kuitenkin vuosikymmeniä, ennen kuin voidaan sanoa tietokantojen olevan kunnossa ja vailla merkittäviä rajoituksia. Markkinajohtajana oli IBM:n tarjooma, ensin hierarkkisten tietokantojen ja 1980-luvun alusta lähtien relaatiotietokantojen muodossa. DB2 oli pitkään merkittävä referenssi tietokantaratkaisuissa.
Laitteistopuolella tapahtui siirtymistä pienempiin, hajautettuihin ratkaisuihin ja lopulta jopa työasemakohtaisiin tietokantoihin. Vuorovaikutteinen tietojenkäsittely syntyi, ja käyttöliittymän suunnittelusta tuli tärkeä osa järjestelmäkehitystä. Vähitellen syntyi erityisesti 1990-luvulla monitasoratkaisuja, jossa osa sovelluksen logiikasta oli työasemassa, osa palvelinkerroksessa ja osa tietokannoissa.
Lähde: Manninen, Ari T.: Näin tehtiin Suomesta tietoyhteiskunta. Tietotekniikan liitto / Talentum, 2003. 298 sivua. ISBN 951-762-847-1.
6. Menetelmien tsunami
Järjestelmäkehittäjät ovat eteviä tekemään itselleen menetelmiä ja välineitä. Jokainen piti omaa menetelmäänsä parhaana, kun oli saanut sen toimimaan omassa pienryhmässä. Syntyi myös toimittajien menetelmäpaketteja ja konsulttiyritysten tarjoamia ratkaisuja. Tyypillistä oli, että menetelmällä oli joku helposti muistettava lyhenne erottuakseen joukosta. Kokosin muutama vuosi sitten menetelmiä ylös, jotta itsekin ne muistaisin. Tuloksena syntyi kokooman 2 menetelmäsalkku:
Kokooma 2: Menetelmien ja mallien lyhenteiden kirjoa eri aikoina järjestelmäkehityksen historiassa.
Mukana on menetelmiä monelta suunnalta: liiketoiminnan kuvaaminen, elinkaarimallin hallinta, laadunhallinta, työmäärän estimointi, yksittäisen laatutekijän mittaaminen… Tarkoituksella olen sotkenut ne kokoomassa 2, koska ei ole mitään umpitiivistä tapaa niiden luokitteluun. Lukija voi silmäillä kokoomaa, ja tunnistaa sieltä itse käyttämiään! Todellisuudessa menetelmiä ja välineitä on varmasti satakertainen määrä kokoomaan 2 nähden.
Seinätekniikalla on oma mielenkiintoinen paikkansa järjestelmäkehityksen historiassa. 1980-luvun alussa syntyi konsepti, jossa järjestelmää kehitetään yhtenäisessä tilassa rakentaen sen kuvauksia seinälle. Protoilu oli hyvä tapa konkretisoida vaatimuksia. Siten parannettiin yhteistä järjestelmätuntemusta, ja tekemisestä tuli konkreettista. Konsepti myös tuotteistettiin lippuineen, lappuineen ja jopa asioita yhdistelevine villalankoineen! Kokemukset olivat valtaosaltaan hyviä, kehittämiseen saatiin vauhtia ja intoa.
Toinen kiintoisa menetelmien ryhmä on kehittämisprojektin työmäärän arviointi (COCOMO yllä). Voidaan kerätä kokemuskanta jo toteutuneista projekteista, ja laatia siitä tilastollinen malli. Mikäli tulevaisuus on vähänkään menneisyyden kaltainen, kokemuskannasta on apua oikean suuruusluokan saamiseksi kehittämisprojektille. Projekteilla oli (ja on vieläkin) taipumus korostaa omaa ainutlaatuisuuttaan, ”ei se meille sovi”.
Samantapaisen kokooman kuin menetelmistä saisi aikaan järjestelmäkehityksessä käytetyistä teknisistä välineistä. Alla siitä vaatimaton yritelmäni, painottuen 1990-lukuun:Kokooma 3: IT-alan teknisiä ja kaupallisia ratkaisuja IT:n historiassa.
7. Kohti ketteryyttä
Viimeiset kymmenen vuotta on ollut ketterän kehittämisen valtakautta. Ideana on lyhentää kehityssykliä esimerkiksi kahteen viikkoon ja sitten arvioida saatuja tuloksia. Tästä saavutetaan se hyöty, että tarve kirkastuu, kun nähdään, miten kehitystiimi on sen ymmärtänyt ja toteuttanut. Voi käydä niin, että lopullinen järjestelmä on varsin kaukana alun perin hahmotetusta ja kuvitellusta. Myös motivaatio parantuu, kun tehdään verraten konkreettista ja näkyvää työtä alusta alkaen.
Ketteryys on tuonut mukanaan uusia tehtävänimikkeitä, kuten tuotepäällikkö ja scrum master. Tuotepäällikkö on tarpeen asiantuntija ja osaa priorisoida kehitystyötä saamansa palautteen ja ohjauksen avulla. Scrum master taasen pitää huolta kehitystiimin tyytyväisyydestä ja itseohjautuvuudesta. Muodollisen projektinhallinnan tarve vähenee, ja muuttuu tehtävänhallinnaksi. Syntyy vaatimuslistoja ja tehtäväpaketteja, joita voidaan pilkkoa ja arvioida yksitellen. Siten realistisuus paranee ja moneen kertaan tekeminen (toivottavasti) vähenee. Lopputuloksena on tuottavuuden paraneminen, ja siitä onkin tullut ketteryyden suosion yksi syy. Myös järjestelmän laatu paranee, kun sen keskeisiä osia testataan toistuvasti jokaisella kierroksella.
8. Onnistutaanko nykyään paremmin kuin ennen?
Järjestelmäkehityksen onnistumisaste on ollut aina verraten heikko. Projektimallissa ei osattu laskea ennalta, paljonko kehitystyö maksaa ja vie aikaa. Ketterässä mallissa kustannukset ja aika on helppo laskea, kun ne on likimain vakioitu. Siinä taasen lopputulos elää ja joustaa. Toki arkikokemus kertoo, että ketterällä työmallilla on ainakin mahdollisuus onnistua varmemmin.
Nykyhetken kirous on järjestelmien monimutkaistuminen. Järjestelmäkehityksen alkuaikoina tehtiin verraten selkeitä, pieniä järjestelmiä. Automatisoitiin jo syntyneitä rutiineja ja laskentoja. Silloin riskit olivat enimmäkseen teknisiä ja tekemistä rajoittavia. Nykyään tekniikka alkaa olla niin hyvässä kunnossa, että voidaan toteuttaa jokseenkin kaikki mitä huomataan pyytää. Tarpeiden tietämisestä on tullut ongelma, kun IT:n avulla ratkotaan liiketoiminnan ongelmia ja innovoidaan uutta. Tehdään siis tyhjiöön, ei silloin voi tietääkään tarkasti mihin pitäisi mennä.
Kun teknologia sallii, yritetään suurta. Järjestelmät monimutkaistuvat, kun ne koetetaan saada pelaamaan kokonaisuutena yhteen. Systeemiopillisesti ollaan ”Systems of Systems”- tilanteessa (SoS). Jokainen yksittäinen järjestelmä toimii hyvin yksinään ja omia tavoitteitaan saavuttaen. Kokonaisuus on verkostomainen, usein löysästi toistensa kanssa toimiva joukko. Se ei ole edes vahvasti hierarkkinen. Rajapinnat korostuvat, samoin jatkuva muutos.
Tilannetta heikentää vielä se, että data ei ole kovin rakenteellista eikä yhteismitallista. Sosiaalisen median kaltaiset sisältöpainotteiset järjestelmät ovat tulleet tarpeeseen, mutta ovat vaikeasti rakennettavia. Big data on hyvä ratkaisu moneen asiaan. Kirjava käyttäjäkunta vaikeuttaa rakentamista entisestään, varsinkin kun osa ”käyttäjistä” voi olla vihamielisiä tunkeilijoita.
9. Tekoälystä lisää älyä avuksemme?
Tekoäly on samantapainen muutos kuin IT-järjestelmät ja tiedon käsittelytehtävien automatisointi oli 1970-luvulla. Silloin voitiin tehostaa merkittävästi toimistotyötä ja esimerkiksi pankissa asiointia. Työpaikkoja hävisi, mutta niitä myös syntyi osapuilleen yhtä paljon, kun talous uudistui ja tuottavuus parani. Tekoälyn avulla voidaan tukea ja automatisoida asiantuntijatyötä, ja se koetaan pelottavana. Käynee kuitenkin niin, että asiantuntijatyö tehostuu ja laajenee kun työlästä laskemista ja hakemista voidaan siirtää järjestelmälle. Syntyy myös uusia tekoälyn mahdollistamia palveluja ja ammatteja.
Kysyin tähän artikkeliin apua myös ChatGPT-kielimallilta. Kysyin tulevaisuuden hype-asioista järjestelmäkehityksessä ja tietoyhteiskunnassa. Sain seuraavan luettelon (olen lyhentänyt vastausta luettavuuden parantamiseksi):
1. 5G-verkko: 5G-teknologia tarjoaa nopeamman ja luotettavamman langattoman internetin. Se mahdollistaa laajemman IoT (Internet of Things) -laitteiden käytön, etätyön parantamisen ja uusia sovelluksia virtuaalitodellisuudessa ja lisätyn todellisuuden alueella.
2. Tekoäly (AI): Tekoälyn rooli tietoyhteiskunnassa kasvaa edelleen. AI-pohjaiset järjestelmät auttavat päätöksenteossa, automatisoinnissa ja datan analysoinnissa monilla eri aloilla, kuten terveydenhuollossa, liikenteessä ja asiakaspalvelussa.
3. Lisätty todellisuus (AR) ja virtuaalitodellisuus (VR): AR- ja VR-teknologiat laajentavat mahdollisuuksia viihteessä, koulutuksessa ja työssä. Esimerkiksi lisätty todellisuus voi tarjota uudenlaisia koulutuskokemuksia ja virtuaalitodellisuus mahdollistaa immersiiviset pelit ja simuloinnit.
4. Kvanttitietokoneet: Kvanttitietokoneiden kehitys saattaa mullistaa tietokoneiden laskentatehon ja mahdollistaa monimutkaisten ongelmien ratkaisemisen nopeammin kuin nykyiset superkoneet.
5. Blockchain ja hajautetut tekniikat: Blockchain-teknologia ei rajoitu vain kryptovaluuttoihin, vaan sillä voi olla merkitystä laajemminkin, kuten äänestyksissä, toimitusketjuissa ja varmennuksessa.
6. Kvanttisalaus: Kvanttiteknologia voi uhata perinteisiä salaustekniikoita ja vaatia uusia, kvanttikestäviä salausratkaisuja.
7. Etätyön ja joustavien työmuotojen jatkuminen: Etätyö on yleistynyt merkittävästi, ja monissa organisaatioissa saattaa säilyä joustavia työmuotoja myös tulevaisuudessa.
8. Sähköinen terveydenhuolto (eHealth): Teknologia ja tietoyhteiskunnan kehitys mahdollistavat terveydenhuollon digitalisoitumisen, kuten etälääkärin vastaanotot ja potilastietojen paremman hallinnan.
9. Ilmastonmuutoksen torjunta ja vihreä teknologia: Tietoyhteiskunnassa painotetaan yhä enemmän ympäristöystävällisiä teknologioita ja ratkaisuja, kuten uusiutuvaa energiaa, älykkäitä liikennejärjestelmiä ja ympäristöseurantaa.
10. Cybersecurity ja tietoturva: Tietoturvan merkitys kasvaa, kun yhä enemmän liiketoimintaa ja palveluja siirtyy digitaaliseen muotoon. Uusia tietoturvaratkaisuja ja -uhkia voi syntyä.
Oli tekoälystä mitä mieltä vaan, ainakin vaikuttavan listan se minulle tarjosi! Järjestelmäkehittäjien ammattitaitovaatimus vain kasvaa ja siitä tulee koko yhteiskunnan uudistamisen avainosaamista.
On mielenkiintoista nähdä, että viimeiset sata vuotta on tarjonnut myös yllätyksiä järjestelmäkehityksessä. Kaikkea ei voitu nähdä ja ennustaa, vaan saatiin mielenkiintoisia innovaatioita ikään kuin sivusta. Samalla kävi niin, että suuri osa kunkin ajankohdan tärkeistä trendeistä jäi toteutumatta.
Tuhon ja läpimurtojen taistelu ja tasapainottelu jatkuu tulevaisuudessakin. Uusia innovaatioita on tulossa S-käyrän alkuun moninkertaisesti enemmän kuin on mahdollista tulla laajaan käyttöön. Monet uudisteet laimenevat ja löytävät pienen paikkansa järjestelmäkehittäjän arjessa. Nykyisiä valtavirran ratkaisuja hiipuu ja kuolee menetettyään voimansa. Elämme mielenkiintoista aikaa, emmekä pysty näkemään kovin tarkasti tulevaisuuteen.