skok na naderwanym bungee, czyli agile bez automatyzacji
DESCRIPTION
Slajdy z prezentacji przeprowadzonej w ramach konferencji InfoShare 2014, 22 maja 2014 r. w Gdańsku. Prowadzący prezentacje: Witold Bołt i Bartłomiej Zięba.TRANSCRIPT
![Page 1: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/1.jpg)
SKOK NA NADERWANYM BUNGEE, CZYLI AGILE BEZ AUTOMATYZACJI
Witold BołtTeam Leader
Barłomiej ZiębaSoftware Architect
![Page 2: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/2.jpg)
Wprowadzenie
Kilka słów o tym co większość z Was już wie?
![Page 3: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/3.jpg)
Wprowadzenie
![Page 4: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/4.jpg)
Wprowadzenie
![Page 5: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/5.jpg)
Wprowadzenie
![Page 6: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/6.jpg)
Wprowadzenie
![Page 7: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/7.jpg)
Wprowadzenie
![Page 8: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/8.jpg)
Wprowadzenie
![Page 9: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/9.jpg)
Wprowadzenie
![Page 10: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/10.jpg)
![Page 11: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/11.jpg)
Wprowadzenie
![Page 12: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/12.jpg)
Wprowadzenie
![Page 13: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/13.jpg)
Przykład:Projekt „green field”
Kiedy zaczynasz od zera, możesz wszystko zrobić dobrze? Albo i nie...
![Page 14: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/14.jpg)
Green-field project
Aplikacja biznesowe do generowania dokumentówTechnology stack: Java EE, JSF, Hibernate, MS SQLMały zespół: 2 x developer + 1 x testerSCRUM, 1 tygodniowe sprinty – łączenie 5 sprintówok. 60 MD pracy, 7500 LOC + 7500 LOC testów455 CI builds
![Page 15: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/15.jpg)
Środowisko wytwórcze
![Page 16: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/16.jpg)
Wyzwania i problemy
Klient zewnętrzny ma dostęp „read” do wszystkiegoKonfiguracja środowiska jednym z dostarczanych produktów
Integracja z systemami klienta: 2 x consume, 1 x provideNiestabilna infrastruktura linii – zmieniliśmy datacenter w trakcieNiestabilne testy Selenium WebdriverMS SQL 2012
![Page 17: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/17.jpg)
Przykład:Projekt typu „legacy”
Co zrobić gdy stoi za nami kupa ... wcześniejszych doświadczeń, sukcesów,
słusznych decyzji, trafnych wyborów i nie tylko?
![Page 18: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/18.jpg)
Projekt „legacy”
Projekt bankowy rozwijany od latWiele starego kodu w różnych technologiachSporo nowego kodu Java EESkomplikowana struktura środowisk testowych
![Page 19: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/19.jpg)
Było
![Page 20: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/20.jpg)
Jest
![Page 21: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/21.jpg)
Jest
Niestabilna infrastruktura środowisk integration, QA i preliveBlokada organizacyjna na poziomie release„One repo to rule them all” -> code split, repo split , nexus!Wiele elementów systemu (kontenery aplikacji, ESB itp.)Wsparcie w zespole wewnętrznym, warsztatyGitflow, relalizowany na (i przez) Jenkinsie2 poziomy reguł SonaraDokumentacja z kodu, info dla monitoringu – na wiki
![Page 22: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/22.jpg)
Wzorce i antywzorce automatyzacji
Kilka praktycznych porad...
![Page 23: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/23.jpg)
DO NOT: Niestabilne środowisko / testy
Słaby sprzęt / infrastruktura?Niska wydajność i dostępność?Częste faile testów z powodów „losowych”?
Środowisko CI to system produkcyjny!
![Page 24: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/24.jpg)
DO: Jenkins per projekt
Wiele projektów? Systemów? Zespołów?Wiele środowisk CI!Wydajność, stabilność, pewność...Skomplikowane zarządzanie? Zautomatyzuj to!
![Page 25: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/25.jpg)
DO: Wersjonuj WSZYSTKO
Skrypt administracyjnePliki konfiguracyjneBaza danychDefinicja jobów CI, konfiguracja workflow
... WSZYSTKO co się da trafia do SCM!
![Page 26: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/26.jpg)
DO NOT: Sonar overkill
Cel: zero naruszeń w Sonarze?Kary dla programistów, którzy naruszają reguły?Blokowanie commitów?Sztywne granice odnośnie code coverage, rules complience, itd.?NIE!
![Page 27: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/27.jpg)
DO: Power to the people!
Oddzielny dział/zespół rządzący środowiskiem CI?Specjalne pozwolenie na wykonanie builda?Wniosek o odświeżenie środowiska?
Programiści i testerzy rządzą!
![Page 28: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/28.jpg)
DO NOT: Zmieniamy wszystko na raz!
Stan obecny – wszystko robimy ręcznie?Co chcemy osiągnąć w jednym kroku? Wszystko automatycznie!
NIE!Małe kroki, walidacja, mierzymy korzyści!
![Page 29: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/29.jpg)
DO NOT: „za wcześnie na automatyzację”
„Póki co nie ma czego testować... Pomyślimy o testach później!”„Automatyczny deployment teraz to strata czasu – jak będą testy UAT to zrobimy.” NIE! Zacznij tak szybko jak to możliwe.
![Page 30: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/30.jpg)
DO: Hello World!
Testuj infrastrukturę CI!Mini-projekt „hello world” – czy przechodzi poprawnie cały proces?Czy każdy rozumie proces?Czy każdy otrzymuje odpowiedni feedback?
![Page 31: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/31.jpg)
DO NOT: te testy zawsze failują - spoko
„Spoko, te 6 testów zawsze failuje...”„Nie ma problemu – te testy nie działają bo baza nie ma danych...”Akceptacja dla błędów to źródło wielkiego zła!Co zrobić? Wywal popsute testy albo je napraw!
![Page 32: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/32.jpg)
DO: Chodzi o informacje!
Propaguj informacje!Lampy, odgłosy, ekrany, maile, SMS, IM, spotkania poranne... cokolwiek co działa dla Ciebie.
Informacja, z której nikt nie korzysta jest bezużyteczna!
![Page 33: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/33.jpg)
DO: Szybki feedback negatywny
Build & package
Unit tests
Integration tests
Deploy
Automated functional tests
Dziel duże joby na kawałkiW pierwszej kolejności uruchamiaj:
To co działa szybkoTo co ma dużą szansę się wywalić
Zespół powinien szybko wiedzieć, że jest źle – o ile jest ;)
![Page 34: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/34.jpg)
DO NOT: ręczne poprawki po automatach
Build się nie udał?! Spokojnie – umiem to naprawić... ssh, cp, rm, vim, deploy.sh, DONE!
Zamiast ręcznie poprawić popsuty build – popraw automat!
![Page 35: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/35.jpg)
DO: Refactoring linii produkcyjnej
Czy wszystkie narzędzia, które mamy są nam potrzebne?
Czy osiągamy korzyści z naszych procesów?
Czy wszystko jest poprawnie zintegrowane?
Czy coś można zrównoleglić?
Czy coś jeszcze można automatyzować?
![Page 36: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/36.jpg)
DO: ADD = Automation Driven Design
Projektuj z myślą o automatyzacjiWybieraj rozwiązania, które dają się automatyzować i wersjonować
![Page 37: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/37.jpg)
DO: Rozwijaj się w kierunku automatyzacji
Warto się rozwijać w obszarze automatyzacji procesów!Warto inwestować w automatyzację!
Do dzieła!
![Page 38: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022103018/55935d171a28ab59648b461a/html5/thumbnails/38.jpg)
Dzięki!
Witold Boł[email protected]
Bartłomiej Zię[email protected]
Online:www.facebook.com/jitsolutions.gdynia
www.jitsolutions.pl