kaip agile skatina gerųjų praktikų panaudojimą
DESCRIPTION
...arba kodėl Agile neįmanomas be gerųjų praktikų panaudojimo ir kaip mes buvom priversti jas naudotiTRANSCRIPT
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