Jak często zwalniasz podczas sprintu. Dopiero pod koniec sprintu lub za każdym razem, gdy funkcja jest gotowa. Jak radzić sobie z wydaniami poprawek?
Jak często zwalniasz podczas sprintu. Dopiero pod koniec sprintu lub za każdym razem, gdy funkcja jest gotowa. Jak radzić sobie z wydaniami poprawek?
Odpowiedzi:
TL; DR: Zwolnij w razie potrzeby
Wydajemy wydania, ilekroć jest to opłacalne. Czasami oznacza to wykonanie wydania po zakończeniu pojedynczej funkcji lub naprawy błędu. Czasami oznacza to wydanie zestawu funkcji i / lub poprawek błędów.
Nie oznacza to, że często mamy „sytuacje awaryjne”, które wymagają szybkich wydań. Oznacza to, że ciężko pracowaliśmy, aby ułatwić wydawanie. Nasz kod jest testowany, oznaczany i pakowany przy każdej kompilacji. Używamy zautomatyzowanych testów akceptacyjnych, dzięki czemu rozwinęliśmy dużą pewność co do kodu, który pomyślnie przeszedł testy. Ponieważ nasze pakiety są natychmiast dostępne za pośrednictwem lokalnego repozytorium yum, wdrożenie wydania jest banalne.
Nigdy podczas. To narusza podstawową zasadę „sprintu”. Biegniesz, dopóki nie skończysz tego, co zobowiązałeś się zakończyć. Po zakończeniu jest naprawdę gotowe i działa. Następnie możesz go zwolnić.
Wydanie może być osobnym rodzajem sprintu, w którym rzeczy są pakowane do wydania.
Wydania poprawek mogą być tylko krótkimi sprintami. Brak regularnego harmonogramu sprintu o tej samej długości jest przez wielu uważany za zły pomysł. Dlatego zwykłą zasadą jest, że poprawki błędów to po prostu prace o wysokim priorytecie, które mają miejsce podczas następnego sprintu.
Jeśli jest to nagły wypadek, dzieje się zbyt wiele rzeczy - wsparcie i rozwój - i powinieneś rozważyć zmianę organizacji, aby działało mniej.
Jeśli praca, do której zobowiązuje się zespół, sprzyja wykonywaniu wielu wydań w ramach sprintu, zwalniaj go tak często, jak chcesz.
To samo dotyczy wydań naprawiających defekty - jeśli warto je wydać, zrób to.
Ostatnia praca Agile, w której pracowałem, wydawała każdy sprint; kod był zamrażany co drugi czwartek (dwutygodniowe sprinty), a następnie produkt był pakowany i publikowany na serwerze UAT do współpracy z naszymi klientami. Było to podczas początkowego rozwoju produktu; w przypadku dojrzałego produktu, zwłaszcza programu do dystrybucji, a nie aplikacji internetowej, prawdopodobnie nie chciałbyś obciążać użytkowników aktualizacją co dwa do trzech tygodni.
Praktycznie wszystkie nasze wydania zawierały mieszankę punktów fabularnych i wad (błędów). Wady liczone jako „godziny nieidealne”; w ciągu dnia roboczego jest 5 idealnych godzin, co oznacza bezproblemowe kodowanie nowej pracy punktowej. Pozostałe trzy do czterech godzin dziennie to spotkania, dyskusje, projektowanie, czasem „kolce” (ukierunkowane badania / rozwój koncepcji) i praca nad wadami; rzeczy, które przyczyniają się do lepszego produktu i są niezbędną częścią procesu, ale po prostu nie mogą wziąć całego sprintu całego zespołu. Jedyny raz, gdy robiliśmy wydania tylko dla defektów, było wtedy, gdy nie było żadnej pracy w backlogu w IPM; potem po prostu zaplanowaliśmy sprint QA, w którym poinstruowano nas, aby „zabić jak najwięcej defektów, jak możesz”. Ponieważ brak gotowości do spełnienia jest ZAWSZE winą PO (i PO działała dla klientów), możemy po prostu wydać zawiadomienie o zmianie umowy i pracować z tym, co mieliśmy. Oczywiście, po zakończeniu prac nad fabułą i opracowaniu „gwarancji” pojawiły się wady.
W dobrze zarządzanym projekcie Agile nigdy nie powinno zabraknąć wymagań; zaległości powinny zawsze mieć gotową do sprintu pracę. Ale czasami OP zamienia się w wymagania produkcyjne; czasami licencjobiorcy / testerzy wstrzymują publikowanie artykułów do zaległości rozwojowych z powodów związanych z jakością wymagań lub konfliktami historii; czasami zespół decyduje, że musi „zagłębić się” w historię, która nie była dobrze zdefiniowana ani dobrze oszacowana, i nie ma czegoś, co mogłoby łatwo podjąć pozostałe cykle. Krótko mówiąc, nawet w Agile zdarza się gówno.
Co rozumiesz przez wydanie? Jeśli masz na myśli PSP - prawdopodobnie produkt możliwy do wysyłki, masz dwie opcje:
Główną różnicą między poziomem 2 a poziomem 3 jest to, że na poziomie 2 musisz włożyć trochę wysiłku, aby zrobić końcowy PSP pod koniec sprintu, ale na poziomie 3 początkowo wkładasz trochę pieniędzy i wysiłku na swoje narzędzia i konfiguracje i przygotowałeś PSP cały czas automatycznie = nie wymaga ręcznego wysiłku. Osiągnięcie poziomu 3 jest rzadkością.
W Scrumie nie ma absolutnie żadnych zasad, kiedy można wdrożyć nowe funkcje. Każdy zespół musi mieć „definicję ukończenia”, która zawsze powinna zawierać pewne kryteria dotyczące testowania. Po „zakończeniu” funkcji jest ona gotowa do rzeczywistego świata i jeśli nie ma żadnych innych zależności ani warunków, które należy spełnić, zanim będzie można ją wdrożyć, nie ma powodu, aby czekać na zakończenie sprintu wdrożyć to.
Nic z tego nie oznacza, że nie jest prezentowany na spotkaniu Przegląd / Planowanie Sprint. Koncepcja polega na tym, że wszystko, co Zespół ukończył, jest pokazywane PO (i innym MŚP będącym klientami), aby mogli włączyć go do swojego rosnącego zrozumienia systemu w miarę jego ewolucji.
Po kilku tygodniach znaleźliśmy dobre rozwiązanie, które odpowiada naszym potrzebom. Decydujemy się wydać, kiedy tylko chcemy. Jak to robimy:
Otóż to. Używamy git i maven jako systemu CI i mamy dobre pokrycie testowe. Co jest jednym z powodów, dla których możemy to zrobić.
Odpowiedź na pytanie, które ma prawie 2 lata, może być nieco zbędna, ale miejmy nadzieję, że dodając wartość dla innych, którzy przyjdą na to pytanie, chciałbym dodać około 2 centów. :)
Aby odpowiedzieć na pytanie: najlepiej jest zwolnić to, do czego zobowiązano się w sprincie, pod koniec tego sprintu. W ten sposób łączy się ze wszystkimi innymi częściami / procesami / wytycznymi scrum, które mają na celu uzyskanie najlepszej wartości biznesowej we właściwym czasie.
ALE sytuacje kryzysowe, błędy, nieoczekiwane zdarzenia itp. Mogą zmusić twoją rękę, dlatego przydałaby się koncepcja „planowania wydania”. Z „Planowaniem wydań” nie mam na myśli planowania typu wodospadu, ale raczej planowania oczekiwań, które mogłyby pomóc w zarządzaniu zaległościami produktu i priorytetem historii w sprintach.
Ale być może komentarz Davida do tego pytania jest czymś, co najlepiej rozważyć. Scrum nie zawsze jest właściwą odpowiedzią.