w poszukiwaniu procesu doskonałego. wdrożenie scruma, continuous integrations i code review w...
TRANSCRIPT
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
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”
SCRUMIteracyjna i przyrostowa metodyka
prowadzenia projektów, zaliczana
do metodyk zwinnych, zgodnych
z manifestem Agile
• 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
• 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
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
Gerrit
• Narzędzie do inspekcji kodu online w przeglądarce
• Darmowy
• Tworzony przez Google
• Integruje się z Gitem i Jenkinsem
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