kaip agile skatina gerųjų praktikų panaudojimą

33
Kaip Agile skatina gerųjų praktikų panaudojimą Sergejus Barinovas (@sergejusb) http://sergejus.blogas.lt

Upload: sergejus-barinovas

Post on 12-Dec-2014

744 views

Category:

Technology


0 download

DESCRIPTION

...arba kodėl Agile neįmanomas be gerųjų praktikų panaudojimo ir kaip mes buvom priversti jas naudoti

TRANSCRIPT

Page 1: Kaip Agile skatina gerųjų praktikų panaudojimą

Kaip Agile skatina gerųjų praktikų panaudojimą

Sergejus Barinovas (@sergejusb)

http://sergejus.blogas.lt

Page 2: Kaip Agile skatina gerųjų praktikų panaudojimą

Kodėl Agile neįmanomas be gerųjų praktikų panaudojimo

Sergejus Barinovas (@sergejusb)

http://sergejus.blogas.lt

Page 3: Kaip Agile skatina gerųjų praktikų panaudojimą

Tai nėra teorinis pristatymas

Page 4: Kaip Agile skatina gerųjų praktikų panaudojimą

Tai yra praktinis pristatymas apie mums iškilusias problemas

Page 5: Kaip Agile skatina gerųjų praktikų panaudojimą

Šaltas dušas #1

2 savaičių sprinte kūrimo darbai sudaro tik 5 dienas*

* naujai Agile komandai

Page 6: Kaip Agile skatina gerųjų praktikų panaudojimą

Scrum aritmetika

2 savaitės = 10 darbo dienų - 20% (2 dienos) Scrum ritualams - 1,5 dienos integracijai ir rankiniam diegimui - 1,5 dienos rankiniam testavimui = 5 darbo dienos!

Page 7: Kaip Agile skatina gerųjų praktikų panaudojimą

Šaltas dušas #2

Be tinkamo technologinio pasiruošimo naujos Agile komandos nespėja laiku

Page 8: Kaip Agile skatina gerųjų praktikų panaudojimą

Šis pristatymas apie tai kaip mes bandome didinti kūrimui skirtas dienas iki 7+ (~30%)

Page 9: Kaip Agile skatina gerųjų praktikų panaudojimą

Gerosios programavimo praktikos

Naktinis surinkimas (nightly build)

Nuolatinė integracija (continuous integration)

Modulių testai (unit tests)

Automatizuotas diegimas Automatizuoti funkciniai ir UI testai Diegimo paketai Nuolatinis diegimas (continuous deployment)

Page 10: Kaip Agile skatina gerųjų praktikų panaudojimą

pre-Agile laikai

Page 11: Kaip Agile skatina gerųjų praktikų panaudojimą

Apie ką nepasakosiu

PROD

Page 12: Kaip Agile skatina gerųjų praktikų panaudojimą

Prieš 1,5 metų naudojome tik paprasčiausias praktikas

Page 13: Kaip Agile skatina gerųjų praktikų panaudojimą

Naudotos praktikos

Visas kodas versijų kontrolės sistemoje SVN

Kodas kompiliuojamas specializuotame serveryje pagal paklausimą arba naktį TeamCity

Pavieniai modulio testai MSTest NUnit

Page 14: Kaip Agile skatina gerųjų praktikų panaudojimą

Agile laikai

Page 15: Kaip Agile skatina gerųjų praktikų panaudojimą

Sprintas #1, #2

Mes esame per lėti!

Page 16: Kaip Agile skatina gerųjų praktikų panaudojimą

Išryškėjo mūsų problemos

Laiko rijikai Pastovus rankinis diegimas Pilnai rankinis testavimas Integracijos atidedamos į pabaigą

Kodo baimė Mažas kodo pakeitimas reikalauja pilno testavimo

(regresijos tikrinimas)

Diegimo spūstys Nuo 9 val. vakaro gyva eilė diegimui 1-2 komandos atstovų asmeninis dalyvavimas

Page 17: Kaip Agile skatina gerųjų praktikų panaudojimą

Diegimo spūstys vaizdžiai

Release Manager

Komanda (diegia)

Komandos (laukia eilės)

PROD

Page 18: Kaip Agile skatina gerųjų praktikų panaudojimą

Kova su laiko rijikais

Integracijos atidedamos į pabaigą Nuolatinis surinkimas Commit metu Integraciniai testai

Pastovus rankinis diegimas Automatinis diegimas į DEV aplinkas (3 iš viso) iš

TeamCity serverio

Pilnai rankinis testavimas Modulių ir integraciniai testai Funkciniai ir UI testai (dar neturime daug)

SoapUI Selenium

Page 19: Kaip Agile skatina gerųjų praktikų panaudojimą

Kova su kodo baime

Mažas kodo pakeitimas reikalauja pilno testavimo (regresijos tikrinimas) Modulių testai

Geriausia turėti žmogų su patirtimi Gali pareikalauti kodo pertvarkymo Verslo logika atskirti nuo saugyklos Pirma kaip atskira užduotis, paskui privalomai

Integraciniai testai Sąveika su duomenų baze, Web servisu ir pan.

Page 20: Kaip Agile skatina gerųjų praktikų panaudojimą

Kova su diegimo spūstimis

Diegimo paketai MSBuild skriptai Vieno paspaudimo principas Visoms aplinkoms (3 DEV, INT, PrePROD, PROD) Paruošimas užtrunka tik pradžioje Pagaminami pilnai arba dalinai automatiškai

(surinkimo metu TeamCity serveryje) Jokio asmeninio komandų dalyvavimo diegimo metu

Centralizuotas diegimo paketų paleidimas keliuose serveriuose PowerShell skriptai

Page 21: Kaip Agile skatina gerųjų praktikų panaudojimą

Ištrauka iš laiško po diegimo

Paketai prasisuko be klaidų – jei kokio nors funkcionalumo nėra ar kas nors veikia nekorektiškai – duokit žinoti.

 

Beje, šį penktadienį buvo sudiegta 13 releasų į 4 aplinkas – tai reiškia, kad 52 releasai per dieną ... Tai kada mus pasivys Googlas ar Facebookas su savo 10 releasų per dieną ... 

Have a nice day,

Laisvis.

Page 22: Kaip Agile skatina gerųjų praktikų panaudojimą

Įgyvendintos praktikos sutaupo 1-2 kūrimo dienas per sprintą

Page 23: Kaip Agile skatina gerųjų praktikų panaudojimą

Agile++ laikai

Page 24: Kaip Agile skatina gerųjų praktikų panaudojimą

Kas toliau?

Page 25: Kaip Agile skatina gerųjų praktikų panaudojimą

Gyvenimo tiesa

Panaikinus didesnę problemą, išryškėja mažesnė

Page 26: Kaip Agile skatina gerųjų praktikų panaudojimą

Išryškėjo naujos problemos

3 DEV ir INT aplinkos skiriasi nuo PROD Kartais aplinkos „sugadinamos“ ir atstatymas

užima kelias valandas Nauji serveriai nėra lengvai pakeliami

Page 27: Kaip Agile skatina gerųjų praktikų panaudojimą

Nuolatinis diegimas į pagalba!

Page 28: Kaip Agile skatina gerųjų praktikų panaudojimą

Nuolatinis diegimas

Galimybė automatiškai pakelti naują serverį Virtualios mašinos sukūrimas Infrastruktūros konfigūravimas Trečios šalies produktų diegimas Mūsų sistemos diegimas

Galimybė vykdyti nuolatinį automatinį viso serverio testavimą

Galimybė daryti diegimus apkeičiant serverius Pakėlimo skriptai tampa dokumentacija

Page 29: Kaip Agile skatina gerųjų praktikų panaudojimą

Prieš pabaigą...

... automatinis serverio sukūrimas ir konfigūravimas

Page 30: Kaip Agile skatina gerųjų praktikų panaudojimą

Apibendrinant...

Page 31: Kaip Agile skatina gerųjų praktikų panaudojimą

Gerąsias praktikas pradėjome taikyti ne todėl, kad tai „jėga“, tiesiog nenorėjome būti lėti

Page 32: Kaip Agile skatina gerųjų praktikų panaudojimą

Šaltas dušas #3

Agile kultūra komandose prigyja greičiau nei gerosios praktikos!

Gal verta nuo jų ir pradėti?

Page 33: Kaip Agile skatina gerųjų praktikų panaudojimą

Ačiū! Klausimai?Sergejus Barinovas (@sergejusb)

http://sergejus.blogas.lt