W latach 60 i 70 ubiegłego wieku programiści musieli czekać nawet i 24 godziny na to, aby dowiedzieć się, czy ich program nie zawiera błędów. Wystąpienie błędu oznaczało, że trzeba było ten błąd znaleźć, naprawić i czekać kolejne 24 godziny na wynik.
A teraz wyobraź sobie, że wciskasz pedał hamulca w swoim samochodzie, a pojazd reaguje 30 minut później. Albo co by było, gdybyś wcisnął przycisk w aplikacji, a aplikacja reagowała by dopiero po 30 sekundach?
Obecnie, gdy czas wprowadzania produktu na rynek jest kluczowy, zbyt późno otrzymana informacja zwrotna może rozłożyć misternie budowany proces developmentu na łopatki. Zarówno od strony technicznej, jak i biznesowej.
Pętla zwrotna
Pętla informacji zwrotnej to podstawowy sposób uczenia się. W przypadku produktów, które mają dużo niewiadomych (biznesowych, technologicznych) pozwala zdobywać nowe informacje na bazie realnego doświadczenia.
Zastanów się chwilę jak to działa u Ciebie w firmie / projekcie / zespole. Ile czasu trwają Wasze pętle informacji zwrotnej (feedback loop)?
Jak to wygląda w przypadku:
- code-review – Po jakim czasie programista dostaje informację zwrotną odnośnie jakości swojego kodu?
- błędów w aplikacji – Po jakim czasie od zakończenia developmentu znajdowane są pierwsze usterki?
- definiowania wymagań dla produktu – Jak szybko odkrywacie czego potrzebuje użytkownik i czy to co zbudowaliście mu odpowiada?
- regresji – Jak dużym problemem u Ciebie w projekcie są błędy regresji?
Zobaczmy na kilku przykładach jaki wpływ na szybkość pętli zwrotnej ma sposób pracy w zespole.
Code-review
Czyli wzajemna inspekcja kodu w zespole developerskim.
Błędy w aplikacji
Czyli dbanie o jakość aplikacji.
Praca z wymaganiami
Czyli tworzenie produktów potrzebnych użytkowników/klientowi.
Jak przyspieszyć pętlę zwrotną?
Proces tworzenia technologicznych produktów, można stale usprawniać właśnie pod kątem szybkości pętli zwrotnej. Warto czerpać z agile’owych metod realizacji projektów i produktów, bo u ich podstaw leży właśnie uczenie się za pomocą szybkiej pętli zwrotnej.
Oto kilka technik, które mogą w przyspieszaniu feedbacku pomóc. Użyj ich u siebie w zespole i sprawdź, czy faktycznie przynoszą korzyść w postaci krótszej pętli feedbacku:
Pair programming – wspólne tworzenie kodu przez 2 developerów. Dzięki temu natychmiast mogą pomagać sobie, robić inspekcje kodu i rozwiązywać problemy.
Unit tests (testy jednostkowe) – tworzenie testów weryfikujących poprawność działania pojedynczych elementów programu. Wymaga dodatkowej pracy, ale pozwala natychmiast wykrywać wiele błędów aplikacji.
QA wewnątrz zespołu – przeniesienie odpowiedzialności za jakość i testowanie na zespół rozwijający produkt. Często objawia się włączeniem specjalisty QA do zespołu.
Krótkie iteracje – dostarczanie działającego oprogramowania i produktu dla użytkowników w krótkich iteracjach
Continuous integration – częsta i regularna integracja bieżących zmian w kodzie do głównego repozytorium produktu, skutkująca każdorazową weryfikacją zmian, sprawdzeniem testów automatycznych i “zbudowaniem” aplikacji
Retrospektywy – częsta weryfikacja sposobu pracy i procesu wykorzystywanego przez zespół produktowy. Retrospektywa jest okazją do sprawdzenia i dostosowania tego procesu, by lepiej tworzyć i dostarczać potrzebne produkty.
Szybka pętla – szybka nauka
Zwróć uwagę jak działają najlepsi kucharze, gdy nieustannie sprawdzają smak przygotowywanej potrawy. W przeciwieństwie do tych, którzy tylko kurczowo trzymają się przepisu, dobrzy kucharze iteracyjnie usprawnia w ten sposób swoje danie. Uczą się na bazie doświadczenia i wyciągają wnioski. Korzystają z smakowej pętli zwrotnej.
Niech to będzie inspiracją dla Ciebie do poszukiwania możliwości na skracanie pętli informacji zwrotnej przynajmniej w jednym wybranym obszarze. Bądź dobrym kucharzem swojego produktu 😉