Blog

Zero-day delivery: DevOpsin seuraava askel?

AUG 26, 2019

Ohjelmistokehityksessä hienoa on se, kuinka nopeasti voit tehdä ideoista totta, kun perusta on kunnossa. Ideat antavat yrityksille niiden tarvitseman hapen pysyä edellä.

Marko Klemetti

Chief Technology Officer

Marko toimii Eficoden teknologiajohtajana. Eficode on eurooppalainen DevOps- ja design-talo. Hän on myös perustaja ja neuvonantaja useissa teknologia-startupeissa. Marko on intohimoinen ohjelmoija, joka uskoo, että design-järjestelmät ja jatkuva julkaisu (continuous deployment) ovat modernin kehitysorganisaation mahdollistajia.

Hyvän idean keksimisen tunnetta on vaikea voittaa, mutta monille yrityksille seuraava vaihe on se haastavin. Miltä tuntuisi nähdä ideasi toteutuvan jo samana päivänä, kun keksit sen?

Mielestäni tämä on DevOpsin seuraava askel, ja sitä kutsutaan zero-day deliveryksi.

Zero-day delivery on Continuous Deliveryn seuraava askel

Continuous Delivery tuottaa ohjelmistoja lyhyissä sykleissä, mikä lisää nopeutta ja julkaisutiheyttä sekä vähentää virheitä. Continuous Delivery tarkoittaa, että pystyt ottamaan koodisi käyttöön ja asettamaan sen käyttäjien saataville, mutta viimeinen vaihe eli asiakkaiden pääsy kokemaan tuotteesi muutokset on manuaalinen prosessi. Käytäntöä, jossa myös tämä viimeinen vaihe automatisoidaan, kutsutaan Continuous Deploymentiksi.

Continuous Delivery on tärkeä siirtymä pois perinteisistä toimintatavoista, jotka perustuvat organisaation siiloihin. Useimmat Continuous Deliveryn edelläkävijät eivät kuitenkaan hyödynnä sen potentiaalia riittävästi. He käyttävät yhä perinteisiä toimintatapoja siirtyessään liiketoimintaideasta suunnitteluun, suunnittelusta kehitykseen tai valmiista ominaisuudesta julkaistuun tuotteeseen.

Kun organisaatio jarruttaa itse itseään

The waterfall model of developing software

Continuous Delivery edellyttää tietynlaista organisaatiokulttuuria ja tiettyjä käytäntöjä, jotta jatkuva toimitus on mahdollista. Organisaation siilot voivat silti tarkoittaa, ettei toimitus pääse alkamaan heti, vaan sen on odotettava useiden vaiheiden valmistumista.

DevOps-matkallaan pitkälle edenneillä yrityksillä – joiden matkaan liittyy usein organisaatiomuutoksia – on kyky nopeuttaa koko prosessia ideasta päivityksen julkaisuun asti.

Monet eivät kuitenkaan hyödynnä tätä potentiaalia, vaan lähtevät liikkeelle hitaasti käyttämällä Continuous Deliveryä vain puolivälissä matkaa ideasta tuotteeksi: joko kehityksen aikana tai tuotantoympäristössä, mutta eivät koko matkan ajan.

Continuous Delivery on vapautettava, jotta se voi saavuttaa täyden potentiaalinsa. Tätä potentiaalia kutsun zero-day deliveryksi.

Zero-day deliveryä vauhdittaa kokonaisvaltainen DevOps

Kuvittele tämä: kun aloitat ohjelmistoprojektin – tai vielä parempaa, kun päätät aloittaa projektin tai vasta harkitset sitä – se voisi olla käynnissä tuotantoympäristössä jo samana päivänä.

Toisin kuin ideasi, tämä ei ole mielikuvituksen tuotetta. Kyseessä on Continuous Deliveryn (mutta miksei myös Continuous Deploymentin?) työkaluista ja projektipohjista koostuva putki, johon kuuluu esimerkiksi:

  • integraatiot vaatimustenhallintaan ja versionhallintaan

  • design system ja sen UI-komponentit

  • automatisoidut testipohjat ja infrastruktuurit

  • julkaisuautomaatio.

Voit syöttää ideasi putkeen, ja toisesta päästä tulee ulos ohjelmisto. Vain 10–20 % koodista on itse tuotetta, kun taas kaikki muu koostuu jaetuista komponenteista, pohjista ja käytännöistä, jotka tukevat DevOpsia parhaimmillaan.

image-43-2

Projektipohjat ovat uuden idean lähtökohta. Ne on yhdistetty työkaluketjuun, joten jo kloonatessasi ensimmäisen osan koodista – vaikka se olisi vain 10–20 % alkuperäisestä pohjasta – sinulla on kyseisessä pohjassa valmiina avain tuotantoympäristöön.

Zero-day deliveryn hyödyt ovat valtavat

zero day delivery- continuous delivery
  1. Zero-day delivery antaa välitöntä palautetta ideastasi, ja se on korvaamatonta. Sinun ei enää tarvitse odottaa viikkoja saadaksesi tietää, miten uusi ominaisuutesi toimii tai pitävätkö käyttäjät siitä. Ei enää demoja: näet ideasi suoraan tuotantoympäristössä.

  2. Zero-day delivery muuttaa tapaasi ajatella uuden idean, ominaisuuden tai ohjelmistosi muutoksen ensimmäisiä vaiheita. Et aloita odottamalla, vaan toimittamalla. Myös tiimin näkökulmasta se on varsin helppoa. Putki on jo luotu, ja työ on tehty skaalautuvasti. Voit ottaa sen käyttöön myös organisaation muissa tiimeissä.

  3. Zero-day delivery lyhentää markkinoillepääsyä viikoilla. Ratkaisevaa ei ole se, milloin saat tietää, että jokin on vialla tai että jotain tapahtuu. Ratkaisevaa on se, milloin yrityksesi reagoi siihen.

  4. Zero-day delivery kannustaa myös epäonnistumaan nopeasti. Voit paljastaa huonot ideat heti sellaisiksi kuin ne ovat – mitä et välttämättä huomaa konseptointivaiheessa.

Älä toimita sitä, mikä on valmista – toimita se, mikä toimii

Zero-day delivery tarkoittaa siirtymää valmiin toimittamisesta toimivan toimittamiseen.

Tämä tarkoittaa sitoutumista mahdollisimman pieniin toimituksiin, mikä käytännössä merkitsee pienempiä virheitä. Se mahdollistaa myös canary-testauksen: uusia ominaisuuksia julkaistaan vain valituille asiakkaille, ja saadun tiedon avulla ominaisuus viimeistellään tai sitä kehitetään edelleen.

Toimitus ei myöskään ole sama asia kuin julkaisu

Se, että viet jotain tuotantoon tai tuotantoa vastaavaan ympäristöön, ei tarkoita, että se pitäisi julkaista asiakkaillesi samana päivänä. Loppukäyttäjän ei tarvitse nähdä sitä, ennen kuin käännät kytkimestä ja otat sen käyttöön.

Keskeinen ajattelutavan muutos on, että zero-day delivery ei tarkoita vain valmiiden ominaisuuksien julkaisemista, vaan toimivan ohjelmiston toimittamista. Tämä poistaa monia integraatioon ja testiautomaatioon liittyviä ongelmia verrattuna siihen, että yhdistetään ja julkaistaan vain ”valmiita” ominaisuuksia. Lisäksi voit kokeilla uutta ominaisuutta pilottiasiakkaiden kanssa tuotannossa ennen sen julkaisemista kaikille.

Zero-day delivery ei ole uskonvarainen hyppy. Se on DevOpsia

Se, että toimitus ei ole sama asia kuin julkaisu, vähentää toivottavasti paljon pelkoa. Haluan kuitenkin korostaa, ettei yrityksillä ole mitään menetettävää. Teknologia mahdollistaa zero-day deliveryn, ja olemme nähneet sen toimivan käytännössä.

Elämme jo maailmassa, jossa toimitussyklit ovat niin nopeita, että ne toteutuvat jo samana päivänä kuin idea syntyy. Kyse ei ole näillä käytännöillä saavutettavasta kilpailuedusta, vaan vaihtoehtoiskustannuksesta, jos et ota niitä käyttöön.

Et enää rakenna kelloa vuoden ajan. Sen sijaan tuotat asiakkaillesi jatkuvasti kasvavaa arvoa ja reagoit monimutkaiseen toimintaympäristöön luomalla yritykseesi tilanteen, jossa uudet ideat toteutuvat nopeasti.

  • DevOps
  • CI/CD

Subscribe to our newsletter