W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations i Code Review w...

30
W POSZUKIWANIU PROCESU DOSKONAŁEGO Wdrożenie Scruma , Continuous Integrations i Code Review w praktyce

Transcript of W poszukiwaniu procesu doskonałego. Wdrożenie Scruma, Continuous Integrations i Code Review w...

W POSZUKIWANIU PROCESU DOSKONAŁEGOWdrożen ie Scruma , Cont inuous In tegra t ions i Code Rev iew w prak tyce

Czym się zajmuję?

• Marcin Waligórski

• Android Developer

• FAMOC - system MDM

• Android, iOS, Windows Phone

DLACZEGO ROZPOCZĘLIŚMY POSZUKIWANIA?

PROBLEMY• Duży narzut na testy przed wydaniem wersji

• Brak specyfikacji, wymagań, kryteriów akceptacji

• Nie do końca spełnione oczekiwania klientów

• Duży koszt utrzymania starszych fragmentów kodu,

brak testów

• Długi czas wydania poprawki dla aplikacji mobilnej

• “Wrzutki”

DROGA DO CELU

SCRUMIteracyjna i przyrostowa metodyka

prowadzenia projektów, zaliczana

do metodyk zwinnych, zgodnych

z manifestem Agile

SCRUM…BUT…

• Daily

• Product i sprint backlog

• Iteracyjne przyrosty - sprinty

• Spotkania: demo, retrospektywa, grooming, planing

• Planing poker, story points, definition of done

• Tablice, karteczki, wykres burndown

• Role: Product Owner, Scrum Master, Zespół

PEŁNY SCRUM

ZESPÓŁ SZYBKIEGO

REAGOWANIA

ZESPÓŁ SZYBKIEGO REAGOWANIA

• Szybka reakcja na krytyczne bugi

• Zajmowanie się wrzutkami, wydawaniem wersji

• Wdrażanie nowych technologii i rozwiązań

• Codzienne daily

• Tablica z aktualnymi zadaniami i priorytetami

• Brak sprintów i spotkań scrumowych

Co zyskaliśmy?• lepiej opisane zadania i

zdefiniowane cele

• brak “przeskakiwania” między

zadaniami

• testy od razu po

developmencie

• szybki feedback i bug fixing

• wzrost ogólnej jakości

produktu

• Częstsze wydania

CONTINUOUS INTEGRATION

Praktyka stosowana w trakcie rozwoju

oprogramowania, polegająca na

częstym, regularnym włączaniu

(integracji) bieżących zmian w kodzie do

głównego repozytorium

Git + Maven + Jenkins

Git + Maven

• GIT

• gitflow

• MAVEN

• zarządzanie zależnościami, biblioteki

• proces budowania

Maven

• parametryzacja procesu

budowania

• różne podpisy

• różne platformy

• różne nazwy pakietów

• NuGet dla Windows Phone

• CocoaPods dla iOS

Jenkins

• Budowanie wersji przy każdym commicie

• Budowanie konkretnych gałęzi

• Dostępne kilka wersji (podpisy, package name,

platforma) per build

• Źródło wersji do testów i wydawania

• Dodatkowe metryki (np. Lint, pokrycie kodu)

CO ZYSKALIŚMY?• Zautomatyzowany i

konfigurowalny proces budowania

aplikacji

• Szybka informacja zwrotna o

statusie

• Zawsze działający kod w

repozytorium

• Łatwy dostęp do wersji testowych

czy kandydatów do wydania

• Stały wgląd do metryk

CODE REVIEW

Gerrit

• Narzędzie do inspekcji kodu online w przeglądarce

• Darmowy

• Tworzony przez Google

• Integruje się z Gitem i Jenkinsem

Do czego używamy code review?

• Część mobilna

• Przypadki testowe

• Tłumaczenia

• Część serwerowa

CO ZYSKALIŚMY?

• Podział i wymiana wiedzy w

zespole

• Zwiększona jakość aplikacji

• Czytelniejszy, łatwiejszy do

utrzymania kod

• Wcześniejsze wyłapywanie

potencjalnych błędów

• Wprowadzanie standardów

kodowania

WYKRESIKI?

51% 49% 62% 53% 43% 22% 25%

FAMOC 3.12 FAMOC 3.18

% OF BUGS IN ISSUES

• Testy automatyczne, testy integracyjne

• Unit Testy

DZIĘKI