Podczas jednego z ostatnich moich wystąpień padło pytanie, kiedy testerzy oprogramowania będą zarabiali więcej od programistów? Nie jest to jednak dla mnie pytanie o przyszłość, ale o teraźniejszość. Przede wszystkim musimy uznać, że już dziś są testerzy oprogramowania, którzy zarabiają lepsze pieniądze od programistów, ale są to innego typu testerzy, niż się powszechnie wydaje. Do tego wrócę w późniejszej części tej publikacji. Na razie zastanówmy się „dlaczego testerzy mieliby zarabiać więcej niż programiści?”. Na potrzeby tej publikacji zakładam, że zarobki pracowników zależą od wypadkowej doświadczenia, umiejętności i wartości, jaką pracownik wnosi do projektu i nie mają nic wspólnego z pochodzeniem, wiekiem czy płcią. Oznacza to, że kwota, jaką widzimy na pasku, wynika wyłącznie z kompetencji, jakie podsiadamy oraz oceny naszej wartości przez projekt.
Koncept programista – Twórca oraz tester – Krytyk
Słowem wprowadzenia. Jeśli Twoja praca sprowadza się do testowania - krytykowania produktów innych twórców – programistów, to można dojść do następujących wniosków dotyczących relacji Twórca - Krytyk:
- Na początek musi powstać produkt, który można poddać krytyce. Krytyk zależy więc w dużej mierze od Twórcy.
- Krytyka w standardzie nie powoduje, że produkt staje się lepszy. Twórca musi wsłuchać się w krytykę i chcieć lub móc poprawić go bazując na słowach krytyka.
- Krytyk może wyrazić swoją subiektywną opinię, która może nie przyczyniać się do poprawy produktu. Co więcej, Krytyk swoją opinią może wprowadzić Twórcę w błąd i zachęcić go do zmiany produktu tak, by ten się pogorszył dla innych użytkowników.
Z tej relacji możemy wysnuć, że praca Krytyka nie jest więcej warta niż praca Twórcy. Wracając więc do początkowego pytania "kiedy tester będzie zarabiał więcej od programistów?", musimy uznać, że w opisanej relacji raczej nigdy.
Kiedy tester zarabia mniej od programisty?
Lepiej od programisty nigdy nie będzie zarabiać tester opisany w niektórych materiałach wprowadzających do zawodu, który raportuje defekty i który nie wskazuje jego źródła oraz nie sugeruje, jak dany problem naprawić. Oczywiście nie mówimy tu o przypadkach zero – jedynkowych, gdzie oprogramowanie po prostu jest niezgodne z wymaganiami. Mówimy o bardziej typowych przypadkach, gdzie specyfikacja nie istnieje, albo nie jest aktualna. Należy w tym miejscu przytoczyć argumenty testerów, którzy mówią, że "nie wiem, jak działa oprogramowanie” albo proste „to nie moja odpowiedzialność". Jeśli tester zamyka się jedynie w obszarze kontroli jakości, to nie będzie miał szans na zarobki przewyższające programistę. Pewną proaktywnością i wyjściem ze strefy komfortu będzie próba znalezienia odpowiedzi na pytanie "jak powinno działać oprogramowanie?". Jeśli nie mamy odpowiedzi na to pytanie, to kolejnym powinno być "kto wie, jak ma działać?" oraz "jak do niego dotrzeć?". Opisana forma krytyki może być niewiele wnoszącą do projektu, a przez to, zamiast pomagać może być przeniesieniem na Twórcę wysiłku nie tylko tworzenia oprogramowania, ale również analizy biznesowej. Można to potraktować jak formę spychologii – wiem, że nie działa, nie wiem, jak ma działać, zepchnę to na programistę, aby się sam dowiedział, jak ma działać.
Kiedy tester zarabia tyle samo, co programista?
Pensje programisty i testera mogą ulec zrównaniu w sytuacji, w której pracodawca uzna, że stanowią oni zespół, w którym ich kompetencje się uzupełniają i gdzie programista bez testera nie byłby w stanie dostarczyć wartościowego produktu. Do wcześniejszych wniosków musimy dołożyć kilka założeń, w tym np. że opinie testera o produkcie są wartościowe, raporty niosą potencjalne rozwiązanie i że produkt staje się lepszy dzięki przekazywanym krytycznym uwagom. Wtedy również uznajemy, że tester, mający realny wpływ na to, jak działa produkt, staje się po części jego Twórcą, równocześnie sam nie tworząc kodu. Przypadki takie są dosyć powszechne i zakładają organizację, która za jakość nie czyni odpowiedzialnej jednej roli, ale cały zespół. W takim przypadku jest uzasadnione, że członkowie zespołu o podobnym doświadczeniu i kompetencjach, ale również o podobnym zakresie odpowiedzialności, zarabiają porównywalne pieniądze.
Innym przypadkiem zrównania pensji programisty i testera będzie sytuacja zbliżenia się do siebie ich kompetencji. Więc jeśli tester będzie miał umiejętności techniczne zbliżone do programistycznych, w tym pisanie testów jednostkowych, debugowanie czy też pisanie testów automatycznych, to głęboko wchodzi w obszar odpowiedzialności Twórcy. Znaczące rozróżnienie pensji w takim przypadku będzie etycznie nieuzasadnione.
Kiedy tester zarabia więcej od programisty?
Tester nie musi analizować swojej pensji w relacji do pensji programisty, gdy ich kompetencje są duże w tym samym projekcie i na tym samym produkcie, ale nie są to silne relacje Twórca – Krytyk. Głównie pojawia się to w szerszej, ale również bardziej technicznej ocenie produktu. Przykładem mogą być tutaj charakterystyki bezpieczeństwa czy wydajności, które dla klienta biznesowego często są tak abstrakcyjne, że nie są opisane przez wymagania. Specjaliści od tych testów nie bazują na ściśle określonych regułach do weryfikacji, a raczej na swojej całościowej wiedzy o architekturze rozwiązań i konstrukcji oprogramowania. Co warte podkreślenia, tacy testerzy nie informują, że jest problem, ale mają za zadanie wskazać podatności czy wąskie gardła. W takim przypadku w pełni zasługują na swoje pensje, które nieraz przekraczają zarobki wszystkich innych członków projektu.
Reasumując temat zarobków, można podkreślić kilka umiejętności, które predysponują do większych przychodów. Przede wszystkim są to twarde umiejętności techniczne w zakresie weryfikacji konstrukcji oprogramowania oraz miękkie umiejętności skutecznego poszukiwania rozwiązań dla problemów, które się w oprogramowaniu dostrzega.
Dodatek. Kiedy tester zarobi najwięcej i kiedy przestanie zarabiać?
Na wspomnianym na wstępie meetupie pozwoliłem sobie zadać zgromadzonym panelistom pytanie, kto będzie ostatnim pracownikiem IT – tester czy programista? Oczywiście odpowiedź można przewidzieć z racji tego, że rozmowa toczyła się wśród testerów, jednak można ją dość solidnie uzasadnić. Futurystyczny przypadek, kiedy programista zostanie w dużej części zastąpiony przez sztuczną inteligencję, pozwala nam wyobrazić sobie pewien przedział czasu, kiedy to tester będzie zarabiał krocie. Tester jako osoba, która łączy wiedzę biznesową oraz rozumie docelowe rozwiązanie, może w procesie uczenia sztucznej inteligencji odegrać kluczową rolę. Może weryfikować czy AI robi dokładnie to, czego oczekuje od niej użytkownik. Tester będzie wtedy wysoko opłacanym specjalistą z ważną funkcją w projekcie. Musimy jednak pamiętać, że AI, z racji własnej definicji oraz przypisywanych jej zdolności, przez samodoskonalenie doprowadzi do tego, że i tester w którymś momencie przestanie być potrzebny.