Kui agiilse tarkvaraarenduse üks põhimõtetest on tarkvara tarnimine nii tihti kui võimalik – soovitavalt iga paari nädala tagant –, siis tarkvara pidev kasutuselevõtt ehk continuous deployment kiirendab seda tsüklit veelgi, kusjuures samas kasvab nii loodud koodi kvaliteet, arendajate võimekus kui ka kliendi rahulolu, kirjutab Concise Systems’i tarkvaraarhitekt Mikk Soone.
- Continuous deployment’i otsene kasu: Foto: Erakogu
Igasugune tarkvara, olgu selleks siis mõni veebileht, nutitelefoni rakendus või suur infosüsteem, vajab pidevat täiendamist ja parandamist. Traditsioonilise tarkvaraarenduse puhul jõuavad uuendused kasutajateni mõnel korral aastas pärast põhjalikke testimisi. Kiirelt arenevas maailmas on seda selgelt liiga harva ja see võib saada konkurentsitakistuseks. Agiilse tarkvaraarenduse puhul jõuavad värskendused ja uued funktsioonid kasutajateni palju kiiremini – kuni isegi mitu korda nädalas, kuid ka see on liiga harv, et tagada tarkvara kõrge kvaliteet.
Kõige efektiivsem on tarkvara pidev kasutuselevõtt ehk continuous deployment (CD), mis tähendab et kohe, kui järjekordne koodijupp valmib, minnakse sellega live’i. Tavaliselt juhtub see mitu korda päevas, suuremate klientide puhul ka mitmeid kordi tunnis. Näiteks Facebook, Amazon, Flickr, Google, Netflix ja paljud teised väga suured ettevõtted tarnivad uut koodi tuhandeid kordi päevas.
Nii on tagatud tarkvara stabiilselt kõrge kvaliteet ka väga kiiresti kasvava koodihulga puhul ning samas suureneb arendajate produktiivsus. Sama oluline on ka fakt, et tarkvara pidev kasutuselevõtt on ärijuhtidele meele järgi, sest suurte versiooniuuendustega (kas kõik saab õigeks ajaks valmis? Kas kõik töötab nagu peab? Kuidas see mõjutab kasutajaid?) seotud stress väheneb drastiliselt.
Selline kiirus saavutatakse tänu sellele, et tarkvaravärskendused on väiksed, need läbivad ainult automaattestid ja võetakse seejärel kohe ka automaatselt kasutusse. Ehk teisisõnu – tarneahel on tehtud võimalikult lühikeseks ja efektiivseks ning inimlike eksimuste võimalus minimeeritud. See omakorda toob endaga kaasa paremad tooted, kuna kasutajatelt saab tehtud täiendustele kiiresti (sageli ka automaatselt) tagasisidet ja ärilist kasu mitte toovast funktsionaalsusest saab kergesti loobuda.
Pidev kasutuselevõtt toetub neljale põhielemendile:
1. tarkvaravärskendused on võimalikult väiksed ja isoleeritud;
2. need võetakse kasutusele kohe pärast arendamist ja testimiste läbimist;
3. Rakendamise otsus jääb suures osas arendajatele
4. kasutuselevõtt on täielikult automatiseeritud.
Kuidas tarkvara pidevalt tarnida?
Tehniliselt on CD juurutamine arendusmeeskonnas väga lihtne ja kiire – sellega saab alustada kasvõi kohe praegu. Natuke erinev lugu on aga inimfaktoriga ehk tarkvara arendajate ja selle tellijatega. Esimesed neist peavad hakkama oma töö eest senisest rohkem, aga ka erineval viisil vastutama – pideva kasutuselevõtu puhul läbib uus kood ainult automaattestimise ning kasutuselevõtt on täielikult automatiseeritud. Kuna inimpuhvrit enam pole, vastutavad tarkvara kvaliteedi eest otseselt arendajad. Selle põhjus on paljuski psühholoogiline – kui arendaja loodut testib mõni tema kolleeg käsitsi, siis puudub otsene vastutus ja kood kipub olema kehvem. Kuigi selline muutus võib mõnele arendajale alguses hirmutav tunduda, näevad nad oma töö vilju kiiresti ja see motiveerib neid tugevalt. Lisaboonusena võimaldab pidev kasutuselevõtt parandada kõik vead väga kiiresti ning tänu sellele väheneb risk, et lõppkasutajani jõuab vigane tarkvara. Seegi motiveerib arendajaid kvaliteetsemalt töötama!
Continuous deployment’i otsene kasu:
1.Madalam risk toota märkamatuid värskendusi ja uuendusi
2.Toodete senisest kiirem turule toomine
3.Loodud tarkvara kõrgem kvaliteet
4.Paremad tooted tänu paremale tarkvarale
5.Motiveeritumad töötajad tänu uuele töökorraldusele
Ka kliendi ehk tellija poolelt on vajalik mõtteviisi muutus. Kui siiani suhtlesid omavahel tiimi- ja ärijuhid, siis CD puhul suhtleb klient otse arendajaga, mis tähendab, et usaldusel on senisest suurem roll. Tavaliselt algab tarkvara pidev kasutuselevõtt testperioodiga, mis reeglina kasvab üle edukaks koostööks. Ka meie kogemus näitab, et klientidele selline lähenemine meeldib ja pärast lühikest testperioodi ei soovi keegi enam aeglast arendust tellida. CD on kasulik ka teistele äriliinidele nagu näiteks müügile ja turundusele, sest toote turule toomise aeg väheneb drastiliselt ja see avab senisest paremaid võimalusi.
Seotud lood
Arvutipargi renditeenus on mugav, säästlik ja (tuleviku)kindel. Green IT tegevjuht Asko Pukk usub, et ettevõtete äriline fookus peab alati olema enda põhitegevusel, sektoril, mida teatakse peensusteni, et olla konkurentidest paremad – just selleks vajaliku aja ja raha renditeenus vabastab.