infoshare 2014: skok na naderwanym bungee, czyli agile bez automatyzacji
DESCRIPTION
Prezentacja z wykładu prowadzonego przez Witka Boła i Bartka Ziębę o automatyzacji procesów wytwórczych w zespołach softwareowych. Prezentacja odbyła się w ramach konferencji InfoShare 2014, 22.05.2014 w Gdańsku.TRANSCRIPT
![Page 1: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/html5/thumbnails/1.jpg)
SKOK NA NADERWANYM BUNGEE, CZYLI AGILE BEZ AUTOMATYZACJI
Witold BołtTeam Leader
Barłomiej ZiębaSoftware Architect
![Page 2: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/html5/thumbnails/2.jpg)
Wprowadzenie
Kilka słów o tym co większość z Was już wie?
![Page 3: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/html5/thumbnails/3.jpg)
Wprowadzenie
![Page 4: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/html5/thumbnails/4.jpg)
Wprowadzenie
![Page 5: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/html5/thumbnails/5.jpg)
Wprowadzenie
![Page 6: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/html5/thumbnails/6.jpg)
Wprowadzenie
![Page 7: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/html5/thumbnails/7.jpg)
Wprowadzenie
![Page 8: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/html5/thumbnails/8.jpg)
Wprowadzenie
![Page 9: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/html5/thumbnails/9.jpg)
Wprowadzenie
![Page 10: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/html5/thumbnails/10.jpg)
![Page 11: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/html5/thumbnails/11.jpg)
Wprowadzenie
![Page 12: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/html5/thumbnails/12.jpg)
Wprowadzenie
![Page 13: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/html5/thumbnails/13.jpg)
Przykład:Projekt „green field”
Kiedy zaczynasz od zera, możesz wszystko zrobić dobrze? Albo i nie...
![Page 14: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/html5/thumbnails/15.jpg)
Środowisko wytwórcze
![Page 16: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/html5/thumbnails/19.jpg)
Było
![Page 20: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/html5/thumbnails/20.jpg)
Jest
![Page 21: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/html5/thumbnails/22.jpg)
Wzorce i antywzorce automatyzacji
Kilka praktycznych porad...
![Page 23: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/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: InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji](https://reader037.vdocuments.mx/reader037/viewer/2022110302/546f9206af79595b488b45b0/html5/thumbnails/38.jpg)
Dzięki!
Witold Boł[email protected]
Bartłomiej Zię[email protected]
Online:www.facebook.com/jitsolutions.gdynia
www.jitsolutions.pl