Koodia kestävästi, sovellussuunnittelua säästeliäästi
Digitaaliset prosessit

Koodia kestävästi, sovellussuunnittelua säästeliäästi

Kun parannamme verkkopalvelujen ja sivustojen energiatehokkuutta, on ohjelmistojen suunnittelijoiden ja tekijöiden rooli keskeinen. Ekotehokas koodaaminen on tulevaisuutta.

Ohjelmistotuottajien vastuuseen ICT-alan ympäristö- ja ilmastoystävällisyyden lisäämisessä on herätty vasta viime vuosina. Alan ongelmat on tunnettu kuitenkin jo pari vuosikymmentä. Niitä ovat esimerkiksi ohjelmistojen ja verkkosivujen ominaisuuksien paisuminen, epäoptimoitu laiteresurssien käyttö, sekä datakeskusten energiankulutus ja hukkaenergia. Webinaarin esitelmistä selvisi, että koodauksessa ei ole vuosikymmeniin otettu huomioon laitteisto-optimointia. Tietokoneiden laskentateho (FLOP/terawatti) on nimittäin kasvanut 30 vuodessa miljoonakertaiseksi, kun vertaa vuonna 1990 käytössä olleeseen laitteistoon. Ohjelmistokehityksen epäoptimaalisuus on syönyt tämän tehonlisäyksen käytännössä sitä mukaan kun teho on lisääntynyt, vaikka käytämme samoja ohjelmistoja kuin aiemminkin.

ICT-alan potentiaali tuottaa ratkaisuja kestävän kehityksen ongelmiin on päätähuimaava, mutta mukaan tarvitaan myös ohjelmistotuottajat. Ohjelmistotuotannon ja kooditason rooli verkkopalvelujen energiankulutuksessa puuttuu vielä turhan usein ala keskustelusta. Haasteena on ollut esimerkiksi mittarien puuttuminen. Samalla nousi esiin myös kestävän kehityksen inhimillinen puoli, moni ohjelmoija tekee ohjelmistoja, joihin ei itse ole tyytyväinen, lähinnä aikataulupaineiden takia.

Green ICT -webinaarissa 12.12.2021 5 alan asiantuntijaa herätteli keskustelua kestävästä ohjelmistotuotannosta.

Sovelluksen hiilijalanjäljen mittaaminen

Niina Mikolanniemi ja Kyösti Herrala Vincitiltä kertoivat esityksessään ohjelmistoratkaisun hiilijalanjäljen määrittämisestä tapausesimerkin kautta. Kansainvälinen ampumahiihdon lajiliitto tilasi uuden kisojen seurantasovelluksen, ja asiakasta kiinnostivat selvitykset myös tuotantoprosessin ja sovelluksen käyttöä koskevista päästölaskelmista. Vincit kehitti laskentamallin sovelluksen ja palvelun verkkosivun hiilijalanjäljen määrittelemiseen kumppaniorganisaation kanssa. Hiilijalanjäljen kooksi laskettiin noin 9 600 kiloa vuodessa.

Osana projektia Vincit tutki, millaisia malleja sovellusten ja verkkosivustojen laskentaan on nykyään olemassa työn tueksi. ”Selvitystyössä ilmeni, että ohjelmistosuunnitteluun ei ole saatavilla selkeitä, avoimia standardeja hiilijalanjäljen mittaamiseen”, yrityksen vastuullisuuspäällikkö Mikolanniemi totesi. ”Standardien puute vaikeutti myös tarkkojen päästötietojen keräämistä ulkoisilta palveluntuottajilta. Emme esimerkiksi saaneet tietoa palvelinkeskusten datasiirtojen määrästä.” Valmiiden mallien ja tarkkojen tietojen puuttuessa hiilijalanjäljen määrittämisessä käytettiin avuksi tutkimuskirjallisuutta ja toisten organisaatioiden julkaisemia arvioita.

Sovelluksen ohjelmistotuotannosta vastannut Kyösti Herrala kuvasi, millaisia käytännön valintoja tuotantoprosessissa tehtiin hiilijalanjäljen pienentämiseksi. ”Ampumahiiihtoliiton palveluun kuuluu paljon videosisältöä. Suunnittelimme videokatselunäkymän niin, että kilpailujen katselu ei tapahdu oletusarvoisesti teräväpiirtotilassa”, Herrala totesi. ”Säästimme myös paljon dataa sillä, että kaikki sovelluksen kuvat eivät lataudu saman tien, koska aina käyttäjät eivät skrollaa alas asti.” Lisäksi Herrala painotti kuvien ja videoiden optimointia ja automaattista skaalausta, joka tuo säästöjä datansiirtoon.

Vincit julkaisee sovelluksen hiilijalanjäljen laskentatiedot verkkosivuillaan alkuvuodesta 2022, jotta muut voivat halutessaan käyttää niitä ja jotta keskustelu ohjelmistokehittämisen päästöstandardeista jatkuisi Suomessa.

Inhimillinen kestävyys ohjelmistoalalla

Laadukkaan ohjelmistotuotannon maksimoimiseksi organisaatioiden tulisi huomioida kestävän kehityksen kaikki näkökulmat. Jari Hakulinen Compilesta esitteli kestävyyden eri muotoja ja erityisesti inhimillisen kestävyyden roolia ohjelmistokehityksessä.

”Yrityksessämme hahmotamme kestävän ohjelmistokehityksen kokonaisuuteena, jossa tulisi huomioida niin ekologinen, inhimillinen, sosiaalinen, taloudellinen kuin tekninen kestävyys”, Hakulinen tiivisti alustuksessaan.

Inhimillisen kestävyyden käsite on sukua työhyvinvoinnille ja työtyytyväisyyydelle, mutta on laajuudeltaan kokonaisvaltaisempi. Sillä tarkoitetaan panostamista yksilön jatkuvaan, elämän mittaiseen kehittymiseen ja hyvinvointiin, johon sisältyy osaamisen kehittäminen, mielekäs työympäristö ja -tehtävä, hyvä yrityskulttuuri ja reilu korvaus tehdystä työstä. Monelle ohjelmoijalle on myös tärkeää, että työn tulokseen voi olla tyyvyväinen koko sen elinkaaren ajan.

”Organisaatiossa inhimillinen kestävyys muodostaa sen pohjan, jonka päälle rakennetaan muita kestävän kehityksen toimenpiteitä”, Hakulinen toteaa. Inhimillistä kestävyyttä kunnioittavassa organisaatiossa voi olla esimerkiksi helpompi edistää ilmasto- ja ympäristökestäviä ratkaisuja. Kestävyyttä arvostavilla työntekijöillä on matalampi kynnys tuoda esiin muutosehdotuksia, valmiiksi organisaatioihin sitoutuneet tiimit suhtautuvat paremmin päästötavoitteista johtuviin muutoksiin ja työhönsä tyytyväisen ohjelmistokehittäjän on helpompi kokeilla jotain uutta – kuten vähäpäästöisempää koodaamista.

Eroon roskakoodista

Tarmo Toikkanen (IT-kouluttajat ry/Suomen Koodikoulu/Suomen eOppimiskeskus) ja Toni Timonen (Oura) raottivat alustuksessaan konepeltiä kestävyyden käytännöistä otsikolla Ekoskaalautuvat järjestelmät koodauksen näkökulmasta.

”Vielä 90-luvulla joka ikinen tavu oli tärkeä. Itsekin koodasin joskus videopeliä niin, että pelikartta ja kaikki hahmot pyörivät näytönohjaimen muistilla”, Toikkanen totesi. ”Koska muistia oli vähän ja prosessointi hidasta, koodi piti kirjoittaa tehokkaaksi ja tiiviiksi. Mitä pidemmälle 2000-lukua on tultu, sitä villimmäksi meno on käynyt.”

Toikkasen mukaan Mooren laki on toteutunut, ja modernin koodaajan käytössä on käytännössä aina niin paljon muistia ja suorituskapasiteettiä kuin sielu sietää. Pilvi skaalaa kaiken ilman ylärajaa. Kun koodarit vielä usein ovat kallista työvoimaa, on valmiiden kirjastojen ja frameworkien käyttö lisääntynyt ilman että näiden ekotehokkuus olisi prioriteetti. ”Lisäksi nykyään tehdään paljon liukuhihnakoodaamista, esimerkiksi huonolaatuisiin mobiilipeleihin. Tärkeämpää olisi edistää skaalautuvutta”, Toikkanen toteaa.

Ouran järjestelmistä vastaavalla Timosella on takanaan muun muassa 14 vuotta Googlen ohjelmistokehityksessä. Hänen käytännön neuvonsa kestävämpään koodiin liittyvät mikropalveluiden välttämiseen, kielen valintaan ja paralellismiin.

”Epäsuosittu kantani on, että mikropalveluiden kanssa työskentely on usein tarpeettoman kallista ja monimutkaista. Oikealla teknologia- ja kielivalinnoilla monoliittiratkaisua voi skaalata satakertaiseksi ennen mikropalveluihin turvautumista”, Timonen latasi.

Eri ohjelmointikielten laitevaatimusten tehokkuudessa on selkeitä eroja, joita Timonen kehotti myös vertailemaan osana ohjelmistokehitystä. Kokonaisarkkitehtuurin hyödyntämistä tulisi myös tarkastella kunnolla, eikä tehdä arkkitehtuurikaaviosta organisaatiokaavion toisintoa.

Ohjelmistotuotannon Green ICT on yhä alkutekijöissään ja yleisö kysyi runsaasti kysymyksiä paneelilta. Keskustelu alkoi hiilijalanjäksilaskennasta, jossa käytetään kehyksen tekemisessä apuna ISO 14067 standardia ja GHG Protokollaa. Kysymys on monimutkainen, eikä kokonaisvaltaista tutkimusta aiheesta ole tehty, joskin yrityksillä on omia tapojaan laskea päästöjä eri toiminnoilleen. Toinen puhuttava aihe oli nk feature bloat, eli ohjelmistojen ja verkkosivustojen ominaisuuksien määrän kasvu. Nykyään koodaus perustuu valmiisiin kirjastoihin, joista saatetaan käyttää alle 10 %, mutta koko kirjasto latautuu silti käyttäjälle. Lisäksi käytetään erilaisia ominaisuuksia kuten analytiikkaa, räätälöityjä mainoksia ja korkearesuluutioista multimediaa, joka syö tarpeettomasti kaistaa, vaikka lisäarvo käyttäjälle ja ylläpitäjälle voi olla melko pieni.

Lopuksi kysyttiin perinteiseen tapaan siitä mikä tuo panelisteille toivoa tulevaisuuteen. Nina piti tiedon lisääntymistä toivoa herättävänä, ja Kyösti täydensi, että ohjelmistoammattilaisten lisääntynyt kiinnostus lisää toivoa. Jarille toivoa toi keskustelun aktivoituminen ja jatkuva lisääntyminen kestävän kehityksen aiheista, etenkin tekniikan ammattilaisten osalta myös muilla kuin kestävyyden teknologisella ulottuvuudella. Tarmolle nykytilanne, jossa monia isompia ongelmia on korjattu ja asiat ovat niin hyvin, että kestävän kehityksen aiheista voidaan keskustella. Tonille toivoa tuo se, että sivilisaatiot ovat aina historiassa nousseet rappioista. Hänelle toivoa toi myös se, että taloudelliset ja ympäristönsuojeluun liittyvät seikat ovat useimmiten ICT-alalla linjassa keskenään.

Green ICT -ohjelmistopalvelut, paneelikeskustelu

Lue seuraavaksi