Dave West, CEO i Product Owner w Scrum.org, porównuje testerów do teściowej. Opowiada o nich następująco: kiedy teściowa przychodzi do Twojego domu, mówi: "Widzę kochanie, że nie zrobiłeś jeszcze ogrodu…". Takie zestawienie z jednej strony czytelnie pokazuje naszą rolę w projekcie, ale niesie też pewien ładunek emocjonalny.
Mitem jest, że Scrum nie interesuje się tytułami stanowisk. Musi to robić z kilku powodów. Jednym z nich jest konieczność zatrudnienia w zespole osoby o konkretnym zestawie umiejętności. W tym celu działy HR nie mogą powiedzieć, że szukają człowieka do sprintu, tylko że szukają osoby o konkretnych umiejętnościach, jakimi mogą być analiza biznesowa lub testowanie. W pewnym sensie, choć Scrum odżegnuje się od dzielenia ludzi na testerów, analityków i programistów, to musi uwzględniać te role.
Generalnie testerów w Scrumie nie ma, bo role sprowadzają się tylko do trzech ról: właściciela produktu, scrum mastera oraz członka zespołu deweloperskiego, nazywanych po prostu developerami.
Oczywiście obecni testerzy mogą skierować swoją ścieżkę rozwoju w każdą z tych ról. Gdybyśmy mieli szukać testerów w sprintach, pewnie najbardziej warto byłoby przyjrzeć się zakresowi obowiązków ostatniej roli, do których należą:
- tworzenie planu dla Sprintu, czyli Backlogu Sprintu;
- wpojenie jakości poprzez przestrzeganie Definicji Wykonania (Definition of Done);
- dostosowywanie swojego planu każdego dnia do Celu Sprintu,
- wzajemne rozliczanie się jako profesjonaliści w swojej pracy.
Czy jako tester umiem takie rzeczy? Czy się z nimi identyfikuję? Zapewne tak, ale brakuje w tym szczegółu.
Po części poszukując roli testera możemy zawsze spojrzeć zamiast na obowiązki, to na wartości Scruma i zobaczyć czy i tutaj odnajdę siebie.
I również tutaj raczej każdy z testerów powinien przytaknąć. Nasza praca wymaga takich umiejętności i takiej postawy. Ciągle jednak brakuje szczegółów.
Ponieważ w Scrumie nie ma roli testera, powinniśmy spojrzeć na to z perspektywy zadań testerskich w organizacji. Zajrzyjmy więc do źródła. Opublikowana w listopadzie 2020 nowa wersja podręcznika Scruma, czyli Scrum Guide usuwa wszystkie nawiązania do testowania, ponieważ odcina się od samego IT. Teraz Scrum to uproszczone ramy postępowania, które pomagają poszczególnym osobom, zespołom i organizacjom wytwarzać wartość poprzez adaptacyjne rozwiązywanie złożonych problemów.
Opis na tak wysokim poziomie powoduje, że ciężko jest użyć tej wiedzy do analizy naszych odpowiedzialności. Na szczęście w słowniku pojęć developera znajdziemy więcej o testowaniu. Mamy tam zbiór aktywności i działań projakościowych, w których obecność umiejętności posiadanych przez testera jest więcej niż pożądana.
Znajdziemy tam:
- wiele technik wytwarzania oprogramowania, które zna lub powinien znać tester, jak A/B Testing czy Acceptance Test Driven Development, a jego zaangażowanie w ich wdrożenie i prowadzenie jest kluczowe;
- techniki zorientowane na jakość kodu, które poprzez kontrolę może wspierać tester, są to TDD, testy jednostkowe Clean Code czy pokrycie kodu;
- techniki wdrażania oprogramowania, jak Continuous Delivery i Deployment, które same w sobie powinny być zautomatyzowane, ale nie jest to możliwe bez odpowiedniego ich zasilenia wiedzą testerską.
Oprócz tego znajdziemy wiele działań, które w tradycyjnych modelach przypisane są do testerów, a wśród nich automatyzację. Jest to niezmiernie ważna część całego procesu CI/CD i bez niej nie da się utrzymać jakości dostarczanego produktu
I na koniec w poszukiwaniu roli testera zachęcamy Was do przeszukania zasobów scrum.org w poszukiwaniu bardziej szczegółowych odpowiedzi na Wasze pytania odnośnie do obecności, roli i zakresu obowiązków testera w Scrumie.
Czy tester znajduje się w Scrumie? Nie ma takiej roli, ale ciągle jest taka odpowiedzialność i zbiór przypisanych do niej zadań. Zespoły Scrumowe od lat udowadniają, że nie są w stanie optymalnie działać bez zaangażowania osób, które swoje główne wysiłki kierują na kontrolę jakości. Pamiętajcie jednak, że pracując w sprincie schodzicie do jaskini głównie z programistami i umiejętności techniczne, w tym kodowanie czy rozumienie jak działa oprogramowanie, będą ważne.