Czworo ludzi wprowadza usprawnienia do cyklu sprintu oznaczonego symbolicznie strzałkami

Jak zespół Droptica stale usprawnia swoją pracę

Twój zespół programistyczny stale popełnia te same błędy, nie poprawia jakości swojej pracy. Znasz ten problem? Jeśli tak, to rozwiązanie jest bardzo proste - Sprint Retrospective. 

Co to jest Sprint Retrospective

To jedno ze spotkań w metodzie SCRUM. Narada odbywa się regularnie na koniec każdego sprintu. W naszej agencji drupalowej robimy zebranie raz na 2 tygodnie. Podczas spotkania zespół developerski analizuje poprzednie sprinty i zastanawia się, co można ulepszyć. Jak eliminować błędy, blokery, jak przyśpieszyć prace.

Co z tego ma klient?

Spotkanie trwa u nas najczęściej 15-60 minut. W Sprint Retrospective uczestniczy 3-6 osób, zależnie od wielkości zespołu na konkretnym projekcie. W innych firmach może to wyglądać inaczej. Łatwo obliczyć, że to spotkanie może kosztować klienta kilka roboczogodzin. Czy warto? 

Zdecydowanie tak! Podczas każdego zebrania zespół proponuje usprawnienia i ustala wprowadzenie kilku z nich od kolejnego sprintu. W wielu przypadkach te usprawnienia zmniejszają czas realizacji zadań. Spotkanie wprowadzające daną zmianę robimy raz, a ulepszenie jest stosowane stale w kolejnych sprintach. Po kilku czy kilkunastu sprintach mamy bardzo dużą oszczędność czasu i pieniędzy.

Jak robimy Sprint Retrospective w Droptica

Używamy do tego Google Docs - Spreadsheet. W dokumencie mamy 5 kolumn:

  1. Data,
  2. DROP - co powinniśmy przestać robić,
  3. KEEP - co należy kontynuować,
  4. IMPROVE - co należy usprawnić,
  5. ADD - co należy dodać.

Podczas spotkania każda osoba z zespołu programistów proponuje różne, potrzebne według niej usprawnienia: co usunąć, poprawić, dodać, itp. Gdy wszyscy już się wypowiedzą, zespół wybiera, co z propozycji wdrożyć od kolejnego sprintu. Staramy się wybierać 1-3 pozycje do wdrożenia, aby nie robić za dużych zmian. Ustalamy też osobę odpowiedzialną za wdrożenie konkretnej zmiany. 

Przykłady usprawnień związane z programowaniem i DevOps

Poniżej lista wybranych usprawnień zebranych z naszych kilku projektów. 

  • Częściej uruchamiamy testy automatyczne, aby szybciej wyłapywać błędy. Dzięki temu unikamy przykrych niespodzianek przed samym wdrożeniem.
  • Poprawimy szybkość budowania nowej wersji strony na serwerze testowym poprzez zmniejszenie bazy danych o około 90%.
  • Przed rozpoczęciem zadania, omawiamy nie tylko cele biznesowe. Dyskutujemy jak programistycznie zrealizować zadania, aby zachować spójność w całej aplikacji oraz wybierać rozwiązania optymalne dla projektu.
  • Code review powinien być zrobiony przez minimum dwie osoby.
  • Stosujemy git-flow, a każde zadanie robimy na osobnym branchu. Na tym branchu są robione testy oraz code review. Po tych czynnościach dopiero łączymy branch z głównym branchem developerskim. 

Przykłady usprawnień związane z organizacją pracy

  • Codzienna wysyłamy krótką informację do klienta (Product Ownera) na Slacku z podsumowaniem, co zrobiliśmy od wczoraj i co będziemy robić dzisiaj.
  • Zadania w Jira rozbijamy na mniejsze, tak, aby jedno zadanie trwało do 3-4 godzin. Możemy wtedy lepiej śledzić postęp prac i szybciej reagować na opóźnienia. 
  • Jeśli w trakcie sprintu okazuje się, że zadanie jest trudniejsze niż planowaliśmy, to zmieniamy Story Points dla zadania. 
  • Stale aktualizujemy dokumentację. Trzymamy się zasady, że jeżeli jakieś pytanie padnie minimum 2 razy, to powinno zostać dodane do dokumentacji. 
  • Komputer używany go rozmów wideo zawsze musi być podłączony do internetu kablem - zniknęła irytacja z powodu zacinających się wideo rozmów.
  • W wielu projektach usunęliśmy też z DoD wdrożenie - najczęściej te wdrożenia są raz na 2 tyg/miesiąc lub w ogóle po stronie klienta, a jak mamy sprint tygodniowy to taka rzecz nie powinna nas blokować przed zamknięciem zadania.
  • Planowanie z uwzględnieniem supportu - na podstawie poprzednich sprinów wiemy ile orientacyjnie czasu poświęcamy na rzeczy, których nie da się zaplanować (np. klient dodaje jakieś hotfixy).

Narzędzia do Sprint Retrospective

Najczęściej używamy w Droptica do Sprint Retrospective arkusza kalkulacyjnego, jednak ostatnio coraz częściej korzystamy z zewnętrznej aplikacji FunRetro (FunRetro | Improve your team with fun sprint retrospectives). Aplikacja ta pozwala na usprawnienie spotkania. Posiada darmową wersję, dlatego tym bardziej zachęcamy do skorzystania.

Podsumowanie

W Droptica Scrum Retrospective daje widoczne efekty. Bardzo polecam wszystkim zespołom takie obiektywne spojrzenie wstecz, nawet jeśli nie stosują SCRUMa do prowadzenia projektu. Wystarczy zaplanować w kalendarzu raz na 2 tygodnie 1-2h na spotkanie i omówić, co można usprawnić. W skali kilku czy kilkunastu tygodni daje to naprawdę bardzo duże efekty. 
 

3. Najlepsze praktyki zespołów programistycznych