infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez...

38
SKOK NA NADERWANYM BUNGEE, CZYLI AGILE BEZ AUTOMATYZACJI Witold Bołt Team Leader [email protected] Barłomiej Zięba Software Architect [email protected]

Transcript of infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez...

Page 1: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

SKOK NA NADERWANYM BUNGEE, CZYLI AGILE BEZ AUTOMATYZACJI

Witold BołtTeam Leader

[email protected]

Barłomiej ZiębaSoftware Architect

[email protected]

Page 2: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

Wprowadzenie

Kilka słów o tym co większość z Was już wie?

Page 3: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

Wprowadzenie

Page 4: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

Wprowadzenie

Page 5: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

Wprowadzenie

Page 6: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

Wprowadzenie

Page 7: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

Wprowadzenie

Page 8: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

Wprowadzenie

Page 9: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

Wprowadzenie

Page 10: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.
Page 11: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

Wprowadzenie

Page 12: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

Wprowadzenie

Page 13: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

Przykład:Projekt „green field”

Kiedy zaczynasz od zera, możesz wszystko zrobić dobrze? Albo i nie...

Page 14: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

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: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

Środowisko wytwórcze

Page 16: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

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: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

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: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

Projekt „legacy”

Projekt bankowy rozwijany od latWiele starego kodu w różnych technologiachSporo nowego kodu Java EESkomplikowana struktura środowisk testowych

Page 19: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

Było

Page 20: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

Jest

Page 21: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

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: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

Wzorce i antywzorce automatyzacji

Kilka praktycznych porad...

Page 23: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

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: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

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: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

DO: Wersjonuj WSZYSTKO

Skrypt administracyjnePliki konfiguracyjneBaza danychDefinicja jobów CI, konfiguracja workflow

... WSZYSTKO co się da trafia do SCM!

Page 26: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

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: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

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: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

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: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

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: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

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: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

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: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

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: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

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: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

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: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

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: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

DO: ADD = Automation Driven Design

Projektuj z myślą o automatyzacjiWybieraj rozwiązania, które dają się automatyzować i wersjonować

Page 37: infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

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: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli Agile bez automatyzacji.

Dzięki!

Witold Boł[email protected]

Bartłomiej Zię[email protected]

Online:www.facebook.com/jitsolutions.gdynia

www.jitsolutions.pl