10 prostych sposobów, aby programiści znienawidzili cię

Jeśli pracujesz jako tester, możesz wiedzieć coś na temat relacji tester vs. programista. Musimy współpracować, aby projekt szedł naprzód. Oto dziesięć sposobów, aby zniszczyć tę kruchą równowagę.

  1. Zgłaszaj błędy opisane jak najbardziej ogólnie
    • Tytuł: „System nie działa”
    • Opis: „System po pewnym czasie przestaje działać na moim komputerze
    • Priorytet: krytyczny
  2. Programiści często czują się źle, kiedy w ich kodzie zostanie znaleziony błąd. Możesz wzmocnić ten efekt dokładnie wskazując, kto napisał dany fragment kodu.
  3. Krytykuj publiczne.
  4. Przetestuj nieaktualny build. Zgłoś krytyczny błąd. Pozwól programiście spędzić dzień na analizie problemu. Kiedy w końcu zorientuje się, że testowałeś na starej wersji, na pewno zapamięta twoje imię.
  5. Jeśli masz taką możliwość, wskaż sposób poprawienia błędu i wyznacz deadline.
  6. Nalegaj, aby każdy znaleziony przez ciebie błąd został poprawiony. Nawet jeśli czujesz, że nie warto tego poprawiać.
  7. Eskaluj do przełożonych w projekcie. Zaangażuj ich w długie, techniczne dyskusje prowadzone wyłącznie drogą mailową.
  8. Najlepsze zachowaj na koniec. Blokujący dostawę, krytyczny błąd zgłaszaj tuż przed końcem etapu testów. Liczy się efekt WOW i miny deweloperów.
  9. Zgłaszaj zduplikowane raporty błędów. Nie spędzaj swojego czasu na przeglądnięcie listy istniejących defektów.
  10. Przerywaj im regularnie, kiedy kodują. Powrót do rytmu pracy zajmuje średnio 20 minut. Ale to nie twoje minuty.

Komunikacja, tester i programista

Testerzy nie powinni unikać konfrontacji. Przynoszenie “złych” wiadomości to ich praca, jednak nie zawsze jest to dobrze przyjmowane. Czasami trudno jest określić przyczynę błędu. Czy jest to błąd w wymaganiach, kodzie czy w dokumentacji. Zdarza się, że błędu nie ma, jednak tester nie jest pewien jak interpretować działanie aplikacji.

Niezależnie od przyczyny – zadaniem testera jest zgłoszenie problemu. Niektórzy z nas mogą iść o krok dalej wskazując błąd ORAZ programistę aby skłonić go do lepszej pracy. To nie pomaga. Spekulowanie – kto, w jakim miejscu i kiedy, zrobił błąd, jest złe z dwóch powodów:
– szukanie winnych nie pozwala skupić się na pracy
– to źródło konfliktów w grupie

Pięć problemów występujących w SDLC

Problem:

  1. niewystarczająco zdefiniowane wymagania – jeśli wymagania są niejasne, niekompletne, zbyt ogólne lub nietestowalne, na pewno pojawią się problemy
  2. nierealistyczny time plan projektu – zbyt wiele pracy zaplanowanej w zbyt krótkich przedziałach czasu
  3. niewystarczająca ilość testów – nikt nie wie jakiej jakości jest system, dopóki klient nie zacznie zgłaszać problemów.
  4. zmiany po zatwierdzeniu specyfikacji – mała z punktu widzenia klienta zmiana, może oznaczać zmianę koncepcji działania całego systemu. To oznacza dodatkową pracę, koszty oraz konieczność przeplanowania zadań.
  5. brak komunikacji – jeśli programiści nie wiedzą czego oczekuje klient (np. z powodu braku wymagań), lub klient zmienia wymagania w trakcie trwania projektu, czas zaplanowany na kodowanie, testowanie jest przeznaczany na wyjaśnianie.

Rozwiązanie:

  1. zdefiniowane wymagania – jasne, kompletne, szczegółowe, spójne logicznie oraz testowalne wymagania, które zostaly zaakceptowane przez wszystkie strony. W projektach prowadzonych wg metodyk lekkich, niezbędna jest ciągła koordynacja  wymagań z udziałem klienta.
  2. realistyczne estymacje czasu – zapewnienie odpowiedniej ilości czasu na planowanie testów, tworzenie przypadków testowych, testowanie, poprawę i retesty błędów, zmiany (change requests), raporty i dokumentację -zarówno tworzenie jak i czytanie. Zespół powinien mieć szansę na ukończenie projektu bez efektu wypalenia się.
  3. testowanie w odpowiednim momencie – rozpoczęcie testów na wczesnym etapie SDLC, retesty po poprawie błędów, testy regresywne po zmianach w bieżącej wersji systemu.
  4. trzymanie się zdefiniowanych wymagań – kiedy ruszy kodowanie, pojawią się zmiany, które zazwyczaj oznaczają dodatkową pracę w ustalonym na początku zakresie godzin. Dobrą praktyką jest komunikowanie konsekwencji takich zmian i jeśli są one niezbędne -reestymacja czasu na testy.
  5. komunikacja – tam gdzie ma to sens, pomagają przeglądy i inspekcje. Narzędzia do pracy grupowej: email, repozytorium błędów i dokumentacji. Wersjonowanie. Aktualne wersje dokumentów projektowych. Oraz najważniejsze – bezpośredni kontakt członków zespołu.