16
CONTINUOUS DELIVERY C O D E B U I L D T E S T u minuta 5

Continuous Delivery - Softhouse · Continuous Delivery je metoda koja developerima omogućava da se fokusiraju na pisanje kvalitetnog koda, oni znaju da ono što isporučuju zapravo

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Continuous Delivery - Softhouse · Continuous Delivery je metoda koja developerima omogućava da se fokusiraju na pisanje kvalitetnog koda, oni znaju da ono što isporučuju zapravo

Continuous Delivery

CODE B

UILD TEST

u minuta5

Page 2: Continuous Delivery - Softhouse · Continuous Delivery je metoda koja developerima omogućava da se fokusiraju na pisanje kvalitetnog koda, oni znaju da ono što isporučuju zapravo

2

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

Page 3: Continuous Delivery - Softhouse · Continuous Delivery je metoda koja developerima omogućava da se fokusiraju na pisanje kvalitetnog koda, oni znaju da ono što isporučuju zapravo

3

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.

Page 4: Continuous Delivery - Softhouse · Continuous Delivery je metoda koja developerima omogućava da se fokusiraju na pisanje kvalitetnog koda, oni znaju da ono što isporučuju zapravo

4

Š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. Auto-matsko 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).

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

individualna odgovornost

za kvalitet

Automatsko testiranje

Kratki ciklusi; brza povratna

informacija

softver uvijek spreman za isporuku

Page 5: Continuous Delivery - Softhouse · Continuous Delivery je metoda koja developerima omogućava da se fokusiraju na pisanje kvalitetnog koda, oni znaju da ono što isporučuju zapravo

5

pRinCipi COnTinuOus dEliVERY-aCD 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 kvalitetGlavna 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 kvalitetaZa očuvanje kontinuiranog osiguranja kvaliteta potrebno ga je u što većoj mjeri automatizirati iako Code Review zadržava svoje mjesto u ovom proce-su. Prednost je da se smanji vrijeme utrošeno na kontrolu kvaliteta svake isporuke. Još jedna prednost je ta da se automatiziranjem smanjuje rizikza 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 informacijomCD prati uobičajene principe Agile-a. CD ima za cilj da unaprijedi komple- ksne kolaboracije da teku bez zastoja ili bez pojave grešaka – poput zupča-nika 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 jevjerovatnoća da se proizvod može isporučiti odmah nakon posljednje izmje-ne koda.

Page 6: Continuous Delivery - Softhouse · Continuous Delivery je metoda koja developerima omogućava da se fokusiraju na pisanje kvalitetnog koda, oni znaju da ono što isporučuju zapravo

DELIVERY

BACKLOG

BUILD / TESTBUILD / TEST

BUILD / TEST

BUILD / TEST

CODE B

UILD TEST CODE BUILD TEST

CODE BUILD TEST

PRODUCT

HERE COMES

THE PRODUCT

6

COnTinuOus dEliVERYu pRaKsiCD 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.

CD kompanija temelji se na pojedincima i timovima kojivladaju sljedećim disciplinama:

kodom – (code) alati i procesi za dodavanje novog koda, te rukovanje verzijamarazvoj – (build) alati i procesi za razvoj softveratestiranjem – (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

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

Page 7: Continuous Delivery - Softhouse · Continuous Delivery je metoda koja developerima omogućava da se fokusiraju na pisanje kvalitetnog koda, oni znaju da ono što isporučuju zapravo

DELIVERY

BACKLOG

BUILD / TESTBUILD / TEST

BUILD / TEST

BUILD / TEST

CODE B

UILD TEST CODE BUILD TEST

CODE BUILD TEST

PRODUCT

HERE COMES

THE PRODUCT

7

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

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.

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

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.

Page 8: Continuous Delivery - Softhouse · Continuous Delivery je metoda koja developerima omogućava da se fokusiraju na pisanje kvalitetnog koda, oni znaju da ono što isporučuju zapravo

8

dEVElOpER ZauZima CEnTRalnu pOZiCiju KOnTinuiRanE ispORuKEtež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 obav-lja 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 peri-odi čekanja između različitih organizacionih jedinica. Putem jasne vizuali-zacije 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 povrat-nu informaciju ukoliko isporuka ne funkcionira kako je planirano.

BUILD / TEST

CODE BUILD TES

T CODE BUILD TEST

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

Page 9: Continuous Delivery - Softhouse · Continuous Delivery je metoda koja developerima omogućava da se fokusiraju na pisanje kvalitetnog koda, oni znaju da ono što isporučuju zapravo

9

BUILD / TEST

CODE BUILD TES

T CODE BUILD TEST

Četiri discipline

KodAlati 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 di-rektne informacije developeru prije konačne izmjene proizvoda. Svi dodaci proizvodu su u ovoj fazi procesa potpuno transparentni, a njihovo dokumen-tiranje se radi automatski.

razvojAlati 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.

testAlati i procesi za upravljanje testnim kodom u kombinaciji s kodom proizvo-da i automatskim testiranjem. Automatski test kontinuirano vizualizirakako nove tako i starije funkcionalnosti koje funkcioniraju u proizvodu. Developer ima uvid u svaki dodatak prije nego se izvrši konačno dodavanje istog.

isporukaMoguć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.

Page 10: Continuous Delivery - Softhouse · Continuous Delivery je metoda koja developerima omogućava da se fokusiraju na pisanje kvalitetnog koda, oni znaju da ono što isporučuju zapravo

10

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 sazrije-vanja.

1Analizirajte poslovne potrebe

Kompanija koja je pogodna za Kontinuiranu isporuku u svojoj osnovi nje-guje 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.

2lntrodukcija 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.

3napravite 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?

Page 11: Continuous Delivery - Softhouse · Continuous Delivery je metoda koja developerima omogućava da se fokusiraju na pisanje kvalitetnog koda, oni znaju da ono što isporučuju zapravo

11

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.

noviCe BAsiC MeDiuM MAture

Kod se svakodnevno isporučuje za integra-ciju.

Automatizi-rane dnevne isporuke potvrđenog kvaliteta.

Automatsko upravljanje izvornim i te-stnim kodom u više okruže-nja.

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

KoDtest

isPoruKArAZvoJ

Page 12: Continuous Delivery - Softhouse · Continuous Delivery je metoda koja developerima omogućava da se fokusiraju na pisanje kvalitetnog koda, oni znaju da ono što isporučuju zapravo

12

ZapOčETi sa COnTinuOus dEliVERY – 2

4Provesti mjere poboljšanja u skladu sa planom

Postepeno provoditi mjere poboljšanja u skladu sa planom, te kontinuira-no 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.

5skratite 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. De-veloperi, 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.

Page 13: Continuous Delivery - Softhouse · Continuous Delivery je metoda koja developerima omogućava da se fokusiraju na pisanje kvalitetnog koda, oni znaju da ono što isporučuju zapravo

13

Agilni manifest:

„mi pRaTimO sljEdEćE pRinCipE: naŠ najVEći pRiORiTET jEsTE ZadOVOljiTi KlijEnTa blaGOVREmEnOm i KOnTinuiRanOmispORuKOm VRijEdnOG sOfTVERa…“

Page 14: Continuous Delivery - Softhouse · Continuous Delivery je metoda koja developerima omogućava da se fokusiraju na pisanje kvalitetnog koda, oni znaju da ono što isporučuju zapravo

14

dRuGi način na KOji sE mOžE ObjasniTi COnTinuOus dEliVERYBatch Automobiles i Continuous Cars su dva takmičarska tima koja uče-stvuju u autoseriji Formula Agile series. Konkurencija je izuzetno jakate 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 automo-bile 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

DONE

Page 15: Continuous Delivery - Softhouse · Continuous Delivery je metoda koja developerima omogućava da se fokusiraju na pisanje kvalitetnog koda, oni znaju da ono što isporučuju zapravo

15

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 potreb-no 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.

DONE

DONE

Page 16: Continuous Delivery - Softhouse · Continuous Delivery je metoda koja developerima omogućava da se fokusiraju na pisanje kvalitetnog koda, oni znaju da ono što isporučuju zapravo

Continuous Delivery, CD, je metoda zasnovana na:• Individualnoj odgovornosti za kvalitet•Automatskom testiranju•Kratkim ciklusima s brzom i kontinuiranom povratnom informacijom.

Continuous Delivery (CD) – vas približava vašem klijentu

Ovi uvjeti donose mnoge prednosti za DEV tim u smislu veće produktivnosti, skra-ćenog čekanja, manje problema kompa-tibilnosti 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.

www.softhouse.se

softhouse Consulting

sarajevoTrg Solidarnosti 2A71 000 SarajevoPhone: +387 64 42 79 [email protected]

stockholmTegnérgatan 37SE-111 61 StockholmPhone: +46 8 410 929 [email protected]

GothenburgMagasinsgatan 18ASE-411 18 GöteborgPhone: +46 31 760 99 [email protected]

Malmö Stormgatan 14SE-211 20 MalmöPhone: +46 40 664 39 [email protected]

KarlskronaCampus Gräsvik 3A

SE-371 75 KarlskronaPhone: +46 455 61 87 00

[email protected]

växjöKungsgatan 1B

SE-352 30 VäxjöPhone: +46 455 61 87 [email protected]

HelsingborgBredgatan 19

SE-252 25 HelsingborgPhone: +46 702 17 60 02

[email protected]

www.softhouse.se