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:
- Data,
- DROP - co powinniśmy przestać robić,
- KEEP - co należy kontynuować,
- IMPROVE - co należy usprawnić,
- 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.