ݺߣ

ݺߣShare a Scribd company logo
Kaip Agile skatina gerųjų praktikų panaudojimąSergejus Barinovas (@sergejusb)http://sergejus.blogas.lt
Kodėl Agile neįmanomas be gerųjų praktikų panaudojimoSergejus Barinovas (@sergejusb)http://sergejus.blogas.lt
Tai nėrateorinis pristatymas
Tai yra praktinis pristatymas apie mums iškilusias problemas
Šaltas dušas #12 savaičių sprinte kūrimo darbai sudaro tik 5 dienas** naujai Agile komandai
Scrum aritmetika2 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 #2Be 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 praktikosNaktinis surinkimas (nightlybuild)Nuolatinė integracija (continuousintegration)Modulių testai (unittests)Automatizuotas diegimasAutomatizuoti funkciniai ir UI testaiDiegimo paketaiNuolatinis diegimas (continuousdeployment)
pre-Agile laikai
Apie ką nepasakosiuPROD
Prieš 1,5 metų naudojome tik paprasčiausias praktikas
Naudotos praktikosVisas kodas versijų kontrolės sistemojeSVNKodas kompiliuojamas specializuotame serveryje pagal paklausimą arba naktįTeamCityPavieniai modulio testaiMSTestNUnit
Agile laikai
Sprintas #1, #2Mes esame per lėti!
Išryškėjo mūsų problemosLaiko rijikaiPastovus rankinis diegimasPilnai rankinis testavimasIntegracijos atidedamos į pabaigąKodo baimėMažas kodo pakeitimas reikalauja pilno testavimo (regresijos tikrinimas)Diegimo spūstysNuo 9 val. vakaro gyva eilė diegimui1-2 komandos atstovų asmeninis dalyvavimas
Diegimo spūstys vaizdžiaiKomanda (diegia)ReleaseManagerPRODKomandos (laukia eilės)
Kova su laiko rijikaisIntegracijos atidedamos į pabaigąNuolatinis surinkimas Commit metuIntegraciniai testaiPastovus rankinis diegimasAutomatinis diegimas į DEV aplinkas (3 iš viso) iš TeamCity serverioPilnai rankinis testavimasModulių ir integraciniai testaiFunkciniai ir UI testai (dar neturime daug)SoapUISelenium
Kova su kodo baimeMažas kodo pakeitimas reikalauja pilno testavimo (regresijos tikrinimas)Modulių testaiGeriausia turėti žmogų su patirtimiGali pareikalauti kodo pertvarkymoVerslo logika atskirti nuo saugyklosPirma kaip atskira užduotis, paskui privalomaiIntegraciniai testaiSąveika su duomenų baze, Web servisu ir pan.
Kova su diegimo spūstimisDiegimo paketaiMSBuildskriptaiVieno paspaudimo principasVisoms aplinkoms (3 DEV, INT, PrePROD, PROD)Paruošimas užtrunka tik pradžiojePagaminami pilnai arba dalinai automatiškai (surinkimo metu TeamCity serveryje)Jokio asmeninio komandų dalyvavimo diegimo metuCentralizuotas diegimo paketų paleidimas keliuose serveriuosePowerShellskriptai
Ištrauka iš laiško po diegimoPaketai 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 niceday,Laisvis.
Įgyvendintos praktikos sutaupo 1-2kūrimo dienas per sprintą
Agile++ laikai
Kas toliau?
Gyvenimo tiesaPanaikinus didesnę problemą, išryškėja mažesnė
Išryškėjo naujos problemos3 DEV ir INT aplinkos skiriasi nuo PRODKartais aplinkos „sugadinamos“ ir atstatymas užima kelias valandasNauji serveriai nėra lengvai pakeliami
Nuolatinis diegimas į pagalba!
Nuolatinis diegimasGalimybė automatiškai pakelti naują serverįVirtualios mašinos sukūrimasInfrastruktūros konfigūravimasTrečios šalies produktų diegimasMūsų sistemos diegimasGalimybė vykdyti nuolatinį automatinį viso serverio testavimąGalimybė daryti diegimus apkeičiant serveriusPakė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 #3Agile 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

More Related Content

Kaip Agile skatina gerųjų praktikų panaudojimą

  • 1. Kaip Agile skatina gerųjų praktikų panaudojimąSergejus Barinovas (@sergejusb)http://sergejus.blogas.lt
  • 2. Kodėl Agile neįmanomas be gerųjų praktikų panaudojimoSergejus Barinovas (@sergejusb)http://sergejus.blogas.lt
  • 4. Tai yra praktinis pristatymas apie mums iškilusias problemas
  • 5. Šaltas dušas #12 savaičių sprinte kūrimo darbai sudaro tik 5 dienas** naujai Agile komandai
  • 6. Scrum aritmetika2 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!
  • 7. Šaltas dušas #2Be tinkamo technologinio pasiruošimo naujos Agile komandos nespėja laiku
  • 8. Šis pristatymas apie tai kaip mes bandome didinti kūrimui skirtas dienas iki 7+ (~30%)
  • 9. Gerosios programavimo praktikosNaktinis surinkimas (nightlybuild)Nuolatinė integracija (continuousintegration)Modulių testai (unittests)Automatizuotas diegimasAutomatizuoti funkciniai ir UI testaiDiegimo paketaiNuolatinis diegimas (continuousdeployment)
  • 12. Prieš 1,5 metų naudojome tik paprasčiausias praktikas
  • 13. Naudotos praktikosVisas kodas versijų kontrolės sistemojeSVNKodas kompiliuojamas specializuotame serveryje pagal paklausimą arba naktįTeamCityPavieniai modulio testaiMSTestNUnit
  • 15. Sprintas #1, #2Mes esame per lėti!
  • 16. Išryškėjo mūsų problemosLaiko rijikaiPastovus rankinis diegimasPilnai rankinis testavimasIntegracijos atidedamos į pabaigąKodo baimėMažas kodo pakeitimas reikalauja pilno testavimo (regresijos tikrinimas)Diegimo spūstysNuo 9 val. vakaro gyva eilė diegimui1-2 komandos atstovų asmeninis dalyvavimas
  • 17. Diegimo spūstys vaizdžiaiKomanda (diegia)ReleaseManagerPRODKomandos (laukia eilės)
  • 18. Kova su laiko rijikaisIntegracijos atidedamos į pabaigąNuolatinis surinkimas Commit metuIntegraciniai testaiPastovus rankinis diegimasAutomatinis diegimas į DEV aplinkas (3 iš viso) iš TeamCity serverioPilnai rankinis testavimasModulių ir integraciniai testaiFunkciniai ir UI testai (dar neturime daug)SoapUISelenium
  • 19. Kova su kodo baimeMažas kodo pakeitimas reikalauja pilno testavimo (regresijos tikrinimas)Modulių testaiGeriausia turėti žmogų su patirtimiGali pareikalauti kodo pertvarkymoVerslo logika atskirti nuo saugyklosPirma kaip atskira užduotis, paskui privalomaiIntegraciniai testaiSąveika su duomenų baze, Web servisu ir pan.
  • 20. Kova su diegimo spūstimisDiegimo paketaiMSBuildskriptaiVieno paspaudimo principasVisoms aplinkoms (3 DEV, INT, PrePROD, PROD)Paruošimas užtrunka tik pradžiojePagaminami pilnai arba dalinai automatiškai (surinkimo metu TeamCity serveryje)Jokio asmeninio komandų dalyvavimo diegimo metuCentralizuotas diegimo paketų paleidimas keliuose serveriuosePowerShellskriptai
  • 21. Ištrauka iš laiško po diegimoPaketai 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 niceday,Laisvis.
  • 22. Įgyvendintos praktikos sutaupo 1-2kūrimo dienas per sprintą
  • 25. Gyvenimo tiesaPanaikinus didesnę problemą, išryškėja mažesnė
  • 26. Išryškėjo naujos problemos3 DEV ir INT aplinkos skiriasi nuo PRODKartais aplinkos „sugadinamos“ ir atstatymas užima kelias valandasNauji serveriai nėra lengvai pakeliami
  • 28. Nuolatinis diegimasGalimybė automatiškai pakelti naują serverįVirtualios mašinos sukūrimasInfrastruktūros konfigūravimasTrečios šalies produktų diegimasMūsų sistemos diegimasGalimybė vykdyti nuolatinį automatinį viso serverio testavimąGalimybė daryti diegimus apkeičiant serveriusPakėlimo skriptai tampa dokumentacija
  • 29. Prieš pabaigą...... automatinis serverio sukūrimas ir konfigūravimas
  • 31. Gerąsias praktikas pradėjome taikyti ne todėl, kad tai „jėga“, tiesiog nenorėjome būti lėti
  • 32. Šaltas dušas #3Agile kultūra komandose prigyja greičiau nei gerosios praktikos!Gal verta nuo jų ir pradėti?
  • 33. Ačiū! Klausimai?Sergejus Barinovas (@sergejusb)http://sergejus.blogas.lt