Continuous Delivery (CD) - u 5 minuta

Page 1

Continuous Delivery u

E

BUI

TES

T

LD

5 minuta

COD


Običan dan na poslu … Kako ide, dokle ste? Klijent je uporan - stalno pita kada može očekivati dostavu!

Nisam siguran da smo postigli dovoljno dobar kvalitet ovaj put.

"Sretno vam bilo!" – trebat će nam dvije sedmice, kao i za sve ostalo.

Da li vaša organizacija želi unaprijediti kvalitet i sigurnost isporuke - te na taj način dobiti zadovoljnije kupce? U tom slučaju predlažemo upoznavanje s metodom isporuke Continuous Delivery (CD), koja omogućava da: • u svakom momentu imate kod koji je spreman za isporuku! • vaš tim, nakon svake izmjene koda, brzo dobija potvrdu da sve funkcionira • klijentu možete ponuditi testiranje/demo već u ranom stadiju kako biste dobili povratnu informaciju • smanjen nivo stresa, otvarajući prostor za kreativnost 2


A ja radim na kodu kojeg sam završio prije mjesec dana.

• brzo prilagođavanje izmijenjenim uvjetima i željama klijenta • vaši developeri se ne moraju vraćati na stare probleme koji su već davno trebali biti riješeni • vaša organizacija može razraditi vremenski plan isporuke u koji će klijent imati potpuno povjerenje Continuous Delivery je metoda koja developerima omogućava da se fokusiraju na pisanje kvalitetnog koda, oni znaju da ono što isporučuju zapravo funkcionira zajedno s ostalim dijelovima softvera. 3


ŠTA ZNAČI CONTINUOUS DELIVERY? Kontinuirana isporuka (Continuous Delivery), CD, je metoda koja omogućava IT kompanijama isporuku novih verzija ili ažuriranje softvera brzo i kontinuirano bez internih kašnjenja i problema u vezi s kvalitetom. Metoda pospješuje saradnju timova da rade na zajedničkom softverskom proizvodu ili usluzi. Metoda se zasniva na radnom postupku pri kojem svaki developer preuzima veliku individualnu odgovornost za kvalitet koda. Automatsko testiranje vrši se neposredno nakon svake izmjene ili dorade koda. Posao se odlikuje kratkim ciklusima i brzom povratnom informacijom. To znači da je softver u svakom momentu istestiran i spreman za isporuku. Stoga nove funkcionalnosti, poboljšanja i ispravke ne moraju čekati kraj ciklusa, već se mogu isporučiti čim budu gotovi. Klijent može biti tim u istoj kompaniji ili poslovni partner (koji nije i krajnji korisnik softvera).

Softver uvijek spreman za isporuku

Automatsko testiranje Individualna odgovornost za kvalitet

Kratki ciklusi; brza povratna informacija

CD ne uključuje finalnu isporuku (deployment). Kada govorimo o isporuci softvera krajnjem korisniku, riječ je o Continuous Deployment. 4


PRINCIPI CONTINUOUS DELIVERY-a CD podrazumijeva da kod koji se konstantno razvija prolazi kontrolu kvalitete na svim nivoima, prvenstveno putem automatskog testiranja. Kod se odmah testira u svom kontekstu i pakuje se kako bi bio spreman za isporuku. Individualna odgovornost za kvalitet Glavna karika CD je posao pojedinačnog developera, gdje se vrše izmjene u kodu koje se razvijaju i testiraju prije integracije sa ostalim izmjenama koda a na kojima radi cijeli tim. Posao se zasniva na povjerenju i timskom duhu: svaki developer treba obaviti svoj dio posla na predvidiv i precizan način, bez korištenja kratica, sistema ili programa koji nude tek privremeno rješenje. (Vidi Clean Code in five minutes). Automatsko osiguranje kvaliteta Za očuvanje kontinuiranog osiguranja kvaliteta potrebno ga je u što većoj mjeri automatizirati iako Code Review zadržava svoje mjesto u ovom procesu. Prednost je da se smanji vrijeme utrošeno na kontrolu kvaliteta svake isporuke. Još jedna prednost je ta da se automatiziranjem smanjuje rizik za nastanak greške. Primjenom CD ubrzavamo procese, npr. nove izmjene koda se testiraju u roku do sat vremena. Kratki ciklus s brzom i kontinuiranom povratnom informacijom CD prati uobičajene principe Agile-a. CD ima za cilj da unaprijedi kompleksne kolaboracije da teku bez zastoja ili bez pojave grešaka – poput zupčanika u dobro uhodanoj mašineriji. Kontinuirano dodavanje manjih izmjena koje se odmah testiraju pruža timu uvid u fazu procesa sa minimilanim rizikom pri svakom dodatku. Velika je vjerovatnoća da se proizvod može isporučiti odmah nakon posljednje izmjene koda.

5


CONTINUOUS DELIVERY U PRAKSI CD znači sposobnost efikasnog upravljanja kodom, njegovim razvojem, testiranjem i isporukom. Rezultat je dobro uhodana mašinerija gdje ljudi postepeno razvijaju proizvod sa dogradnjom i ispravkama.

D / TES L I BU

E

BUI

T

TES

LD

P

R

O

EST T / IU LD

COD

B

ST

G

LO

CK A

B CD kompanija temelji se na pojedincima i timovima koji vladaju sljedećim disciplinama:

V LI

E

D

kodom – (code) alati i procesi za dodavanje novog koda, te rukovanje verzijama razvoj – (build) alati i procesi za razvoj softvera testiranjem – (test) alati i procesi za upravljanje testnim kodom zajedno s kodom za proizvod kao i automatsko testiranje proizvoda isporukom – (delivery) sposobnost pakovanja softvera i stavljanje na raspolaganje kupcu

Y

6

R E

Kada kompanija postigne visok stepen zrelosti po pitanju ovih disciplina, rijetka su negativna iznenađenja pri integraciji i isporuci.


U dobro organiziranoj CD kompaniji, kotač isporuke (sivi krug/obruč) vrti se neprekidno velikom brzinom.

D UIL

T

B

TES

TEST

BUIL

DE

D

CO

Obratite pažnju kako se četiri discipline – kod, razvoj, testiranje i isporuka – izvršavaju na svakom nivou. Može se reći da CD ima fraktalnu strukturu. Integrirani kod i rezultati testa su jasno vizualizirani. Svako može lako da vidi koji dodaci su napravljeni svakog dana iz Backloga i kako izgledaju rezultati testa - kako za nove, tako i za prethodne funkcije.

O

D

U

CT

/ TEST DE

BU

TEST

T

BUI

TES

Y

R E

Najmanje jednom dnevno kompanija je spremna da klijentu isporuči novu verziju proizvoda.

LD

/ ILD

P

R

CO

S ME T O C C RE ODU E H PR E TH 7


Developer zauzima centralnu poziciju kontinuirane isporuke Težnja CD jeste obezbijediti developeru najefikasnije alate i procese za upravljanje disciplinama: kodom, razvojem i testiranjem. Mogućnost da se dobije vrijedna povratna informacija dozvoljava developeru da posao obavlja u brzim ciklusima primijenjujući i četvrtu disciplinu: isporuku razvijenog koda odmah po završetku razvoja. Kada svi rade na isti način, posljednje verzije koda ostalih članova tima su uvijek dostupne – testirane i spremne. Na ovaj način se minimiziraju periodi čekanja između različitih organizacionih jedinica. Putem jasne vizualizacije svi u kompaniji razumiju koji dijelovi posla su gotovi te koliko dobro različiti dijelovi koda funkcioniraju – odvojeno i integrirano. Jedno od pravila CD jeste da pojedinačna isporuka koda ne bi trebala trajati duže od sat vremena. Izgradnja i automatsko testiranje će brzo dati povratnu informaciju ukoliko isporuka ne funkcionira kako je planirano.

ST

IU LD TEST C B

E BUILD TE D O

B

EST T / D

UIL

CODE

Najmanji element koncepta CD jeste developer koji je usvojio sve četiri discipline i uspješno vlada istima.

8


Četiri discipline Kod Alati i procesi za razvoj novog dijela koda te upravljanje novim i starijim verzijama koda koje su razvijene i isporučene. Paralelno sa razvojem novog koda počinje i Code Review, razvoj koda i automatska testiranja u svrhu direktne informacije developeru prije konačne izmjene proizvoda. Svi dodaci proizvodu su u ovoj fazi procesa potpuno transparentni, a njihovo dokumentiranje se radi automatski. Razvoj Alati i procesi za razvoj robusnog i efikasnog koda u proizvodu koji daje identičan rezultat za sve uključene. Nudi i mogućnost ponovnog kreiranja starijih verzija proizvoda. Test Alati i procesi za upravljanje testnim kodom u kombinaciji s kodom proizvoda i automatskim testiranjem. Automatski test kontinuirano vizualizira kako nove tako i starije funkcionalnosti koje funkcioniraju u proizvodu. Developer ima uvid u svaki dodatak prije nego se izvrši konačno dodavanje istog. Isporuka Mogućnost isporuke softvera i stavljanje kupcu na raspolaganje. U mnogim slučajevima je prikladno opisati konfiguraciju i podešavanje produkcijskog okruženja zajedno s proizvodom i testovima.

T

9


Započeti sa Continuous Delivery - 1 Metodu CD nije moguće implementirati preko noći. Naprotiv, ovdje je riječ o procesu sazrijevanja tokom kojeg kompanija prolazi kroz različite stadije, od početnika pa do iskusnog majstora. Centralni alat je tzv. model sazrijevanja.

1

Analizirajte poslovne potrebe Kompanija koja je pogodna za Kontinuiranu isporuku u svojoj osnovi njeguje duboko razumijevanje potreba kako tržišta tako i klijenta/kupca, ali i poslovnih mogućnosti koje nam ova metoda rada nudi. Ova metoda postaje platforma za donošenje svih budućih odluka i prioriteta.

2

lntrodukcija modela sazrijevanja te evaluacija postojećih uvjeta i stepena zrelosti kompanije. Model sazrijevanja je alat koji i površno i detaljno pokazuje koliko daleko je kompanija stigla u razvoju svoje infrastrukture i metoda rada. Ovakav model nudi osnovu za evaluaciju (assessment) četiri discipline (kod, razvoj, testiranje, isporuka) pred uvođenje modela Kontinuirane ispo­ruke. Čak i nakon inicijalne introdukcije, model sazrijevanja predstavlja osnovni alat (vidi tačku 4); moguće je ovaj model posmatrati kao listu potrebnih izmjena kako bi se unaprijedile, odnosno uvele nove metode i procesi.

3

Napravite plan za unapređenje Uspostavite plan zasnovan na analizi poslovanja te uvida iz koraka 2. Koje mjere treba poduzeti? Kojim redoslijedom je prikladno provoditi izmjene? Gdje možemo očekivati brz učinak poduzetih mjera? Kada možemo početi da stvarno koristimo prednosti CD-a?

10


Basic

Medium

MATURE

Kod se svakodnevno isporučuje za integraciju.

Automatizirane dnevne isporuke potvrđenog kvaliteta.

Automatsko upravljanje izvornim i testnim kodom u više okruženja.

Mogućnost potpune reprodukcije i viši stepen paralelizacije se ubrzava.

KOD

NoviCE

RAZVOJ TEst ISPORUKA Nakon analize, evaluacije i planiranja, počinje kretanje u skladu s modelom sazrijevanja, s lijeva na desno. Slika je prikaz dvije kompanije - crvene i zelene - koje rade na osnovu ovog modela. Kretanje od 'Novice' (početnik) do 'Mature' (zreo) može trajati mjesecima, pa i godinama. Ista kompanija može postići različite rezultate u različitim disciplinama.

11


Započeti sa continuous delivery – 2 4

Provesti mjere poboljšanja u skladu sa planom Postepeno provoditi mjere poboljšanja u skladu sa planom, te kontinuirano vršiti evaluaciju radi provjere da sve ide pravim tokom. Plan obuhvata i investicije u alat, trening i procese unutar različitih disciplina za upravljanje kodom, razvojem, testiranjem te isporukom. Ovaj posao podrazumijeva prilagođavanje i proširivanje infrastrukture. Prvenstveno se treba pobrinuti o upravljanju izvornim kodom, ali i build verzijama. Veliki izazov jeste automatiziranje bulid-a i kontrola kvalitete. Također je bitno vizualizirati sve procese i isporuke. U konačnici, potrebno je kreirati zreo i automatiziran proces isporuke.

5

Skratite proces i uvedite novi način razmišljanja Kada infrastruktura počinje dobijati pravi oblik vrijeme je da se uskladi proces krećući se u desno prema modelu sazrijevanja. To ujedno znači i uvođenje novih načina razmišljanja: Metodološko razmišljanje je u skladu s prvim principom 'Agile Manifesto', koji kaže: „Naš prvi prioritet jeste zadovoljiti klijenta kroz blagovremenu i kontinuiranu isporuku funkcionalnog/vrijednog softvera“. To znači da svaki završen zadatak rezultira isporukom koja će biti osnov za brzu povratnu informaciju u simuliranom ili stvarnom produkcijskom okruženju. Komunikacija mora biti pojačana na svim nivoima, kako unutar DEV tima, tako i između klijenta i DEV tima. Na zahtjev klijenta omogućuje mu se dnevno praćenje razvoja softvera – potpuna transparentnost je cilj. Developeri, s druge strane, trebaju više informacija o tome kako, gdje i ko je krajnji korisnik softvera. Efektno liderstvo u CD okruženju se krije u jačanju povjerenja unutar DEV tima – svi trebaju znati da obavljaju dobar posao na pravi način i da se prepozna nesebičan stav. Uprava isto tako mora razviti smjelost da iskoristi transparentnost, ubrzani tempo i sigurnost isporuke koju kreira CD.

12


Agilni manifest:

„Mi pratimo sljedeće principe: Naš najveći prioritet jeste zadovoljiti Klijenta BLAGOVREMENOM I KONTINUIRANOM ISPORUKOM vrijednog softvera…“

13


Drugi način na koji se može objasniti continuous delivery Batch Automobiles i Continuous Cars su dva takmičarska tima koja učestvuju u autoseriji Formula Agile Series. Konkurencija je izuzetno jaka te je za svaku utrku potrebno modificirati i ažurirati automobile. Dugo je Batch Automobiles bio dominirajući tim, ali sada imaju male šanse protiv Continuous Cars tima. U čemu je tajna uspjeha ovih novih zvijezda da perfektno prilagode automobile pred svaku utrku? Pogledajmo šta se dešava iza zatvorenih vrata radionice oba takmičarska tima. (A) Kod Batch Automobiles tim mehaničara ide do srži s kompletnom konstrukcijom pri svakom ažuriranju. Auto se rastavlja i svako radi na

14


dijelovima za koje je zadužen/odgovoran. Kada svi završe svoj posao, automobil se ponovo sastavlja. Međutim, neočekivani problemi se znaju pojaviti prilikom sastavljanja automobila jer različiti dijelovi nisu testirani zajedno. Dok su radovi u toku, vozači Batch Automobiles znaju da često moraju čekati i po nekoliko dana dok ne dobiju priliku da testiraju auto kako bi mogli doći s povratnom informacijom. (B) Kod tima Continuous Cars vade se samo oni dijelovi koje je potrebno izmijeniti. Čim mehaničar izvrši izmjenu na određenom dijelu, vraća ga nazad i testira, kako bi se osiguralo da isti funkcionira u kompletnoj mašineriji. Kad god mehaničari naprave pauzu u svom radu, vozač može sjesti u auto i testirati ga, te doći s povratnom informacijom.

DON

E

DON

E

15


Continuous Delivery (CD) – vas približava vašem klijentu Continuous Delivery, CD, je metoda zasnovana na: • Individualnoj odgovornosti za kvalitet • Automatskom testiranju • Kratkim ciklusima s brzom i kontinuiranom povratnom informacijom.

Ovi uvjeti donose mnoge prednosti za DEV tim u smislu veće produktivnosti, skraćenog čekanja, manje problema kompatibilnosti između novog i starog softvera te lakšeg otkrivanja grešaka. No, najveći dobitnik je klijent koji ima kvalitetniju i bržu isporuku koda te bolje prilagođavanje brzo promjenjivim zahtjevima modernog tržišta.

Softhouse Consulting Sarajevo Trg Solidarnosti 2A 71 000 Sarajevo Phone: +387 64 42 79 847 info.bosnia@softhouse.se Stockholm Tegnérgatan 37 SE-111 61 Stockholm Phone: +46 8 410 929 50 info.stockholm@softhouse.se Gothenburg Magasinsgatan 18A SE-411 18 Göteborg Phone: +46 31 760 99 00 info.goteborg@softhouse.se Malmö Stormgatan 14 SE-211 20 Malmö Phone: +46 40 664 39 00 info.malmo@softhouse.se

Karlskrona Campus Gräsvik 3A SE-371 75 Karlskrona Phone: +46 455 61 87 00 info.karlskrona@softhouse.se Växjö Kungsgatan 1B SE-352 30 Växjö Phone: +46 455 61 87 00 info.vaxjo@softhouse.se Helsingborg Bredgatan 19 SE-252 25 Helsingborg Phone: +46 702 17 60 02 staffan.broome@softhouse.se

www.softhouse.se


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.