Liga sprawiedliwości testów
– chmura kompetencji

Artykuły eksperckie | 11.10.2017 | Czas czytania: 5 minut

Powiem otwarcie: świat potrzebuje "Ligi Sprawiedliwości Testów", zbioru superbohaterów, czyli zespołów testowych do zadań specjalnych. A więc potrzebujemy firm, które specjalizują się w testach, które są przygotowane właśnie do tego, żeby przetestować każde oprogramowanie i zrobić to jak najlepiej. Śmiem wręcz twierdzić, że należy rozdzielić działy programistyczne od tych, które zajmują się testami i stworzyć osobne firmy. Dlaczego? Po to, żeby firmy powstałe po takim podziale mogły się jeszcze bardziej wyspecjalizować – kompetencyjnie i biznesowo. Oczywiście jest to skrajne podejście, mające na celu coś zobrazować, pewną ideę. Jeśli specjalizujemy się w dostarczaniu oprogramowania, priorytetem firmy jest właśnie oprogramowanie, nie są nim natomiast testy, co oznacza, że ich jakość może być mniejsza. Co jeśli zależy nam na tej jakości? Wtedy należy znaleźć firmę, dla której to testy są priorytetem.

Oczywiście nie musimy korzystać z usług firm zewnętrznych, gdyż przy odpowiedniej wielkości własnej firmy stworzenie centrum testów, w którym zdywersyfikowane zasoby testerskie będą wspierały inne działy w specyficznych zadaniach, wydaje się być dobrym rozwiązaniem. Trzeba mieć jednak na uwadze, że jest to również kwestia związana ze skalą zadań, bo jest to rozwiązanie drogie w utrzymaniu i wciąż istnieje zagrożenie, że pewne kompetencje testerów nie będą wykorzystane w pełni. Nawet w bardzo dużych firmach nie ma często gwarancji, że dostarczymy takiej ilości zadań, żeby wykorzystać w całości posiadany potencjał zespołu. Dodatkowo doświadczenie takiego centrum testów będzie ograniczone do projektów typowych tylko dla naszej firmy. W wypadku, kiedy trafimy na wyzwanie poza tym zakresem kompetencji i doświadczenia, które wykracza poza typowe działania w naszej firmie, znowu jesteśmy skazani na przeciętność lub drogi proces rekrutacji, zakupu narzędzi czy zdobywania nowych kompetencji.

Software Testing as a Service

Jednym z modelów, które starają się rozwiązać ten problem jest podejście STAAS (Software Testing as a Services), a także MSTAAS (Maganement Software Testing as a Services) i podobne. Ogólnie jest to model usługowy, czerpiący z filozofii chmury, nie tylko pod względem narzędzi hostowanych w chmurze, ale także tzw. chmur umiejętności. Czym się to różni od klasycznego outsourcingu polegającego na wynajęciu dwóch specjalistów do określonego projektu? Otóż zespoły budowane w celu dostarczenia usługi, jaką są testy, budowane są w taki sposób, żeby były w stanie pokryć różne wymagania względem testów w projekcie.

Wyobraźmy sobie typowy projekt – pracuje w nim dwóch naszych testerów, jednak nagle pojawia się potrzeba zwiększenia intensywności prac. Jeżeli mamy wolne zasoby, rozszerzamy zespół, natomiast jeżeli ich nie ma, to rozwiązań tego problemu mamy kilka. Po pierwsze, praca w nadgodzinach, która na dłuższą metę jest nieefektywna, gdyż zwiększa koszt roboczogodziny względem wydajności. Kolejnym wyjściem jest szukanie ludzi na rynku pracy, jednak szansa ich znalezienia w krótkim czasie, jest dość mała. Jeśli więc szukamy rozwiązania elastycznego – zarówno pod kątem czasu, jak i kosztów, pozostaje ostatecznie model usługowy. Zadania przekazujemy zespołowi, który jest gotowy do rozpoczęcia testów w krótkim czasie, dokładnie w momencie, kiedy jest to potrzebne.

Dodatkowo usługi te są skalowalne, co oznacza, że jeżeli potrzebny jest jeden specjalista, to tylko on wykonuje zadania, a jeśli potrzebnych jest pięcioro, to właśnie tylu realizuje projekt. Nie musimy się przy tym ograniczać do umiejętności dwóch konkretnych osób w projekcie, ale wykorzystujemy paletę umiejętności całego zespołu ludzi. Skuteczność wykonanej pracy, a także relacja kosztów do efektywności jest nieporównywalnie lepsza.

Zespoły testerskie w takim modelu przygotowują się w wolnym czasie do tego, żeby jak najlepiej sprostać pojawiającym się wyzwaniom. Buduje się je wokół całej palety umiejętności, tak żeby stanowiły samowystarczalny i możliwie pełny zbiór kompetencji, umiejętności i doświadczenia. Poza tym zespoły takie dysponują:

  • wypracowanymi w praktyce dobrymi praktykami,
  • własnymi narzędziami, które wybierają po wnikliwej analizie i badaniu rynku oraz potrzeb,
  • możliwością pracy w chmurze w celu budowania środowisk testowych jak najszybciej, przy jak najbardziej dokładnym odzwierciedleniu środowisk klienckich.

Wykonywane przez taki zespół usługi testowe muszą być na jak najwyższym poziomie, ponieważ ich skuteczność, a dokładnie jej wyższa wartość względem modelu standardowego jest sensem istnienia takiego zespołu. Muszą więc być lepsi, szybsi i skuteczniejsi niż inni. Taki jest właśnie cel specjalizacji firmy budującej takie zespoły.

Testy jako usługa – dlaczego nie?

Wszystko wydaje się proste i piękne. Zgłaszamy się do firmy zewnętrznej, przedstawiamy budżet na testy i określone zadania. Firma zaczyna testować, do odpowiednich zadań przekazywani są najlepsi specjaliści, a w czasie kiedy dane osoby nie są wykorzystywane, doskonalą się lub wykonują prace w innych projektach. Kiedy trzeba zwiększać zasoby, zwiększamy je, a kiedy praca nie jest potrzebna, nie wykonujemy jej (i nie płacimy za przestój). Działamy według potrzeb, budżetu, według najlepszych praktyk i umiejętności, przy ograniczeniu kosztów. Piękne? Tak, jednak jak zawsze nie ma idealnych rozwiązań. Istnieje tutaj duży problem, jakim jest brak zaufania.

Zaufanie do zespołu testowego jest krytyczne. Testerzy, żeby móc najlepiej wykonywać swoje obowiązki, muszą mieć pełną wiedzę biznesową, musi tutaj istnieć jak najlepszy przepływ informacji. Ale nie oszukujmy się – przekazywanie wiedzy o procesach, produktach, a także przenoszenie odpowiedzialności poza organizację, to nie jest prosty temat. Dla niektórych firm jest to kwestia pokonania pewnej bariery psychologicznej, dla innych będzie to bardzo poważne wyzwanie, związane z bezpieczeństwem. Trudno się takim firmom dziwić. Nie każdy jest na to gotowy, nie każdy chce zaufać, nie każdy też może pozwolić sobie na zaufanie – zwłaszcza w przypadku obszarów strategicznych, jakich testowane oprogramowanie może dotyczyć.

Inną zupełnie kwestią jest przebicie bariery związanej z zupełnie nowym modelem usługi, a więc czymś, czego klienci nie znają. Dużo łatwiej klientowi wynająć specjalistę do zespołu w formie leasingu pracowniczego, niż zaufać zewnętrznemu dostawcy i przekazać testy całkowicie na zewnątrz. Pamiętać należy jednak, że tak naprawdę zazwyczaj klient nie potrzebuje uzupełnienia wakatów w swoim projekcie, ale ma konkretny problem, który chce rozwiązać. Problemem w tym przypadku będzie przetestowanie danej aplikacji – w jak najlepszy sposób, przy ograniczonych zasobach. A przecież nie kupuje się browaru jeśli chce się tylko napić piwa. Model STAAS będzie coraz popularniejszy, bo jest racjonalny i optymalny w coraz bardziej specjalizującym się biznesie.

Na koniec należy więc postawić następujące pytanie: nie czy, ale kiedy będziemy w stanie odejść od modelu alokowania konkretnych ludzi na dane miejsce, zastępując go modelem, w którym dostarczamy konkretne rozwiązania danych problemów? Jak pokazałem wcześniej, nie zawsze jest to proste, jednak z całą pewnością elastyczne modele współpracy, w obliczu coraz bardziej skomplikowanych zadań, będą coraz bardziej pożądanym rozwiązaniem.

Wiem jedno: kiedy mam wybór jako tester, być dobry we wszystkim, czyli tak naprawdę w niczym, albo być rycerzem Jedi w swojej specjalizacji, wolę być właśnie rycerzem Jedi. I taki jest moim zdaniem przepis na sukces. W każdym biznesie.

Więcej na temat testów, można przeczytać w pierwszej części artykułu.

Autorem wpisu jest

Leszek Zieliński, JCommerce

Software Quality Assurance Engineer

Od 2011 roku realizuje i kieruje projektami QA. Ekspert w obszarze testów manualnych i automatycznych. Zafascynowany głównie rozwiązaniami BDD. Absolwent Politechniki Śląskiej w Gliwicach. Po godzinach działacz społeczny, muzyk, trójboista.

Komentarze

  • Aktualnie brak komentarzy.

Skontaktuj się z nami