Ohjelmistokehitys

Teknologian suunnittelu ja ohjelmointi

Pentti Virtanen

Teknologia on se runsaudensarvi, joka on tuonut ihmiskunnan nälänhädän, ydinsodan, raaka-ainepulan ja kulkutautien keskeltä kohti kestävää laajalle levinnyttä vaurautta. Automaattinen tietojenkäsittely on yksi menneen vuosisadan menestystarinoista. Työnantajien pettymykseksi tapaa kouluttaa halpoja ohjelmoijia ei ole yrityksistä huolimatta löydetty.

Luontainen epävarmuus

Uuden teknologian kehittäminen on luonnostaan vaikeaa. Tutkimuksessa ja tuotekehityksessä lopputulos ei ole ennustettavissa eikä ole edes varmaa, että se on saavutettavissa. Teknologiat perustuvat luonnontieteisiin ja matematiikkaan, jotka ovat eksakteja tieteenaloja. Luonnonlait ovat olemassa ihmisestä riippumatta ja jos suunnitelmamme ei kunnioita niitä, ratkaisu ei toimi.

Onnistuminen teknologian kehittämisessä vaatii monien vaikuttavien tekijöiden sovittamista samaan ratkaisuun. Ajatellaanpa vaikka akkuja lentokoneen energiavarastona. Akun pitää olla mm. kevyt, hinnaltaan kohtuullinen, kapasiteetiltaan riittävä ja olla ladattavissa nopeasti. Sen elinkaaren pitää olla pitkä ja mahdollisimman huoltovapaa. Se ei saa olla vaarallinen onnettomuuksissa eikä etenkään itse aiheuttaa vaaraa ihmisille ja omaisuudelle. Voi jopa olla, että energian varastointi ioneihin ei pysty korvaamaan sen kuljettamista kemiallisina yhdisteinä kuten polttoaineina käytettyinä hiilivetyinä.

Ohjelmistojen kehittämisessä ei ole odotettavissa suuria tuottavuusloikkia, koska vaikeus on ajattelussa, ei koodin kirjoittamisessa [1]. Ongelma on sama kuin kirjan kirjoittamisessa. Vaikeinta on päättää, mitä kirjoittaa. Paremmat tekstinkäsittelyohjelmat eivät tee kenestäkään Nobel-kirjailijaa. Tekstinkäsittelyn ulkoistaminen halpatyövoimalle ei todennäköisesti vähentäisi kirjoittamisen kokonaiskustannuksia.

Kokeilukulttuuri

Luonnontieteet perustuvat havaintoihin. Jos teoriasi ei vastaa havaintoja, se on väärin, olitpa kuinka kuuluisa ja arvostettu tiedemies tahansa. Suunnittelutyössä luotamme aiempiin havaintoihin ja niistä syntyneeseen kokemukseen. Sillat, katot ja tornitalot sortuvat harvoin, koska samanlaisia on rakennettu miljoonia jo aiemmin.

Kokemus on kirjattu standardeihin ja tällöin pääpaino keskittyy niiden noudattamisen valvontaan. Standardien kääntöpuolena on luovuuden kahlitseminen. Uusia innovaatioita on vaikea tuoda markkinoille, koska standardien muuttaminen on vaikean byrokratian takana. Standardit estävät uudenlaisten kilpailijoiden tuloa markkinoille.

Sääntelyä perustellaan useimmiten kuluttajien suojelemisella. Hyvää tavoittelevilla säännöksillä on saatu paljon vahinkoa aikaan kun ne on tehty ilman riittävää havaintoaineistoa. Homeiset koulut ovat esimerkki, jossa rakennusten tiivistäminen aiheuttaa kosteuden kertymistä rakenteisiin.

Matematiikassa keskeistä on looginen eheys. Myös teknologiaratkaisujen pitää muodostaa keskenään ristiriidaton kokonaisuus. Ihmiset kokevat epämukavana [2] esimerkiksi hiilivedyistä tuotetun vedyn käytön polttoaineena hiilivetyjen käytön välttämiseksi.

Ohjelmistotuotannossa ohjelmoijat tekevät suuren määrän testejä, jotka tarkistavat koodilogiikan toimivuutta. Nykyään testien ajaminen automatisoidaan, jolloin testauskustannus muodostuu pääosin testien kirjoittamisesta.

Uuden tuotteen suunnittelu etenee tyypillisesti idean varmistamisesta useiden prototyyppien kautta kohti varovaisesti julkaistavaa tuotetta. Tuotteen ominaisuuksien ja käyttäjien määrä kasvaa kehitystyön jatkuessa. Suuri osa tuotekehityshankkeista lopetetaan lähes alkuunsa. Ennen kuin esimerkiksi itseohjautuva auto saadaan lopullisesti markkinoille on sitä testattu miljoonia tunteja ja sillä on ajettu miljardeja kilometrejä erilaisissa ympäristöissä. 

Tee jotain erilaista

McKinseyn kyselyn mukaan yritysjohtajat ovat tyytymättömiä organisaatioidensa innovaatiokykyyn. Yrityskulttuuri ja tapa toimia ei luo olosuhteita, joissa ihmiset voisivat tehdä jotakin erilaista [3]. 

Yliopistoissa aiemmin vallinnut akateeminen vapaus on korvautunut tiukalla tulosohjauksella. Työsuhteet ovat lyhytaikaisia ja epävarmoja. Julkaisujen määrää käytetään mittarina tuloksista. Tämän seurauksena on suuri määrä varmoja tutkimusaiheita, joista saa helposti tuotettua julkaisuja, jotka menevät vertaisarvioinnista läpi.

Yksi patenttitoimistojen virkailija tuotti sata vuotta sitten enemmän merkittävää tutkimusta kuin miljoonat päätoimiset tutkijat hänen jälkeensä [4]. Hän onnistui vakuuttamaan kriittisen tiedeyhteisön teorioitansa tukevien havaintojen avulla.

Toisinajattelijat luovat merkittävät uudet keksinnöt sananmukaisesti, koska merkittävät uudet keksinnöt vaativat toisenlaista ajattelua. Katso myös [5]. Useat organisaatiot korostavat yhdenmukaisuutta. Prosesseja standardoidaan tehokkuuden optimoimiseksi. Työtavat jäädytetään laatukäsikirjoilla. Henkilöstöhallinto palkitsee tottelevaisuudesta ja rankaisee poikkeamista. Epäonnistuminen johtaa henkilövaihdoksiin.

Toisinajattelu on vaikeaa, koska yhteisö luo kovan paineen sitä vastaan. Julkaisujen portinvartijat sensuroivat erilaisuutta. Sananvapautta kahlitaan. Uran eteneminen voi olla vaikeaa. Palkkio onnistumisesta on pieni, jos sitä on ollenkaan.

Tunnistamme asiat, joista ei saa puhua. Niiden taustalla on usein raha ja  eturistiriidat. Innovaattorin dilemma selittää, miksi oman tuotteen kanssa kilpailevien tuotteiden kehittäminen onnistuu helpommin pieniltä ulkopuolisilta yrityksiltä [7]. Siispä internet-puhelut tulivat Skypeltä eikä teleoperaattoreilta.

Vaihtoehtojen runsaus

Geneettinen erilaisuus on luonnon tapa selvitä koko ajan muuttuvassa ympäristössä. Jos ravinnosta on puutetta, pienemmät eläimet selviävät paremmin. Jos taas ravintoa on runsaasti, suosii luonnonvalinta isompia eläimiä.

Teknologiset ratkaisut ovat osa kompleksisia keskenään kilpailevia ekosysteemejä. Niillä on usein arvaamattomia pitkän tähtäyksen vaikutuksia, jotka mitätöivät lyhyen tähtäyksen hyödyt. Lähes kaikki suuret teknologiaorganisaatiot työskentelevät monien teknologiatoimittajien, integraattorien ja myyjien kanssa – joskus satojen niiden kanssa [7]. Monestikin mukautettavuus on lyhyen tähtäyksen kustannushyötyjä tärkeämpää.

Laajemmaltikin ajateltuna keskitetty päätöksenteko ja keskitetyt ratkaisut sisältävät suuria riskejä. Hajautetussa mallissa kaikki munat eivät ole samassa korissa. Kompleksisessa maailmassa emme pysty ennustamaan voittajia. Hajauttamalla niin sijoituksemme kuin teknologiaratkaisumme vähennämme riskejämme.

Historiasta opimme, että kansakunnat menestyvät kun kuluttajien tekemät ostopäätökset ohjaavat teknologioiden kehittämistä ja tuotantoa [8]. Vaihtoehtoisia tuotteita on suuri kilpaileva joukko ja omalla rahallaan ostavat ovat kriittisiä valintojensa suhteen. Massiivisella mielikuvamarkkinoinnilla tyrkytetyt vaihtoehdot hyödyttävät enimmäkseen myyjätahoja. LED-valot tulivat nopeasti ja huomaamatta käyttöön, koska ne kelpasivat kuluttajille luonnostaan. Sähköautojen eteneminen sen sijaan takkuaa suurista tukiaisista huolimatta.

Ohjelmoijapula

Ohjelmoijapulan taustalla on se, että työnantajat eivät näe metsää puilta. Työpaikkailmoitukset ovat täynnä vaatimuksia tekniikoista, joiden osaamista edellytetään. Koska muodissa olevat tekniikat muuttuvat koko ajan, ei niiden kokeneita osaajia voi olla olemassa.

Kilpailutukset tuntihinnalla suosivat halpoja työntekijöitä, jotka ovat oppineet halutut asiat pinnallisesti. Jos kaikessa ohjelmoinnissa vaadittava looginen ajattelutapa puuttuu, ovat tulokset huonoja ja seuraavan tekniikan oppiminen on vaikeaa.

Keskustelua

Nykypäivän hyvinvointi syntyy osaamisesta ja hyvistä ideoista. Raaka-aineista, rahoituksesta ja työvoimasta ei ole pulaa. Hallitusten pitäisi rahan lähettämisen sijaan edistää koko ihmiskunnan kouluttautumista.  Vanhan vertauskuvan sanoin: älä anna nälkäiselle miehelle kalaa, vaan opeta hänet kalastamaan.

Tieturin koulutuksia

Viitteet ja lisälukemistot

1. Fred Brooks, The mythical man-month, 1975.

2. https://en.wikipedia.org/wiki/Cognitive_dissonance

3. https://hbr.org/2019/11/breaking-down-the-barriers-to-innovation

4 https://www.ige.ch/en/about-us/the-history-of-the-ipi/einstein/einstein-at-the-patent-office

5. Asko M. Aurela: Tieteellisen toisinajattelijan käsikirja, Art House, 1993.

6 https://www.mckinsey.com/business-functions/mckinsey-digital/our-insights/building-a-tech-services-ecosystem-to-deliver-products-not-applications

7.Innovaattorin dilemma https://en.wikipedia.org/wiki/The_Innovator%27s_Dilemma

8. http://whynationsfail.com/summary

Tietoa kirjoittajasta:
Pentti Virtanen
Asiasanat: ohjelmointi