Temat: Jak przekonać zespół do posiadania jasnego kryterium...
Myślę, że trochę odchodzimy od tego o co pytałem - o własne doświadczenia z przekonywaniem zespołów, które bez entuzjazmu podchodzą do pewnych spraw (tutaj do kryterium ukończenia), o propozycję które mógłbym rozwinąć i wypróbować - szukam czegoś o czym nie pomyślałem :)
Zdaję sobie sprawę, że znajomość sposobu pracy zespołu o którym mówię oraz sytuacji w której się znajduje byłaby pomocna, natomiast nie jestem w stanie opisać wszystkiego w tym wątku w sensowny sposób :)
Z kwestii które poruszyłeś widzę, że rozumiem to tak samo jak Ty. Nie wspomniałem tylko, że zespół, który będę chciał przekonać nie pracuje w pełni zgodnie ze SCRUM-em. Raczej jest to pewien zwinny proces, pośredni etap przed przejściem na SCRUM-a (co jak wszyscy wiemy nie jest takie proste).
Od razu wyjaśniam - nie chodzi o robienie SCRUMBut tylko o to, że organizacja która mocno tkwiła w waterfall-u nie może przeskoczyć od razu w tworzenie oprogramowanie zgodnie ze SCRUMem (nawyki-również myślowe, istniejąca baza kodu, etc.).
SCRUM Guide dopuszcza taką możliwość - wiemy dlaczego to robimy, wiemy co trzeba poprawić/zmienić, robimy ale to trwa. Najważniejsze kryterium jest spełnione - dostarczamy działające oprogramowanie po każdej iteracji, tylko czasem coś wypływa przy wdrożeniu (ktoś nie pomyślał, że dana rzecz też jest częścią DONE w odniesieniu do danego elementu backloga).
Co do Twojej odpowiedzi to mam kilka krótkich uwag:
Krystian K.:
Aczkolwiek w sytuacji gdzie te testy ma pisać niedoświadczony tester, który na dodatek jest jedynym testerem z zespole wartość dodana jego pracy będzie mała. Przecież się nie sklonuje.
...
Jeden niedoświadczony tester ze stosem zadań przypada na ilu programistów?
...
Jednostkowe jak najbardziej są ich domeną, ale akceptacyjne? To dosyć niebezpieczne. Deweloperzy "wiedzą" jak działa aplikacja, więc zrobią happy path testing. Taka natura ludzka.
Włączanie niedoświadczonych ludzi w pojedynkę do zespołów Scrum jest kiepskim pomysłem. Oni mają mieć wszystkie umiejętności pozwalające na dostarczenie potencially shipable increment, a nie się uczyć ich w trakcie.
>
Niedoświadczony tester może nie wiedzieć, ze ta sytuacja powinna go zaniepokoić.
True, True - natomiast pamiętajmy, że nie zawsze mamy wszystko co chcemy. Organizacja ma taką a nie inną politykę, szef ma takie a nie inne zdanie mimo argumentacji, więc jedyne co możemy... to zrobić najlepszy użytek z tego co mamy by dostarczyć klientowi najlepszy możliwy produkt w najkrótszym możliwym czasie - to jest w moim zrozumieniu self-organizing.
Zgodzę się, że jest pewne niebezpieczeństwo jeśli programiści wykonują testy (poza jednostkowymi). Natomiast czasami nawet muszą.
Patrząc od strony oczekiwanego rezultatu danego sprintu, role w zespole się zmieniają - zespół ma dostarczyć działający inkrement.
Od razu wyjaśniam - nie jestem naiwny - programista nie będzie tak dobry jak tester, natomiast nie oznacza to, że nie jest w stanie wykonywać takiej pracy jeśli rzeczywiście jest taka potrzeba.
Z ciekawych rzeczy... polecam "Google TechTalks - Agile Testing" na YouTube jeśli ktoś nie widział
http://www.youtube.com/watch?v=bqrOnIECCSg
Krystian K.:
Chyba pierwszy raz widzę konfigurację, gdzie DONE nie jest ostatnim krokiem. Osiągniecie definicji DONE jest celem każdego taska i PBI. Poza tym jak można "dopinać testy" po osiągnięciu stanu DONE? Przecież to jest nielogiczne. Założę się, że są sytuacje gdzie PBI są w Done, tester nie ma czasu i programiści odklikają ten etap do Accepted, bo "jak ostatnio patrzyłem to działało, więc jest ok".
Proponuję zamienić kolumny miejscami i jeżeli nie zostały wykonane testy akceptacyjne, PBI i taski zostają w Testing albo Acceptance. To zwróci uwagę na testy.
Nie widzę tutaj niezgodności - raczej pewne niezrozumienie.
DONE = NO WORK REMAINING - jasne. W odniesienie do tego co napisałem na DONE składają się te wszystkie 4 kroki - po prostu narzędzie którego używamy ma takie stany elementów i to Cię zmyliło.
Krystian K.:
Rozwiń proszę: "zebrana akceptacja" i "decyzję danego programisty czy pisać testy, czy trzymać się standardów, czy refaktoryzować etc.".
Przez "zebrana akceptacja" rozumiem zebrane wspólnie z klientem testy akceptacyjne. Mówiąc w odniesieniu do opowieści użytkownika (User Stories) to co wpisujesz na odwrocie i jest dla Ciebie wskazówką, kiedy wykonana funkcjonalność to jest to czego potrzebuje klient.
Przez "decyzję danego programisty..." rozumiem sytuację, kiedy firma nie ma (jeszcze) polityki dotyczącej tego czy pisać testy czy nie, stosować dane praktyki i wzorce czy nie, przestrzegać danych konwencji nazewniczych czy nie, etc. Decyzja pozostawiona jest programistom lub konkretnym zespołom, natomiast nie ma przymusu - wiemy, że to słabo działa i próbujemy to z niektórymi kolegami zmienić. W tym temacie idziemy w dobrą stronę, natomiast teraz jest jak jest.
Dzięki Krystian za poświęcony czas
pozdrawiam
Michał