Palvelujen kehitystä ei kannata irrottaa tuotannosta

Kahdenkymmenen vuoden aikana olen havainnut toistuvaksi ongelmaksi yhteistyön puutteen eri yksiköiden ja vastuualueiden välillä. Kun yksiköt on saatettu yhteen ja yhteinen tekeminen aloitettu, on ollut hienoa nähdä niin tekemisen into kuin laadukas lopputulemakin.

Toimiva ohjelmistokehitys ei nimittäin koostu irrallisista osista. Devaamiseen voidaan saada aivan uusia kierroksia, kun se nivotaan saumattomasti yhteen pelaavaksi kokonaisuudeksi palvelutoimintojen kanssa.

Kulttuuri, johon kuuluvat ketteryys, itseohjautuvuus, asioiden ratkaiseminen ja yhdessä tekeminen, tukee myös DevOpsissa* tarvittavaa luottamusta ja tekemisen vapautta. Lean-ajatteluun pohjautuva ohjelmistokehitys edistää mukautuvaa suunnittelua, varhaista toimitusta ja jatkuvaa parantamista; kokonaisuuden hallintaa, jolla varmistetaan, että kaikki asiat on huomioitu ja osa-alueet ovat tasapainossa.

Ongelmia, kuten ylikuormittuminen, lisäkustannukset ja tietoturvan puutteet, voi syntyä silloin, kun fokus painottuu palveluiden kehitykseen ja lanseeraukseen, mutta toteutusta ja ylläpitoa ei huomioida heti alkuvaiheessa eikä järjestelmän rakentamisen aikana. Kokonaislaatu sekä jatkuvuuden ja tietoturvan varmistaminen jäävät liian vähälle huomiolle tai jopa puuttellisiksi.

Ketterä palvelukehitys on läpinäkyvää…

DevOps on huomattavasti suurempi asia kuin pelkkä koodin laatu.

Paras lopputulos saadaan, kun sovelluksia pystytään ylläpitämään tehokkaasti, ja tekemisen viitekehys on sellainen, jossa sekä kehittämistä että palvelutoimintoja pystytään tekemään järkevästi rinnakkain. Mahdollisimman pitkälle viety prosessien automatisointi mahdollistaa sovellusten tehokkaan ylläpidon, tietoturvan sekä jatkuvuuden varmistamisen. Kun ihminen ei ole portinvartijana, normaalitilanne saadaan poikkeustilanteessa palautettua nopeammin.

Jotta saadaan ketterää palvelukehitystä, on varmistettava että sekä Ops että Dev seuraavat DevOps-frameworkin tekemisen prosesseja. Yhteisen tekemisen näkyväksi tekeminen voidaan yksinkertaisimmillaan toteuttaa siten, että otetaan eri alueiden edustajat yhteiseen palaveriin, jotta ymmärretään kaikkien tehtävät, vastuut ja vaikutukset toisiin osa-alueisiin. Näin varmistetaan se, että tuotanto tietää mitä devaajat ovat kehittäneet. Ja devaajat ymmärtävät olennaiset tuotannossa huomioitavat seikat.

Konsultaatio tai ainakin mielipiteiden kuuleminen etukäteen vähentäisi kitkaa palvelutoimintojen ja palvelukehituksen välillä, palvelutuotannon ylikuormittumista ja riskiä palvelun laadun kärsimisestä ja kustannusten noususta. Avoimen kommunikaation ansiosta tuotantoon tuodaan vähemmän asioita joita joudutaan viilaamaan. Kun kummankin roolit ja tekemiset on tehty näkyviksi molemmille, siilot madaltuvat ja yhteinen osaaminen saadaan tehokkaaseen käyttöön. Deville ja Opsille voidaan myös rakentaa läpinäkyvä yhteinen portaali, jossa asiat integroidaan yhteiseksi tekemiseksi.

… ja skaalautuvaa

Kapasiteetin ja osaamisen riittävyys on helpompi hahmottaa, kun kaikkien tekeminen on yhteisessä tiedossa. Yksi vaihtoehto kapasiteetin lisäämisen ja vähentämisen ennakointiin, joustavuuteen ja skaalautuvuuteen on ulkoistaa osa prosessista. Tämäkin on helpompaa kun roolit ovat selkeitä.

Devin ja Opsin yhteistyö parantaa järjestelmän luotettavuutta, palvelun toimivuutta, tietoturvaa ja devaamisen laatua. Kehitys jatkuu ja saa uusia ulottuvuuksia, kun tuotanto syöttää asiakasrajapinnassa tehtyjä havaintoja ja ilmenneitä tarpeita takaisin kehittäjille.

NerdyNet on ollut rakentamassa ja kehittämässä asiakkaalle sopivia toimintamalleja, joissa hyödynnetään yllä kuvattuja hyviä tapoja ja saavutetaan palvelukehitykseen ja tuotantoon ketteryyttä, nopeampaa läpimenoa, parempaa laatua, kustannustehokkuutta ja skaalauvuutta. Tavoitteenamme on vapauttaa asiakkaidemme asiantuntijoiden työaikaa omaan substanssitekemiseensä huolehtimalla DevOps-mallin mukaisesta jatkuvasta kehittämisestä. Haluan tarjota kaikille mahdollisuuden tuottaa uudella innolla laadukasta ohjelmistokehitystä ja palvelutoimintoja tietoturvallisesti.

Tutustu Siili– ja Pharmac-asiakastarinoihimme.

 

*DevOps (eli Development, ohjelmistokehitys ja Operations, palveluntarjonta) on digitaalisten palveluiden kehitys- ja tuotantomalli, jossa ohjelmistokehitykseen, testaamiseen, konfigurointiin ja ylläpitoon liittyvät toiminnot pyritään automatisoimaan mahdollisimman pitkälle. Tavoitteena on, että rakennettava ohjelmisto on jatkuvasti niin hyvin testattu, että se on julkaistavissa reaaliaikaisesti.

Jaa