6 sposobów na poprawę jakości pracy zdalnych zespołów programistycznych

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

Inżynierowie jakości mogą dostosować swoje procesy do pracy zdalnej, koncentrując się na strategiach usprawniania przeglądów kodu, wykorzystywaniu narzędzi do inżynierii jakości oraz wspieraniu współpracy poprzez działania takie jak zdalne sesje testowania.

Znaczenie inżynierii jakości ponownie zyskało na znaczeniu, gdy całe branże przestawiły się na pracę zdalną, jednocześnie starając się utrzymać jakość swoich procesów i produktów. 

COVID był przełomem dla całego świata. Gdy rządy wprowadziły zasady dystansu społecznego i kwarantanny, firmy musiały na nowo opracować swoje metody pracy. 

Jako tester, SDET, inżynier QA lub osoba pełniąca inną funkcję odpowiedzialną za zapewnianie jakości w firmie prawdopodobnie odczułeś zakłócenia w codziennej pracy.

Skuteczna inżynieria jakości w środowisku zdalnym

Jeszcze przed pandemią pracowałem całkowicie zdalnie w Auth0 (globalnej firmie działającej zdalnie), a wcześniej pracowałem zdalnie również w innych firmach. 

W tym artykule podzielę się wskazówkami, trikami i procesami dotyczącymi zarządzania pracą zdalną oraz praktykami zapewniania jakości. Ponieważ trendy w inżynierii jakości szybko się zmieniają, szczególnie w środowiskach zdalnych, należy na bieżąco poznawać narzędzia i strategie, które mogą wspierać tę zmianę.

Najważniejsza ogólna rada, jakiej mogę ci udzielić, to przygotowanie się na komunikację asynchroniczną — często trzeba będzie poczekać na możliwość interakcji, a ty będziesz musiał nauczyć się sobie z tym radzić.

Wdrażając praktyki pracy zdalnej, należy pamiętać o różnicy między inżynierią jakości a zapewnianiem jakości. Zapewnianie jakości zwykle koncentruje się na wykrywaniu defektów po ich wystąpieniu, podczas gdy inżynieria jakości jest bardziej kompleksowym, zapobiegawczym podejściem, które zapewnia uwzględnienie jakości na każdym etapie tworzenia produktu.

Strategie i wskazówki dla zdalnych inżynierów QA

1. Zastrzeżenie: to nie jest dokładnie normalny tryb pracy 

Podczas pandemii pracownicy zdalni często doświadczali dodatkowego stresu i presji (dzieci w domu, nieodpowiednie warunki do pracy w domu, śmierć lub choroby w rodzinie itp.). Niezależnie od tego, czy jesteś menedżerem, liderem, seniorem czy juniorem, musisz zrozumieć, że obecna sytuacja nie jest tym, co można uznać za normalność. COVID był sytuacją skrajną (miejmy nadzieję!), dlatego wymagał od wszystkich dodatkowego dostosowania.  

Jako menedżer pokaż swoim bezpośrednim podwładnym, że jesteś tam, aby im pomóc. Jako lider techniczny lub główny inżynier wyznaczaj zespołowi kierunek, ale pokaż też, że jesteś człowiekiem i że pozostali powinni czuć się bezpiecznie, okazując również swoją wrażliwość. A jeśli pełnisz inną rolę, nie wywieraj na siebie presji, aby pracować tak jak zwykle — to zrozumiałe, że tempo pracy spadnie.  

Firmy powinny zaakceptować fakt, że tempo pracy ich zespołów spadnie, i że praca zdalna nie jest tutaj winna. To wyjątkowe okoliczności. Praca zdalna pozwala firmie funkcjonować, nawet jeśli nie działa ona z pełną wydajnością.  

2. Przeglądy kodu to jedne z najlepszych punktów kontrolnych jakości  

Nawet jeśli tradycyjnie pełniłeś w firmie bardziej manualną funkcję związaną z jakością, przeglądy kodu powinny już znajdować się w obszarze twojego zainteresowania. Często stanowią one ważną część cyklu życia tworzenia oprogramowania i są punktem kontaktu, w którym ludzie muszą się ze sobą komunikować, aby poprawić jakość kodu i zapobiegać błędom. 

W sytuacji pracy zdalnej są one szczególnie ważne, ponieważ stanowią naturalną praktykę, która zwykle już funkcjonuje, dzięki czemu łatwo ją egzekwować. Jeśli są właściwie wykorzystywane, pomogą rozwiązać wspomniane wcześniej problemy z komunikacją asynchroniczną. Zastosowanie odpowiedniego oprogramowania do inżynierii jakości może znacząco usprawnić procesy przeglądu kodu, upraszczając komunikację i ograniczając liczbę błędów, zanim się pojawią.

Get Free Access
Get regular tech leadership wisdom for delivering better software and systems.
Get Free Access

Have an account? Log In

Moje najważniejsze wskazówki dotyczące przeglądów kodu:

  • Zachęcaj ludzi do samodzielnego przeglądania kodu w pierwszej kolejności: samodzielne przeglądanie kodu to praktyka, w której osoba proponująca zmianę kodu również przegląda własny kod i zostawia pomocne komentarze, zanim poprosi o publiczne sprawdzenie. Ogranicza to czas marnowany przez przyszłych recenzentów i może nawet pomóc osobie dokonującej samodzielnego przeglądu znaleźć wcześniej drobne, głupie błędy; 
  • Przeglądy kodu w parach lub podczas sesji zespołowych: jest to szczególnie przydatne w przypadkach, gdy PR dotyczy wrażliwego kodu lub jest dość dużą zmianą (taką jak refaktoryzacja). Osoba proponująca zmianę może połączyć się z zespołem lub współpracownikiem na wideokonferencji, udostępnić ekran i wyjaśnić swój PR. To naprawdę pomaga szybko ujednolicić rozumienie tematu przez wszystkich, a także może znacząco przyczynić się do poprawy jakości kodu. 
  • Zaangażuj programistów w przeglądanie kodu automatyzacji: ważne jest, aby programiści uczestniczyli w przeglądzie kodu automatyzacji/testów. Dzięki temu ich wiedza o sposobie testowania aplikacji pozostaje aktualna, a także łatwiej jest egzekwować ten sam poziom jakości kodu w całym kodzie; 
  • Upewnij się, że SDET-y/testerzy przeglądają kod aplikacji: to naprawdę kluczowa kwestia. Inżynierowie jakości powinni uczestniczyć w przeglądach kodu. Możesz to robić nawet wtedy, gdy nie jesteś osobą bardzo techniczną (to świetny początek, aby dowiedzieć się, czego musisz się nauczyć!). Nie tylko możesz przekazać cenne uwagi, ale także zdobędziesz wiedzę o tym, co dokładnie zmienia się w aplikacji (czego możesz nie dostrzegać z powodu nowego asynchronicznego sposobu pracy). Ta wiedza pomoże Ci podejmować lepsze decyzje dotyczące testowania w zespole.

Jeśli nie masz jeszcze ścisłego procesu przeglądu kodu, to świetny moment, aby uzasadnić potrzebę jego usprawnienia. Jest to podstawowe narzędzie w czasach, gdy komunikacja synchroniczna może być trudniejsza. 

Nie bój się korzystać z narzędzi do przeglądu kodu, które pomogą Ci się organizować i współpracować.

3. Wykorzystaj potencjał programowania w parach

Nie będę zagłębiać się w szczegóły programowania w parach ani programowania zespołowego, ponieważ byłby to temat na zupełnie inny artykuł, a w Internecie znajduje się mnóstwo informacji na ten temat.

Chciałem jednak zwrócić uwagę, że w takich czasach jest to bardzo wartościowe narzędzie. Niezależnie od tego, czy pracujesz z innym SDET-em nad kodem testów, czy programujesz w parze z programistą nad kodem aplikacji, uważam, że jest to świetna praktyka, która pomoże w budowaniu więzi w zespole, dzieleniu się wiedzą oraz podnoszeniu jakości kodu i aplikacji. 

Oto kilka często zadawanych pytań dotyczących programowania w parach wraz z odpowiedziami:

Czym jest programowanie w parach?

Jak wskazuje nazwa, programowanie w parach to działanie, w ramach którego dwie osoby wspólnie pracują nad tym samym kodem. Można je również wykonywać z większą liczbą osób — wtedy zwykle nazywa się je programowaniem zespołowym. 

Jak działa programowanie w parach?

Zwykle w programowaniu w parach jedna osoba pełni rolę kierowcy (pisze kod), a druga rolę nawigatora (lub obserwatora). Dobrze sprawdza się to w przypadku narzędzi do zdalnych konferencji, w których jedna osoba może udostępniać ekran i pisać kod, a druga może zgłaszać sugestie, komentarze lub przypomnienia, a także pomagać wykrywać i zapobiegać błędom.

Jakich narzędzi używasz do programowania w parach?

Jeśli zależy Ci na współpracy, VS Code (na przykład) oferuje doskonałe możliwości współpracy dzięki funkcji Visual Studio Live Share, która pozwala wielu osobom pracować nad wspólnym projektem. Działa to znacznie lepiej, niż można by się spodziewać — jest bardzo wydajne i sprawdza się naprawdę dobrze w przypadku osób, które już się znają lub mają podobny styl pracy.

Czy można programować w parach z osobami nietechnicznymi?

Tak, to także świetna okazja do rozwijania umiejętności mentorskich oraz wiedzy technicznej w zespole. 

Czy masz w zespole programistów, którzy są szczególnie zainteresowani nauczaniem albo mają doświadczenie w prowadzeniu warsztatów lub samouczków? Mogą oni pracować z Tobą w parze i przeprowadzić Cię przez bazę kodu, pozwalając Ci zdobyć większe doświadczenie, jeśli nie masz jeszcze dużej wiedzy technicznej.

A co z testowaniem?

Podczas testowania spróbuj czegoś, co nazwę „odwróconym programowaniem w parach”. Odwraca to ideę programowania w parach, przekształcając ją w testowanie w parach lub zespołowe. Połącz się w parę z programistami, aby pokazać im, jak testujesz aplikację, poproś ich o pomoc w jej testowaniu albo po prostu zamieńcie się rolami! To naprawdę użyteczny sposób radzenia sobie ze złożonymi problemami. Więcej pomysłów znajdziesz w kolejnym świetnym artykule Maaret Pyhäjärvi.

4. Organizuj zdalne sesje testowania, aby współpracować jako zespół: polowania na błędy, dni gier itp. 

Sesje testowe (czasami nazywane sesjami wspólnego wyszukiwania błędów, Dniami Gier itp.) to wspólna aktywność, zazwyczaj przeprowadzana przez zespół. 

Mogą służyć do testowania konkretnej nowej funkcji albo odbywać się regularnie w celu testowania aplikacji. Odpowiednie narzędzia QE mogą odmienić przebieg tych wspólnych sesji, zapewniając wgląd w czasie rzeczywistym i upraszczając złożone środowiska testowe.

Chodzi o to, aby zgromadzić razem osoby z zespołu i spoza niego, reprezentujące różne obszary (programowanie, testowanie, produkt, projektowanie, interesariuszy biznesowych itp.), aby testować aplikację. Jako programiści lub testerzy możemy czasami mieć stronnicze, skoncentrowane na aspektach technicznych wyobrażenie o tym, jak powinna wyglądać aplikacja, dlatego zaangażowanie innych interesariuszy może dostarczyć bardzo cennych informacji zwrotnych. 

Zrzut ekranu ról podczas sesji wspólnego wyszukiwania błędów
Sesje testowe to świetna okazja dla zespołów do spotkania się i współpracy między działami, nawet w konfiguracji zdalnej.

Uznałem, że warto o tym wspomnieć, ponieważ uważam, że jest to świetna aktywność na obecne czasy. Łączy zespoły i zachęca do komunikacji i współpracy między różnymi działami, potencjalnie ujawniając błędy lub nieprawidłowe specyfikacje, które w innych okolicznościach mogłyby zostać przeoczone.  

Oczywiście prowadzenie takich sesji zdalnie może być wyzwaniem, dlatego poniżej znajdziesz kilka wskazówek dotyczących tego rozwiązania (a także ogólnego prowadzenia takich sesji).

Wskazówki dotyczące prowadzenia zdalnych sesji testowych:

  • Powinno być możliwe prowadzenie takich sesji za pomocą narzędzia do wideokonferencji. Upewnij się również, że dostępny jest czat (jeśli korzystasz ze Slacka, możesz utworzyć do tego osobny kanał Slacka); 
  • W sytuacjach, w których potrzebne są urządzenia (np. telefony komórkowe lub urządzenia używane w salonie itp.), z wyprzedzeniem sprawdź, jakimi urządzeniami dysponują uczestnicy. Jeśli testujesz aplikację na iOS i zaprosisz osobę bez iPhone’a, będzie to stratą czasu dla wszystkich; 
  • Zawsze wyznacz jedną lub więcej osób odpowiedzialnych za każdą z tych sesji. Oznacza to, że powinny one pomóc w organizacji przed sesją, przygotować wszelką niezbędną dokumentację lub konfigurację dla uczestników oraz poprowadzić sesję; 
  • Należy przygotować jasne instrukcje instalacji dla uczestników i udostępnić je przed sesją. Czas sesji powinien być przeznaczony na testowanie, a nie instalowanie; 
  • Należy również przygotować jasne instrukcje dotyczące zgłaszania problemów, nawet jeśli sprowadzają się one do polecenia „opublikuj zgłoszenie na kanale” (zamiast sytuacji, w której wszyscy jednocześnie próbują zgłaszać problemy podczas rozmowy konferencyjnej); 
  • Przygotuj plan sesji. W takich sytuacjach przydatne jest, aby uczestnicy postępowali zgodnie z pewnym scenariuszem lub przynajmniej planem tego, na co należy zwrócić uwagę;
  • Mimo to nadal zachęcaj do testowania eksploracyjnego, ale pamiętaj, że niektóre osoby mogą potrzebować niewielkiej zachęty, aby rozpocząć eksplorację. 
  • Nadal możesz prowadzić takie sesje na systemach bardziej skoncentrowanych na zapleczu. Ciekawym ćwiczeniem może być przekształcenie ich w eksperyment z zakresu inżynierii chaosu, przeznaczony dla bardziej technicznej grupy. AWS ma własną wersję takich sesji, nazywaną Dniami gier, z której można zaczerpnąć kilka pomysłów.
  • Zadbaj o dobrą zabawę! Jeśli są odpowiednio przeprowadzone, sesje te mogą być bardzo rozrywkowe – wiele lat temu, gdy prowadziłem je w Miniclip, urozmaicałem sesje testowe, wykorzystując postacie z Gry o tron. 

Więcej szczegółowych informacji na ten temat znajdziesz również w tym wpisie na blogu, który omawia kilka wspomnianych przeze mnie kwestii.

5. Mądrze zarządzaj wolnym czasem — rozwijaj umiejętności z zakresu inżynierii jakości

Jak wspomniałem, będziesz musiał przyzwyczaić się do komunikacji asynchronicznej. W świecie testowania (w zależności od dynamiki zespołu) zadania testera często mogą zależeć od ukończenia prac programistycznych. Gdy zespoły pracują wolniej, a komunikacja przebiega inaczej, możesz znaleźć się w sytuacji, w której będziesz mieć trochę wolnego czasu. 

Pamiętam, że w poprzedniej firmie miałem kolegę, który często mówił podczas spotkania statusowego: „Jestem zablokowany przez x”, a następnie spędzał cały dzień, czekając na usunięcie blokady. W pewnym momencie pomagałem mu rozwijać umiejętności w różnych obszarach i jednym z elementów wymagających pracy było właśnie takie nastawienie. Jest to szczególnie istotne teraz, gdy oprócz potencjalnego wydłużenia okresów bezczynności znajdujesz się również w zaciszu własnego domu, mając pod ręką wiele rozpraszaczy. 

Ważne jest, abyś zarządzał swoim czasem i prowadził listę rzeczy, których chcesz się nauczyć. 

Oto kilka przykładów rzeczy, które możesz robić w wolnym czasie: 

  • Czy zajmujesz się głównie ręcznym testowaniem (QA)? Być może warto poświęcić czas na naukę automatyzacji.  
  • Masz dużą wiedzę z zakresu frontendu? Może powinieneś poświęcić trochę czasu na zdobycie wiedzy również o backendzie.
  • Istnieje wiele świetnych, bezpłatnych materiałów, takich jak freeCodeCamp czy YouTube, a także niedrogich kursów, takich jak Udemy (często są tam organizowane promocje). Ponadto wiele konferencji przeniosło się do internetu z powodu koronawirusa, a udział w niektórych z nich jest bezpłatny (np. OnlineTestConf)!
  • A może chcesz dowiedzieć się więcej o aplikacji, analizując jej kod. 
  • Być może wiesz, że zbliża się nowy projekt i będziesz musiał zdobyć nowe umiejętności na jego potrzeby. 
  • Ponadto możesz wykorzystać ten czas na prototypowanie nowych pomysłów, uporządkowanie długu technologicznego, przygotowanie dokumentacji itd.  

Tak naprawdę nie ma to większego znaczenia. Wybierz to, co Ci odpowiada, ale inwestuj w swój rozwój osobisty. 

Nie oznacza to, że nie możesz zrobić sobie przerwy (w końcu mamy globalną pandemię). Ludzie to zrozumieją. Jednak rozwijanie zestawu umiejętności QA lub praca nad sobą ma dużą wartość, szczególnie w takich czasach, gdy sytuacja na rynku pracy gwałtownie się pogorszyła. 

More Articles

6. Wykorzystaj aktywności zespołowe, aby budować relacje 

Na zakończenie, choć ta sugestia nie jest bezpośrednio związana z testowaniem, chcę powiedzieć, że uważam zachęcanie zespołu do wspólnych aktywności za ważne. Te relacje są istotne i stanowią mile widzianą odskocznię od pracy. Zwykle nawiązujesz je bardziej naturalnie w biurze, na przykład podczas lunchu, przerwy na kawę, a nawet zwykłego komentarza wypowiedzianego w tym samym pomieszczeniu. 

Kilka wskazówek dotyczących budowania relacji w pracy zdalnej: 

  • W moim obecnym zespole właśnie skonfigurowaliśmy aplikację Donut Slack na naszym kanale zespołowym. Co tydzień losowo dobiera ona do siebie dwóch członków zespołu na rozmowę — możemy rozmawiać tam o czymkolwiek chcemy.
  • Mamy także piątkowy klub książki, podczas którego na zmianę dzielimy się wiedzą (koncentrujemy się na tematach związanych z pracą, ale może to być cokolwiek!); 
  • Organizuj na kanale wspólne lunche lub przerwy na kawę, podczas których spędzacie razem trochę czasu, tak jak w biurze. Oczywiście najlepiej sprawdza się to, jeśli wszyscy znajdujecie się w podobnych strefach czasowych; 
  • Organizuj quizy lub grajcie razem w gry online od czasu do czasu. Jackbox Party Pack to świetny przykład czegoś, co bardzo dobrze sprawdza się w pracy zdalnej.

Dołącz, aby uzyskać więcej informacji

Aby uzyskać więcej wskazówek, porad i strategii dotyczących zapewniania jakości, zapisz się do newslettera The CTO Club i otrzymuj najnowsze informacje. Pomożemy Ci skalować działania w bardziej przemyślany sposób i skuteczniej przewodzić dzięki poradnikom, materiałom oraz strategiom przygotowanym przez czołowych ekspertów!