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
- IsoSkills Oy - Open application: Data Engineer, Finland
- Nordea - Sr IT Analyst - Adobe/SAS Marketing Automation
- Nordea - Senior IT / Business Analyst with technical background - Finland, Nordea Payments
- Nordea - Senior IT Analyst, Finnish language required
- Laura - DevOps Engineer
- Aveso Oy - ERP tekninen projektipäällikkö
- Aveso Oy - IFS ERP -konsultti
Premium-asiakkaiden viimeisimmät referenssit
- Druid Oy - International House Turku: Ajanvarauspalvelu
- Symbio - Taxi Point Oy
- Valve - Helsingin yliopiston ylioppilaskunnan verkkopalvelun siirto WordPressiin
- Valve - Eezy Valmennuskeskuksen verkkokauppa-uudistus
- Valve - Danonen Nutricia ja Aptaclub -brändien sivustot
- Hellon - Identifying growth opportunities with global Moomin fans
- Hellon - Award-Winning Inclusive Customer Experience for Northern
Tapahtumat & webinaarit
- 13.11.2024 - Rakettiwebinaari: ohjelmistotestaus ja sen tulevaisuus
- 14.11.2024 - RoimaDay 2024
- 14.11.2024 - Verkkolaskufoorumin syysseminaari 2024
- 19.11.2024 - The Future of Software - Embracing Collaboration in an AI-Powered World
- 27.11.2024 - Green ICT -ekosysteemitapaaminen III: Ohjelmistojärjestelmien virrankulutuksen mittaaminen ja kasvihuonepäästöjen arviointi
- 27.11.2024 - Webinaari: Digitaalisen asiakaskokemuksen uusi aikakausi
Premium-asiakkaiden viimeisimmät bloggaukset
- Innofactor Oyj - Tunnista ja digitalisoi hiomattomat prosessit Power Platformin avulla
- SD Worx - Oletko etuoikeutettu työskentelemään jonkin asian parissa, jolla on todellinen tarkoitus ja merkitys?
- SD Worx - HR ja tekoäly – usein kysytyt kysymykset
- Timeless Technology - Verkon luotettavuuden varmistaminen: Ota käyttöön Perle Systemsin teollisuustason 4G ja 5G reitittimet!
- Efima Oyj - Hyvästi turhat klikkailut: Näin moderni järjestelmä tehostaa myyntityötä erikoistavarakaupassa
- SC Software Oy - SC Softwaren uratarinat: Joel Ollikainen, konsultti
- Softlandia Oy - Sovelletun tekoälyn insinöörien esiinmarssi ja tekoälyosaamisen muutos
Digitalisaatio & innovaatiot blogimediaBlogimediamme käsittelee tulevaisuuden liiketoimintaa, digitaalisia innovaatioita ja internet-ajan ilmiöitä |