kaip agile skatina gerųjų praktikų panaudojimą

Post on 12-Dec-2014

744 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Kaip Agile skatina gerųjų praktikų panaudojimą

Sergejus Barinovas (@sergejusb)

http://sergejus.blogas.lt

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

Sergejus Barinovas (@sergejusb)

http://sergejus.blogas.lt

Tai nėra teorinis pristatymas

Tai yra praktinis pristatymas apie mums iškilusias problemas

Šaltas dušas #1

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

* naujai Agile komandai

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!

Šaltas dušas #2

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

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

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)

pre-Agile laikai

Apie ką nepasakosiu

PROD

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

Naudotos praktikos

Visas kodas versijų kontrolės sistemoje SVN

Kodas kompiliuojamas specializuotame serveryje pagal paklausimą arba naktį TeamCity

Pavieniai modulio testai MSTest NUnit

Agile laikai

Sprintas #1, #2

Mes esame per lėti!

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

Diegimo spūstys vaizdžiai

Release Manager

Komanda (diegia)

Komandos (laukia eilės)

PROD

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

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.

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

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.

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

Agile++ laikai

Kas toliau?

Gyvenimo tiesa

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

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

Nuolatinis diegimas į pagalba!

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

Prieš pabaigą...

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

Apibendrinant...

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

Šaltas dušas #3

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

Gal verta nuo jų ir pradėti?

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

http://sergejus.blogas.lt

top related