Temat: Scrum a duże projekty
Dobra, skoro już zostałem zaproszony do grupy, to się udzielę ;)
Z mojego własnego skromnego doświadczenia przy robieniu sporego projektu w Scrumie mam kilka luźnych wniosków.
1. Layout NAJPIERW. Trzeba to twardo wymusić na kliencie, jako że layout definiuje (doprecyzowuje) funkcjonalność od strony użytkownika końcowego, a więc także user experience. Póki nie ma layoutu, nie ma możliwości wyobrażenia sobie jak tak naprawdę ma wyglądać "flow" pracy z aplikacją, więc programiści swoje (wizje implementują), klient swoje (sobie wyobraża), a grafik swoje (zaprojektuje).
2. W dużych projektach często mamy sytuację taką, że trzeba zrobić małe badanie czy poszukiwanie możliwych rozwiązań danego problemu - nazwijmy to dalej "research". Wyniki tak zrobionego researchu, z jasną listą możliwych rozwiązań, trzeba potem przedstawić klientowi (mam na myśli product ownera), dostać od niego decyzję (którą z propozycji wybiera) i zaimplementować.
Otóż, nie powinno się researchu oraz implementacji wciskać w jeden sprint. Właśnie z powodu istnienia w tej pętli ośrodka decyzyjnego, nad którym nie mamy żadnej kontroli - product ownera - i który może (czasem nawet powinien) podejmować decyzję dłużej, niż planowany czas sprintu. Czyli research w sprincie X, natomiast implementacja rozwiązania w sprincie Y, który będzie pierwszym sprintem rozpoczętym po podjęciu decyzji.
3. Programistów demoralizuje i irytuje brak jasno zdefiniowanych rzeczy do zrobienia. To akurat zauważyłem w poprzedniej firmie, gdzie o Scrumie nikt nie słyszał. W każdym razie podczas każdego ze sprintów powinna być pula zadań "to be done" (czy też "can have"), do której programiści mogą sięgnąć w przypadku braku zadań do robienia z aktualnego springu. Zarówno w przypadku braku krótkotrwałego (coś "się mieli" i do tego czasu programista nie może w "tym" grzebać), jak i długotrwałego (zadania ze sprintu zostały skończone mocno przed czasem).
Fajny patent zastosował w naszym sporym projekcie Piotrek - pula "to be done" zawiera nierzadko zadania, które i tak pojawią się w przyszłych sprintach, już jako "normalne" (must/should have). Dzięki temu wiemy, że wykonywane zadania autentycznie dodają wartości aplikacji i nie są jakimiś wziętymi z powietrza zabójcami czasu ;)