Yrityskulttuurista ohjelmistokehityskulttuuriin
Yrityskulttuurista on puhuttu Goforella viimeisen vuoden aikana paljon, sillä päätimme osallistua Suomen parhaat yritykset -tutkimukseen ensimmäistä kertaa. Tutkimus huipentui loppugaalaan 5.2.2015, jossa Gofore valittiin Suomen 3. parhaaksi yritykseksi yleisessä sarjassa. Prosessin aikana Goforen yrityskulttuuria on tarkasteltu monesta suunnasta ja kulttuuriin liittyvistä asioista on keskusteltu paljon ja avoimesti. Yrityksen tai organisaation liiketoiminnan onnistumisen merkittävimpänä tekijänä on se, että työntekijät ovat innostuneita työstään ja voivat hyvin työpaikallaan. Jos nämä ehdot eivät täyty, on vaikea rakentaa menestyvää ja pitkäkestoista liiketoimintaa, jota ruokkii positiivinen yrityskulttuuri.
Ohjelmistokehitysprojektit tai tietojärjestelmähankkeet voisi ajatella erillisenä osana yrityksen liiketoimintaa, mutta totuus on, että se sama yrityskulttuuri joka ruokkii työtekijöiden hyvinvointia, toimii pohjana myös ohjelmistokehityskulttuurin syntymiselle. Voidaan miettiä, kuinka valtavasti laitoimme paukkuja oman yritysidentiteettimme etsimiseen ja työyhteisön hyvinvoinnin parantamiseen, mutta pitäisikö yhtä paljon miettiä, miten teemme ohjelmistoprojekteja, miten johdamme tietojärjestelmähankkeita ja miten onnistumme luomaan yhä kannattavampaa liiketoimintaa tai auttamaan asiakkaitamme kasvattamaan tuottavuutta tietojärjestelmien avulla? Väitän, että kyllä pitäisi.
Tietojärjestelmäkehitystä on perinteisesti lähestytty prosessien ja ohjelmistokehitysmenetelmien kautta. Ketterät ohjelmistokehitysmenetelmät, ITIL-käytännöt ja kokonaisarkkitehtuuritehtuurikehykset yrittävät ratkaista tietojärjestelmähankkeisiin liittyviä haasteita kukin omasta näkökulmastaan, mutta usein unohdetaan se tärkein asia – ihmiset. DevOps on termi, joka tarkoittaa jollekin ketterän ohjelmistokehityksen jälkeistä ohjelmistokehitysmenetelmää, toiselle se on joukko hyviä työkaluja tai käytäntöjä IT-projekteissa onnistumiseen, mutta ennen kaikkea DevOps syntyy kulttuurista, jonka keskiössä ovat ihmiset.
Kolme tietä näyttävät suunnan
DevOps-termin lanseerasi belgialainen Patrick Debois vuonna 2009. DevOpsin alkuperäinen tarkoitus oli saattaa ohjelmistokehittäjät (development) ja järjestelmäasiantuntijat (operations) tiiviimpään vuorovaikutukseen. Kirjat The DevOps Cookbook ja The Phoenix Project: The Book About IT, DevOps, and Helping Your Business Win antoivat DevOpsille filosofisemman kontekstin tiestä, joka ei johda koskaan täysin valmiiseen maailmaan. Kirjoissa viitataan kolmeen tiehen, jotka rakentavat DevOps-kulttuurin perustukset ja kuvaavat prosesseihin, menetelmiin ja käytäntöihin liittyviä arvoja ja filosofioita.
DevOps syntyy kulttuurista, jonka keskiössä ovat ihmiset.
Ensimmäinen tie, systeemiajattelu (systems thinking), korostaa koko systeemin suorituskyvyn ymmärtämistä yksittäisen liiketoiminnallisen siilon tai työtehtävän sijaan. Suorituskyky koostuu työstä, joka syntyy yleensä liiketoiminnallisista vaatimuksista ja päättyy vakaaseen, turvalliseen sekä luotettavaan julkaisuun asiakkaalle. Lean-käytännöt auttavat löytämään pullonkaulat arvovirroissa, vähentämään samanaikaisen käynnissä olevan työn määrää, pienetämään julkaistavan työn kokoa, parantamaan muutoksenhallintaa ja vähentämään hukkatyötä. Koko systeemin suorituskyky kärsii, jos tiedetyt ongelmat tai virheet siirtyvät arvovirrassa eteenpäin tai paikallinen yksittäisen työtehtävän optimointi vaikuttaa heikentävästi koko systeemin suorituskykyyn. Ensimmäisen tien saavuttamiseksi on saatava kattava ymmärrys ja arvostus systeemistä, joka tarkoittaa liiketoimintatavoitteiden, arvon tuottamisen, prosessien, teknologioiden, riskien ja ihmisten ymmärtämistä. Siis aitoa kiinnostusta ja välittämistä.
Toinen tie, vahvistuneet palautevirrat (amplified feedback loops), tarkoittavat palautevirroista syntyvien silmukoiden sulkemista ja lyhentämistä. Liiketoiminta, asiakkaat, järjestelmien valvonta ja testaus luovat syötteitä systeemiin, jotka prosessin mukaisen käsittelyn jälkeen tuottavat arvoa asiakkaalle. Jotta palautevirta muodostaisi silmukan, on asiakkaalta saatava palaute ohjattava takaisin systeemiin. Palautevirtoja voidaan vahvistaa kahdella tavalla: joko vähentämällä silmukassa olevien solmujen lukumäärää tai lyhentämällä kahden solmun välisen reitin kulkemiseen käytettyä aikaa. Palautevirtojen vahvistamisessa olennaisinta on etsiä silmukan suurimmat pullonkaulat ja poistaa ne ensimmäisenä. Toisen tien saavuttamiseksi on systeemin palautevirtojen silmukat suljettava ja määrätietoisesti pystyttävä poistamaan silmukoihin syntyviä pullonkauloja. Tämä ei ole mahdollista ilman hyvää ymmärrystä sisäisistä ja ulkoisista asiakkaista sekä työkaluja ja menetelmiä, jotka mahdollistavat palautteen keräämisen ja tehokkaan vuorovaikutuksen eri sidosryhmien välillä.
Kolmas tie, jatkuvan kokeilemisen ja oppimisen kulttuuri (culture of continual experimentation and learning), rohkaisee synnyttämään työympäristön, jossa uusien asioiden kokeileminen, hallittujen riskien ottaminen ja epäonnistuminen on sallittua ja jopa kannustettavaa. Uusien asioiden kokeileminen ja hallittujen riskien ottaminen on ainoa tapa ylläpitää jatkuvaa kehittymistä ja mahdollistaa siirtyminen innovaation raja-alueelle, mistä aiemmin vain pystyttiin uneksimaan. Epäonnistuminen on luonnollista, mutta kun se tehdään yhdessä ja ketään sormella osoittelematta siitä voidaan oppia. Ja kun onnistumisista palkitaan, takaa se positiivisen kierteen kehittymiselle ja uusille innovaatioille. Kolmannen tien sisäistäminen vaatii usein muutoksia organisaatiossa, työympäristössä ja tavoissa työskennellä. Jatkuvalle kehittämiselle täytyy löytyä aikaa päivittäisen työn ohella.
Irtiotto perinteistä
Organisaatio ei voi ottaa DevOpsia ulkopuolisen konsultin toimesta käyttöön. DevOps ei ole titteli, eikä tiimi organisaation sisällä. DevOps ei ole ohjelmistokehitysmenetelmä tai edes joukko työkaluja, jotka mahdollistavat jatkuvan ohjelmistojen julkaisun.
DevOps on kulttuuri, joka syntyy, kun kaikki kolme tietä on saavutettu ja yhteinen päämäärä näkyy kaikilla kristallinkirkkaana silmissä liiketoimintayksiköstä tai tittelistä riippumatta.
Matka kolmea tietä pitkin ei pääty koskaan ja organisaatiot kulkevat niitä omaa tahtiaan – jotkin kauempana horisontissa kuin toiset. DevOps näkyy IT-projekteissa paljon ennen kuin yhtään riviä koodia on kirjoitettu tai järjestelmän infrastruktuurin vaatimuksia on mietitty. Tärkeintä on saada liiketoiminnalliset siilot rikottua ja eri sidosryhmät tiiviiseen vuorovaikutukseen keskenään. Tämä voi käytännössä tarkoittaa organisaatiomuutoksia, esimerkiksi siten että siiloutuneet liiketoimintayksiköt rikotaan ja tuotekehityksen, käyttöpalveluiden, markkinoinnin ja analytiikan ihmiset yhdistetään yhdeksi liiketoimintayksiköksi ja laitetaan heidät ratkaisemaan yhdessä liiketoiminnan asettamia vaatimuksia. Liiketoiminnan on sitouduttava muutokseen, ja tuettava sitä.
Käyttöpalveluntoimittajan kanssa tehtävä sopimus ei voi enää olla sellainen, että ainoa vuorovaikutuskeino on päivitystehtävästä lähetettävä tieto tehtävienhallintajärjestelmään. Käyttöpalveluntoimittajalta täytyy saada sitoutuneet ihmiset mukaan tiimiin, jotka ymmärtävät yhdessä muiden kanssa asiakkaalle tuotettavat arvovirrat ja koko systeemin. Samat ihmiset pystyvät suunnittelemaan ja kehittämään automatisoidun julkaisujärjestelmän, joka mahdollistaa yhä nopeamman reagoinnin palautevirtoihin aina loppukäyttäjältä asti. Kun ongelmien syntyessä ei etsitä syitä heistä tai meistä, voidaan muodostaa kulttuuri jatkuvalle kokeilemiselle ja oppimisille. Näin rakentuu työympäristö, joka mahdollistaa uusien innovaatioiden syntymisen. Tämä ei koske vain käyttöpalveluita vaan mitä tahansa kolmansilta osapuolilta ostettavia palveluita. Palvelusopimusten on muututtava, ihmisten on sitouduttava työhönsä ja nähtävä arvo omalle työlleen. Muuten kolme tietä jäävät kauas horisonttiin.
Virtuaalinen infrastuktuuri ja Lean metodologioista lähtöisin oleva MVP (minimum viable product) -lähestymistapa mahdollistavat nopean reagoimisen liiketoimintaympäristön muutoksiin ja uusien ideoiden ja tuotteiden kokeilemisen. Uuden palvelun ympäristöjä ei voida odottaa kuukausikaupalla, vaan palvelu pitää saada välittömästi loppukäyttäjien kokeiltavaksi. Ympäristöistä laskutetaan käytön mukaan, ei 10-vuotisilla sopimuksilla. Vaatimusmäärittely ei saa kestää kuukausia. Muutamassa viikossa pitää pystyä tuottamaan prototyyppi, josta saadaan loppukäyttäjiltä palautetta ja analytiikkaa, joka voidaan ohjata takaisin syötteeksi jatkokehitykselle. Enää ei eletä suljetussa kansallisessa taloudessa, vaan kilpailu on globaalia. Jos me emme pysty tähän, muut kansainväliset organisaatiot kyllä pystyvät ja valtaavat meidän paikalliset markkinamme. Yritykset kuten Facebook, Netflix tai Spotify ovat pystyneet tähän, miksi pienet ja ketterät suomalaiset yritykset eivät pystyisi?
Elämme valtavan muutoksen aikaa. Palvelut digitalisoituvat ja yritykset etsivät kuumeisesti keinoja pysyä mukana tässä muutoksessa ja löytää keinoja rakentaa uusia innovaatioita ja liiketoimintaa. Yritysten brändin arvo ei enää määräydy fyysisten tuotteiden vaan niiden tuottamien digitaalisten palveluiden arvon mukaan. Amazon on maailman suurin virtuaalisen infrastruktuurin tarjoaja. Nike tuottaa lifestyle-palveluita ja hyvinvointiteknologiaa urheiluvarusteisiin. Tesco sulkee kivijalkamarketteja rahoittaakseen verkkokaupan kehittämistä. Nämä ovat esimerkkejä isoista organisaatioista, jotka ovat vastanneet digitalisoitumisen haasteisiin onnistuneesti. Gofore on valmis antamaan kaiken tukensa suomalaisille yrityksille, jotta meidät nähdään taas maailmalla teknologisina edelläkävijöinä ja pystymme vastaamaan globaalin digitaalisen liiketoiminnan haasteisiin.