Kompetencje miękkie w pracy Testera Agile

cze 2, 2021 | Metodyka testów

Metodyki zwinne wymagają od Testera Agile silnej motywacji, odpowiedniego nastawienia i dobrych zdolności interpersonalnych, ponieważ wymuszają ścisłą współpracę oraz interakcję między członkami zespołów. To wymaga poszerzenia kompetencji, ale i rodzi kilka zagrożeń, choćby dlatego, że tester powinien pilnować jakości aplikacji, a nie tylko dobrych relacji z zespołem deweloperskim.

Testerów oprogramowania powinny cechować dwa rodzaje kompetencji. Do pierwszego obszaru kompetencji należą umiejętności związane z podstawowymi obowiązkami każdego testera, czyli opanowanie zagadnień technologicznych, co zaliczymy do kompetencji twardych. Drugim rodzajem kompetencji są umiejętności miękkie, które ułatwiają wykonywanie pracy. Umiejętności te obejmują różne aspekty funkcjonowania — nie tylko na polu zawodowym. Określają one podejście człowieka do życia, sposób rozwiązywania przez niego problemów, jego motywację oraz nastawienia do pracy.

Czy zwinny oznacza miękkie kompetencje?

Zwinne tworzenie oprogramowania opiera się na zupełnie innej organizacji pracy, niż to ma miejsce w tradycyjnych branżach. Weźmy przykład klasycznej firmy produkcyjnej (obojętnie jakiej branży): nie ma takiej sytuacji, aby jeden dział produkcyjny wytwarzał cały gotowy produkt. Nowoczesna produkcja ma swoje etapy w różnych działach, których zwieńczeniem jest montaż i podwykonawcza kontrola jakości. Podobnie rzecz się ma w przypadku waterfallowych projektów w IT — deweloperzy mają swój dział, kierowników i innych przełożonych, podczas gdy testerzy dzielą zupełnie inną przestrzeń i mają własną kadrę zarządzającą. W metodykach Waterfall testerzy nie współpracują z zespołem tak blisko, jak to ma miejsce w Agile.

Ten model (Waterfall) ma wiele zalet, nie tylko wynikających z dalekowzrocznego planowania zasobów, ale również pod względem technologicznym. W branży IT aktualizacja narzędzi następuje o wiele szybciej niż w tradycyjnych branżach. Np. technologie interfejsu po roku się dezaktualizują, a nowe biblioteki JavaScript wydawane są przynajmniej raz w miesiącu. Dzięki kaskadowemu (Waterfall) podejściu i organizacji pracy podzielonej na etapy można wytwarzać oprogramowanie, dostarczać poszczególne produkty prac, testować i wydawać, a dopiero w kolejnych iteracjach aktualizować technologię w ramach nowego projektu. Praca w zespołach zwinnych wygląda zgoła inaczej.

Specyfika metodyki Agile

Zwinne tworzenie oprogramowania wymusza w znacznie większym stopniu umiejętność poruszania się wśród specjalistów z różnych dziedzin. Dla Testera Agile jest to praca w kontekście, czyli działanie, na które patrzymy w sposób całościowy. Jesteśmy przecież częścią samowystarczalnego zespołu i musimy brać pod uwagę wszystkie elementy oraz ostateczny rezultat, a nie tylko wycinkowo skupiać się na naszym zadaniu.

Metodyki Agile mają istotne znaczenie przy tworzeniu oprogramowania, ponieważ specyfika branży IT wymusza nieustanne dopasowanie do zmieniających się warunków i wymagań klienta. Gdyby klienci w branży automotive podchodzili do kupowanych pojazdów w taki sam sposób, w jaki biznes podchodzi do produktów IT,  to organizacja pracy zakładów motoryzacyjnych byłaby zupełnie inna i musiałaby przypominać funkcjonowanie typowej manufaktury, w której trzeba być samowystarczalnym, aby dostarczyć produkt.

Jakie kompetencje miękkie powinien mieć Tester Agile?

Tak zwane kompetencje twarde szeroko opisaliśmy w poprzednim artykule: Rola, odpowiedzialność i potrzebne umiejętności Testera Agile. W tej publikacji skupiamy się na tym, co powinien opanować Tester Agile w zakresie kompetencji miękkich, bo włączenie testera do zespołu zwinnego ma wpływ na schemat jego pracy i wiąże się z istotną zmianą podejścia do wielu działań. Jakie zatem kompetencje miękkie można uznać za niezbędne w pracy Testera Agile?

Umiejętność komunikacji w pracy Testera Agile

Bez dobrej komunikacji trudno osiągać sukcesy nie tylko w życiu zawodowym, ale i prywatnym. Metodyki Agile są kwintesencją interdyscyplinarnej pracy zespołowej, która łączy specjalistów o wszechstronnych kompetencjach. Zespół dostarczający oprogramowanie powinien dysponować takim zestawem umiejętności, aby dostarczyć bieżącą wersję oprogramowania w całości, a nie tylko przygotować jeden z etapów.

To oznacza, że poszczególni specjaliści pracują ramię w ramię. Dobra komunikacja pomiędzy nimi daje lepszy obraz całości. Tester Agile powinien swobodnie wykorzystywać komunikację werbalną i pisemną, ponieważ testowanie często uważane jest za podstawowe źródło informacji o cyklu życia produktu. Współpraca testerów z deweloperami oraz Product Ownerami pozwala czuwać nad jakością oprogramowania na każdym etapie wytwarzania, oraz szybko reagować na pojawiające się problemy.

Rozpoznanie sytuacji poprzez stawianie właściwych pytań

Tester powinien nie tylko identyfikować błędy, ale również im zapobiegać. Stawianie sobie i innym odpowiednich pytań pozwala lepiej zrozumieć produkt, nad którym pracuje cały zespół. Nim przystąpisz do testowania, warto najpierw zasięgnąć dokładnej wiedzy na temat grupy docelowej testowanej aplikacji: kim są jej klienci końcowi i gdzie znajdzie zastosowanie. Już tego typu informacje pozwolą zdecydować np. o tym, czy należy skupić się na testach bezpieczeństwa, a może wydajnościowych i obciążeniowych. Zadawanie pytań zapobiega nieporozumieniom i tym samym przyspiesza realizację projektów w zespołach Agile.

Umiejętność słuchania

Z zadawaniem pytań wiąże się również umiejętność słuchania i potwierdzania tego, co usłyszeliśmy poprzez zadawanie pytań. Czasem, wraz z doświadczeniem, rośnie u nas tendencja do skupiania się na własnych opiniach. Nasza głowa pełna dobrych pomysłów podpartych zdobytą wiedzą, podczas realizacji innych projektów, podpowiada nam rozwiązania, nim jeszcze nasz rozmówca skończy wypowiedź. Nie zawsze jest to mile widziane, a przede wszystkim niekoniecznie musimy trafnie ocenić sytuację. Jeśli potrafisz wysłuchać cierpliwie drugą osobę, bez przerywania jej wypowiedzi, a później wnikliwie ocenić sytuację, to posiadasz jedną z ważniejszych umiejętności Testera Agile.

Sprawne raportowanie

W codziennej pracy testerów można sobie wyobrazić wiele przykładów, w których Tester Agile może wpłynąć na sytuację dzięki skutecznej komunikacji i umiejętnościom raportowania. Tester Agile powinien tworzyć wartościowe raporty, w których dokonano porównania rzeczywistych wyników z oczekiwanymi i sprawnie opisywać te zagadnienia (ustnie lub pisemnie). Powinien również potrafić przekształcić dane z testów w informacje istotne dla projektu. Przedstawianie informacji w jasny i zwięzły sposób jest jedną z głównych cech dobrego testera zwinnego.

Zwinność – elastyczność testera w dostosowaniu się do zmian

W języku polskim „zwinny” jest synonimem słowa „sprawny”. Sprawność to biegłość w danej dziedzinie, wynikająca z wiedzy i doświadczenia, które ułatwiają elastyczne podejście do zadania, gdy zmuszają nas do tego okoliczności. Zwinne podejście, które opiera się na szybkim dostarczaniu, wiąże się z ciągłą aktualizacją technologii już na etapie wytwórczym. Tester Agile musi być otwarty na zmiany. Gdy nagle zmienia się krajobraz technologiczny, to bardzo często narzędzia testowe wymagają modyfikacji lub zmiany. 

To wymaga zmiany mentalnej. Tester Agile musi być gotowy do ciągłego uczenia się i eksperymentowania każdego dnia. Może wykorzystać do tego fakt, że w zespołach zwinnych ma dostęp do specjalistów tworzących oprogramowanie i codziennie może  konsultować z nimi spostrzeżenia dotyczące tego, jak produkt zostanie wykorzystany przez użytkownika.  Dzięki temu jest w stanie przygotować zmodyfikowane testy i na bieżąco informować deweloperów, jakie są efekty wprowadzonych zmian i udoskonaleń.

Tester w zespole Agile powinien rozumieć, że w projekcie najważniejszy jest cel — działające oprogramowanie zgodne z oczekiwaniami klienta, a nie metryki pokazujące ilości błędów. Droga, jaką dojdziemy do celu, jest mniej istotna i często zmieniana w trakcie projektu. Tester Agile musi być na to gotowy.

Krytyczne myślenie Testera Agile oraz umiejętność efektywnego czytania

To krytyczne myślenie pozwala trzeźwo oceniać rzeczywistość, natomiast szybkość przyswajania treści i umiejętność szczególnej koncentracji podczas czytania wpływają na czas pracy. W podejściu Agile czas ma istotne znaczenie, bo zespół stara się wydawać oprogramowanie tak szybko, jak to jest możliwe.

Kreatywne podejście

Oczywiście testerzy powinni odznaczać się analitycznym myśleniem, ale wymaga się od nich także wsparcia wysiłków innowacyjnych, aby ulepszali metody testowania i różnicowali scenariusze testowe. Do tego potrzebna jest kreatywność. Posiadanie obu tych umiejętności  ułatwia wyciąganie wniosków oraz stosowanie nieszablonowych rozwiązań.

Rozwiązywanie problemów powstających w trakcie testów wymaga dużego stopnia kreatywności. Poprawka, która naprawiła jeden defekt, może generować trzy kolejne. W takiej sytuacji warto się cofnąć o krok i daną funkcjonalność zaimplementować inaczej. Posiadanie tych umiejętności umożliwi testerom oprogramowania szybszą identyfikację ukrytych błędów, wyciąganie dobrze uzasadnionych wniosków i podejmowanie działań, o których nikt inny nie pomyślał. Dzięki temu zespoły zwinne mogą stale zwiększać efektywność swoich procesów i zapewniać, że są w stanie nadążać za zmieniającymi się wymaganiami.

Sprawne ustalanie zależności i priorytetów

Biegłość w uporządkowanym łączeniu faktów w połączeniu ze zdolnością do analizy obszernych dokumentów dotyczących wymagań są kluczowe dla Testera Agile. Testerzy odgrywają ważną rolę w zrozumieniu biznesowej strony oprogramowania i śledzeniu go przez proces tworzenia oprogramowania. Zarządzanie testowaniem wymagań jest również częścią pracy testera, która polega na analizowaniu wymagań systemowych, grupowaniu ich i ustalaniu priorytetów.

Dzięki tym umiejętnościom Tester Agile jest w stanie określić wagę każdego zadania i na jej podstawie ustawić kolejność wykonywanych prac. Zdolność do eliminowania zadań o niskim priorytecie ma szczególnie ważne znaczenie w projektach Agile, w których liczy się szybkie wdrażanie. To ciągłe dostarczanie wartości (najlepiej w każdym sprincie), wymaga szybkiej identyfikacji zależności pomiędzy podstawowymi funkcjami i cechami. Można tu posłużyć się tzw. mapowaniem myśli, które pozwala określić, jakie sesje testowe wykonać. W dalszej perspektywie można dzięki temu lepiej pokazać strategie testowe i opisać dane wynikające z testów.

Zarządzanie sobą w czasie

Ta umiejętność związana jest z planowaniem i bardzo ściśle wiąże się z opisaną powyżej zdolnością do ustalania priorytetów. W metodyce zwinnej testerzy często nie są w stanie nadążyć za najpilniejszymi zadaniami. To może być powód, dla którego będą zaniedbywać inne, równie konieczne zadania, takie jak aktualizacje testów regresji czy tworzenie scenariuszy testowych. Planowanie pracy z wyprzedzeniem oraz uporządkowany system działania pozwolą Ci zaoszczędzić dużo czasu. Na szczęście literatura oraz rynek szkoleń w tym zakresie jest bardzo obszerny.

Techniki negocjacji i wywierania wpływu

Istnieje wiele technik negocjacyjnych, które można wykorzystywać w zależności od okoliczności. Nie chodzi tu jednak o to, aby Tester Agile został specjalistą w tym zakresie, ale przede wszystkim był otwarty na wymianę argumentów. Proces przechodzenia do konsensusu w drodze negocjacji jest tym łatwiejszy, gdy obie strony nie podchodzą personalnie do poruszanych zagadnień, tylko starają się przybliżyć do wspólnego celu. Jeśli  masz świadomość celu i pewność siebie, to techniki negocjacji pomogą Ci szybko przekonać resztę zespołu lub wypracować wspólne korzystne stanowisko.

Bycie proaktywnym i wytrwałym

Jednym z głównych obowiązków testera jest przygotowywanie scenariuszy i przypadków testowych w oparciu o opisy funkcji lub historyjki użytkownika, które omawia z Product Ownerem. Pozyskiwanie i projektowanie wymagań biznesowych, a następnie przekształcanie ich w wymagania systemowe, a później w scenariusze i przypadki testowe oraz śledzenie ich z odpowiednimi interesariuszami, to najlepszy sposób na wczesne zapobieganie defektom.

Praca testera wymaga odporności na monotonię niektórych procesów. Nawet największa dbałość o szczegóły nie uchroni projektu przed błędami. Testerzy wielokrotnie sprawdzają tworzone oprogramowanie i muszą się uzbroić w cierpliwość. Istotna jest tu jeszcze jedna miękka umiejętność, jaką jest twoja pozytywna postawa. Pozytywne nastawienie jest kwestią naszego wyboru. Trudno być dobrym Testerem Agile, gdy mamy negatywne nastawienie, ponieważ to ogranicza nasz rozwój.

Dlaczego kompetencje miękkie są tak ważne w pracy Testera Agile?

Umiejętności miękkie są bardzo istotne dla osób zajmujących się testowaniem oprogramowania, ale niestety często zaniedbywane przez przyszłych testerów. Rola testera w zespole zwinnym obejmuje czynności, które generują i dostarczają informacji zwrotnej nie tylko na temat statusu testów, postępu testów i jakości produktu, ale także jakości procesu.

Jako Tester Agile musisz posiadać nie tylko twarde kompetencje techniczne, ale i pełen zestaw umiejętności miękkich, w tym: komunikacji, wywierania wpływu, negocjacji, inteligencji emocjonalnej, umiejętności czytania, zarządzania czasem i ustalania priorytetów oraz świetnej komunikacji, a także krytycznego myślenia, wytrwałości i analitycznego podejścia do zagadnień.

Jeśli zależy Ci na sprawnym przygotowaniu testerów do pracy w zespołach Agile i potrzebujesz wsparcia, skontaktuj się z nami. Chętnie zapoznamy się z Twoją sytuacją i podzielimy się naszymi spostrzeżeniami oraz doświadczeniem na temat pracy w zespołach Agile. 

Polecamy również