Zatem sprint scrumowy to ustalony okres, w którym należy wdrożyć określony zestaw funkcji. Zespół scrum składa się ze wszystkich osób zaangażowanych w dostarczanie tych funkcji, z których większość to zazwyczaj programiści i testerzy.
Po ustaleniu tych zasad można się zastanawiać, jak utrzymać tych wszystkich ludzi w trakcie całego sprintu. Na początku sprintu nie ma jeszcze nic do przetestowania, a pod koniec sprintu zazwyczaj nie ma nic do dodania / naprawienia.
Widziałem 2 podejścia, aby sobie z tym poradzić, ale żadne z nich nie wydaje się prawidłowo rozwiązać problemu.
1) Pozwól członkom zespołu zdecydować, co robić, gdy nie będą wykonywać zadań.
Cons:
- Jeśli to, co robią, nie jest dokładnie zaplanowane (tj. Poważne refaktoryzacja, przejście na nowe ramy testowe), ich praca może okazać się bezużyteczna lub utknąć
- Z drugiej strony planowanie takiej pracy może zająć dużo czasu, a klient może być rozczarowany widokiem zespołu tracącego czas na coś, co nie przynosi natychmiastowej wartości
- Takich zadań zwykle nie da się dokładnie oszacować, dlatego pracownicy bezproblemowi mogą łatwo spędzać czas na oglądaniu kotów na YouTube bez odzwierciedlania ich na tablicy scrumowej lub gdziekolwiek indziej
2) Zrób miejsce w sprincie tylko na rozwój i rozpocznij testowanie po zakończeniu sprintu (gdy programiści zaczną pracować nad funkcjami od następnego sprintu)
Cons:
- Podczas opracowywania funkcji dla bieżącego sprintu programiści rozpraszają się, naprawiając błędy z poprzedniego, i mogą nie wykonać pracy, która została oszacowana podczas bieżącego sprintu
- Potrzebne są dwie tablice Scrum: jedna dla bieżących funkcji sprintu i jedna dla poprzednich błędów sprintu
Więc moje pytanie brzmi: jak właściwie rozdzielić pracę podczas sprintu między programistów i testerów, aby nikt nie był przeciążony pracą ani nie skończył się bez zadań w dowolnym momencie? Czy istnieją sposoby na ulepszenie opisanych powyżej podejść? Czy są jakieś lepsze podejścia?