Kestävä ohjelmistokehitys rakentaa huomisen kestäviä digitaalisia ratkaisuja
Kestävän ohjelmistokehityksen periaatteet
Kestävä kehitys ohjelmistokehityksessä ei ole ainoastaan vihreämpää koodia, vaan tapa lähestyä koko ohjelmistokehitysprojektia. Kestävän ohjelmistokehityksen avulla syntyy järjen ratkaisuja – ohjelmistoja, jotka toimivat oikein, joita on helppo ylläpitää ja jatkokehittää. Unohtamatta sidosryhmien huomioimista aina asiakaslähtöisyydestä ohjelmoijien työhyvinvointiin.
Kehitys, jolla tyydytetään nykyisen yhteiskunnan tarpeet tekemättä myönnytyksiä tulevaisuuden kustannuksella tunnetaan kestävänä kehityksenä. Vuonna 1987 YK:n Brundtlandin komission raportti määritteli, ettei se ole ainoastaan ympäristöllinen lähestymistapa vaan sisältää myös taloudellisen, kulttuurillisen ja sosiaalisen näkökulman. Miten kestävän kehityksen ajattelu voidaan tuoda osaksi kestävää ohjelmistokehitystä?
Kuten kantakäsitteensäkin, kestävä ohjelmistokehitys sisältää osa-alueita, joiden avulla voidaan todeta ohjelmistokehityksen olevan kestävää. Vakiintuneiksi näkökulmiksi voidaan todeta viisi kokonaisuutta. Ekologinen, taloudellinen, yhteiskunnallinen, inhimillinen ja tekninen kestävyys luovat yhdessä kestävää ohjelmistokehitystä, joka on linjassa laajemminkin kestävän kehityksen arvojen kanssa.
Kestävä on ekologista
Kestävä ohjelmistokehitys terminä vie ajatukset väistämättä myös ekologisiin arvoihin. Tällä hetkellä on vallallaan trendi rakentaa yhä vihreämpiä ohjelmistoratkaisuja. Tämä tarkoittaa, että ohjelmiston suorat ja epäsuorat kielteiset vaikutukset luontoon ja ympäristöön pyritään minimoimaan.
Näitä ekologisia tekoja voidaan tehdä jo kehitysvaiheessa, käyttöönotossa ja käytössä. Suoria vaikutuksia voivat olla energiatehokkuuden huomioiminen tai tarvittavat laiteresurssit. Usein jo kestävien ohjelmistokehitysperiaatteiden noudattaminen koko kehitysprosessissa ohjaa kohti ekologisesti kestäviä ratkaisuja kuin itsestään.
Parantaako ohjelmistosi ihmisten elämää?
Yhteiskunnallinen aspekti voi tuntua kaukaiselta, kun yritys päättää investoida ohjelmistoon ja sen kehitykseen. Toki, jos sovellus on julkinen palvelu kansalaisille tai laajasti kuluttajilla suunnattu palvelu, niin se mielletään helpostikin yhteiskunnallisiksi. Näitä ovat sosiaali- ja terveyspalveluiden ohella vaikkapa pankki-, rahoitus ja vakuutusalan ratkaisut. Kun toimiala on tarkoin lain säätelemää ja käsiteltävä tieto on sensitiivistä, odotetaan myös ohjelmistolta vastuullisuutta.
Yhteiskunnallisuuden piiriin sisältyy myös muita kysymyksiä kuin se, että onko ohjelmiston toiminta itsessään lain edellyttämää, ja voidaanko sitä käyttää väärin tai vahinkomielessä. Esimerkiksi saavutettavuus on yksi lähestymisnäkökulma, jotta sovellus ei syrjii ihmisryhmiä rajaamalla käyttäjiä pois. Aivan keskeinen yhteiskunnallinen kysymys on myös pohtia voidaanko ohjelmistolla parantaa ihmisten elämää ja millä tavoin.
Kehitysprosessiin itsessäänkin liittyy yhteiskunnallisuus. Se työllistää suoraan ja välillisesti laajan joukon kehittäjiä, suunnittelijoita ja muita asiantuntijoita. Siksi kannattaa pitää mielessä myös projektiin valittujen alihankkijoiden merkitys vastuullisuuden toteutumisessa.
Vältä ikävät taloudelliset yllätykset
Hyvin suunniteltu ohjelmistoinvestointi on talouden näkökulmasta positiivisesti yllätyksetön. Kun kokonaisuus on suunniteltu ja toteutettu kestävän ohjelmistokehityksen mukaisesti, on helpompi nähdä pidemmälle tulevaisuuteen ja ennakoida niin ylläpitoon kuin kehitykseen liittyviä mahdollisia kustannuksia.
On enemmän sääntö kuin poikkeus, että ohjelmistokehityshankinnoissa raha on yksi tärkeimmistä ajureista. Alkutilanteen investointien tarkastelun ohella tulisi katsoa ohjelmiston koko elinkaarta. Lisäksi ohjelmisto tulee nähdä investointina, joka joko tuottaa säästöjä tai lisäarvoa, tai näitä molempia.
Pitkän elinkaaren ohjelmiston luominen kustannustehokkaasti on tärkeää, mutta samalla sen toiminta ja ylläpito tulee huomioida talouden näkökulmasta. Mikäli ohjelmiston tulee palvella pitkän elinkaaren ajan, usein halvin alkuinvestointi siirtää kustannuksia ohjelmiston elinkaaren myöhäisempiin vaiheisiin.
Tekninen kestävyys
Ohjelmistot voivat olla käytössä vuosia, parhaimmillaan jopa vuosikymmeniä. Tämän vuoksi niiden on kestettävä aikaa ja muutoksia. On väistämätöntä, että tarpeet kehittyvät vuosien saatossa ja tarpeita uusille ominaisuuksille ilmenee. Kestävästi kehitetyssä ohjelmistossa pystytään tuomaan mukaan uusia ominaisuuksia järkevällä toimitusajalla ja voidaan vastata asiakasvaatimuksiin paremmin.
Lähtökohtaisesti kehitystyön tulisi olisi olla hyvinkin ilmeisellä tavalla tarpeenmukaista, ilman yli- tai alisuunnittelua. Ohjelmistohankkeessa on hyvä valita sellaiset tekniikat ja suunnittelumallit, jotka on kehitetty soveltumaan kyseiseen käyttötarkoitukseen ja joiden käytöstä on alalla yleisesti kokemusta. Kehitystyöhön liittyvää automatisaatiota kannattaa hyödyntää mahdollisimman pitkälle ja automatisoida kaikki, mikä on mahdollista: testaus, analytiikka ja ympäristön pystytys. Automaatio poistaa kehittäjien puuduttavaksi kokemia vaiheita ja vähentää inhimillisten virheiden ilmentymistä. Lisäksi automatisoitu testaus nopeuttaa julkaisua ja varmistaa, että uusien ominaisuuksien tuominen ohjelmistoon ei aiheuta virheitä olemassa olevissa toiminnallisuuksissa.
Bugien määrän pitäminen kaiken aikaa mahdollisimman pienenä sekä koodin sisäisen laadun pitäminen korkeana edesauttavat tulevaisuuden kehitystarpeita. Kun ongelmat pyritään ratkaisemaan aikaisessa vaiheessa ja kehitystyöhön resurssoidaan riittävästi, vältytään myös nopeilta pikaratkaisuilta. Kehitystyössä hosuminen ja ongelmiin tarttumattomuus riittävän aikaisessa vaiheessa johtaa tekniseen velkaan.
Tekninen velka kuvaa tilannetta, jossa ohjelmistojärjestelmään on tehty nopeita tai alustavia ratkaisuja aikataulun tai resurssien rajoitusten vuoksi, ja jotka eivät ole pitkällä aikavälillä optimaalisia tai kestäviä. Tämä johtaa tilanteeseen, jossa ohjelmistojärjestelmässä on piileviä ongelmia, jotka vaativat myöhemmin korjaamista tai uudelleensuunnittelua.
Kun kehitystyöhön on omaksuttu niin kestävän ohjelmistokehityksen ja kuin jatkuvan parantamisen mallit, voidaan välttää teknisen velan karttuminen. Samalla voidaan julkaista uusia ominaisuuksia tehokkaammin ilman, että laatu kärsii.
Hyvinvoiva tiimi yltää parempiin tuloksiin
Inhimillinen kestävyys merkitsee erityisesti ohjelmiston kehityksen parissa työskentelevien huomioimista. Tällöin luodaan hyvä ympäristö kehittää sekä ohjelmistoa että itseään. Sopiva työkuorma, asianmukaiset työkalut sekä mielenkiintoiset projektit luovat edellytykset onnistumiselle. Työyhteisössä keskiöön nousevat lisäksi työkavereiden keskinäinen arvostus ja kunnioitus, reilu korvaus hyvin tehdystä työstä, unohtamatta yhteenkuulumisen tunnetta ja viihtyvyyttä.
Ohjelmistokehitys vaatii moniin perinteisiin insinöörialoihin verrattuna enemmän luovaa, inhimmillistä ja kriittistä ajattelua. Laadukkaan ja kestävän ohjelmistokehityksen mahdollistamiseksi on tärkeää ymmärtää kehittäjien ammatilliset ja henkilökohtaiset tarpeet ja ylläpitää työyhteisön hyvinvointia.
Nosta katse kauemmas horisonttiin ja paranna koko kehitystyötä
Jos täytyisi summata mitä kestävä ohjelmistokehitys on, sen voisi kiteyttää esimerkiksi seuraavasti: “Kestävä ohjelmistokehitys on kehitystä, jolla pyritään tyydyttämään asiakkaan nykyiset ja tulevat tarpeet kustannustehokkaasti. Unohtamatta kehittäjien hyvinvointia, ympäristövaikutuksia ja ohjelmiston laatua.”
Miksi kestävää ohjelmistokehitystä pitäisi tehdä? On fakta, että ohjelmistot kasvavat ja monimutkaistuvat ajan myötä. Valitettavan monesti projektit päätyvät tilaan, jossa keskitytään likinäköisesti vain seuraavaan julkaisuun ja seuraavan vuosineljänneksen ominaisuuksiin sekä sen hetkisiin tuotannon bugeihin ja muihin tulipaloihin.
Tällaisissa projekteissa ohjelmisto alkaa usein haurastua eli sen ulkoinen- ja/tai sisäinen laatu heikentyy. Tähän johtavat muun muassa yli- tai alisuunnittelu, vikojen korjaamisen sivuuttaminen, koodimoduulien väliset liialliset riippuvuudet, automaattisten testien puute sekä teknisen velan kertyminen. Tämä on kestämätöntä kehitystä tyypillisimmillään, missä unohdetaan tuotteen, laadun ja prosessin parantaminen.
Kuviot: Kevin Tate. 2005. Sustainable Software Development: An Agile Perspective. Addison-Wesley Professional.
Kun ohjelmistoprojektia ei tehdä kestävän ohjelmistokehityksen perusteiden mukaisesti, kyky luoda uutta laskee. Tällöin myös menetetään ennakointikyky koko ohjelmiston ekosysteemin muutoksiin. Kun asiat tehdään fiksusti, voidaan keskittyä oleelliseen ja tarjota arvokkainta työtä laadukkaasti. Kun ohjelmistoa pystytään parantamaan koko ajan ja kehitykseen liittyvät prosessit kehittyvät samanaikaisesti varmistetaan, etteivät muutoskustannukset (cost of change) karkaa käsistä.
Kestävällä ohjelmistokehityksellä voidaankin saavuttaa ja ylläpitää optimaalista kehitystahtia loputtomiin. Tarkennuksena kannattaa huomioida, että optimaalisin kehitystahti ei ole aina nopein. Vastaavasti, jos ohjelmistohankkeen perustukset eivät ole kunnossa, voi kestämättömät ratkaisut lähteä nopeaan kiitoon. Usein nopeiden ratkaisujen ongelmat tulevat vastaan jossain myöhemmässä vaiheessa.
Yrityskulttuuri rakentaa pohjaa
Uskomme, että yhdistämällä inhimillisen ja teknisen kestävyyden periaatteet sekä oikeat arvot, pystymme tuottamaan kestävää ohjelmistokehitystä, joka ottaa huomioon myös taloudelliset, yhteiskunnalliset ja ekologiset aspektit.
Tärkein onnistumisen mahdollistaja ja voimavara ovat työntekijämme: uteliaat, motivoituneet ja ammatistaan ylpeät. Kun jokainen saa olla juuri sellainen kuin on ja tehdä työtään itselleen sopivalla tavalla mahdollistetaan kestävän tekemisen onnistuminen. Siksi meillä jaetaan tietoa ja kehitytään yhdessä, kun haluamme tuottaa lisäarvoa asiakkaillemme laadukkaasti tehtyjen ja kestävien digitaalisten ratkaisujen muodossa.
Siksi en voi korostaa tarpeeksi, miksi ohjelmistoalalla on tärkeää ymmärtää työntekijöitä ja heidän tarpeitaan. Tässä työssä vaaditaan niin luovuutta kuin kriittistä ajattelua. Koska ihmiset luovat ne ohjelmistot, jotka palvelevat ihmisiä, täytyy olla herkkyyttä ymmärtää tekijöitä ja luoda paras mahdollinen ympäristö kehittää ohjelmistoratkaisuja.
Meillä uskotaan, että tekijät itse tietävät parhaiten, mitä pitäisi tehdä ja mitä tulisi muuttaa. Aidosti kehittyvässä yhteisössä ei pakkokouluteta henkilöstöä vaan luodaan kulttuuri, missä on mielekästä kehittyä.
Pidä mielessä nämä seikat, kun lähdet kehittämään kestävästi
- Tee se mikä on tarpeen ja vain se mikä on tarpeen
- Uskalla tehdä muutoksia, jos vaatimukset muuttuvat
- Älä ota teknistä velkaa
- Uskalla sanoa suoraan, mikäli sinulta vaaditaan mahdotonta aikataulua: isot muutokset oikein tehtynä ottavat aikansa, mutta se aika saadaan takaisin
- Automatisointi nopeuttaa kehitystä ja parantaa laatua
- Osta työkalut, joilla tuottavuus nousee
- Pidä laatu korkeana
- Paranna jatkuvasti
Lähteet:
Yhteiskunnallinen kestävyys: Social Responsibility Impacts Software Development Processes
Ekologinen kestävyys: Ecological Sustainability in Software Development
Inhimillinen kestävyys: Sustainable software engineering – have we neglected the software engineer’s perspective?
Monad Oy:n tarjonta
Laatu, turvallisuus ja ympäristö
Lisätietoja
Muuta Monad Oy:n tarjontaa
Liiketoimintaprosessi
Laatu, turvallisuus ja ympäristö |
Erikoisosaaminen
IoT | |
Mobiilikehitys | |
Ohjelmistokehitys | |
Ohjelmistorobotiikka | |
Pilvipalvelut / SaaS | |
Tekoäly (AI) ja koneoppiminen |
Monad Oy:n Laatu, turvallisuus ja ympäristö -aiheiset referenssit ja julkaisut
Asiantuntijat ja yhteyshenkilöt
It- ja ohjelmistoalan työpaikat
- Laura - RPA-Trainee
- Nordea - Strategic Partner, Data Strategy and Alignment
- Innofactor Oyj - Sales Manager (Data & Analytics)
- Laura - Mobiilikehittäjä, Android
- Laura - Ohjelmistoarkkitehti, Tampere/Oulu
- Laura - Development Team Manager, Sports Games
- Taito United Oy - Senior Full Stack -kehittäjä
Premium-asiakkaiden viimeisimmät referenssit
- Hion Digital Oy - Vauvan ja vanhemman matkassa – Verkkosovellus, jonka sisältö mukautuu elämäntilanteeseen
- Verkkovaraani Oy - Uudet kotisivut Talin ja Ruusulan keilahalleille
- S1 Networks Oy - Pitäiskö teidän hankkia parempi netti?
- Altoros Finland Oy - Automaattinen kestävyysraportointityökalu CSRD siirtymää varten / Sustashift
- Digiteam Oy - Verkkokaupan toteutus Apollokaihdin.fi
- Digiteam Oy - Kattokeskuksen sivut ykköseksi Googlessa
- Digiteam Oy - Kokonaisvaltainen digimarkkinoinnin kumppanuus – Case Tradehit
Tapahtumat & webinaarit
- 04.12.2024 - Kuinka oikea matka- ja kululaskujärjestelmä tehostaa prosesseja?
- 05.12.2024 - Green ICT VICTIS -hankkeen kick off -tilaisuus
- 17.12.2024 - Rakettiwebinaari: jouluspesiaali – kysy mitä vain!
- 15.01.2025 - Datavastuullisuuden valmennus: hanki valmiudet vastuulliseen datan ja tekoälyn hyödyntämiseen
- 23.01.2025 - Generatiivisen tekoälyn hyödyt liiketoimintajohtajalle
Premium-asiakkaiden viimeisimmät bloggaukset
- Hion Digital Oy - Onko verkkopalvelusi valmis tulevaan vuoteen?
- Kisko Labs Oy - Prototyypillä säästät rahaa ja vähennät riskejä
- Rakettitiede Oy - Mistä on konsultit tehty?
- Innofactor Oyj - Näin Jedox tehostaa Excel-työskentelyä
- Rakettitiede Oy - Kiikarissa ura Raketissa? Näin onnistut!
- Identio Oy - Web Applications: How We Build Minimum Lovable Products in 2025 – Building a Lovable App
- TNNet Oy - Pysäytä palvelunestohyökkäykset DDoS-suojauksella
Digitalisaatio & innovaatiot blogimediaBlogimediamme käsittelee tulevaisuuden liiketoimintaa, digitaalisia innovaatioita ja internet-ajan ilmiöitä |