Wiele książek i artykułów Scruma mówi, że nieudany sprint (gdy zespół nie ukończy niektórych funkcji z rejestru Sprint) nie jest taki zły, zdarza się od czasu do czasu i może być naprawdę przydatny, jeśli zespół uczy się na swoich błędach i poprawia coś w następujących sprintach. Zespół nie powinien być karany za niedokończenie pracy, do której się zobowiązali.
Sposób „karania” tego rodzaju zachowań polega na ograniczeniu ilości pracy, którą ci, którzy nie ukończyli, mogą podjąć kolejny sprint. Szanse na pracę nad fajnymi rzeczami znikają. Nagrodą za dobrą pracę jest więcej pracy.
Wygląda to świetnie z punktu widzenia dewelopera, powiedzmy jednak, że mamy firmę programistyczną „Scrum-Addicts LLC”, która opracowuje coś dla poważnych klientów („Money-Bags Corporation”):
Menedżerowie Scrum-Addicts sugerują stworzenie oprogramowania dla Money-Bagów. Uzgodnili listę funkcji, a Money-Bags prosi o podanie terminu wysyłki. Menedżerowie Scrum-Addicts konsultują się ze swoim zespołem scrumowym, a zespół twierdzi, że zajmie to 3 tygodnie -długie sprinty, aby ukończyć wszystkie funkcje Menedżer Scrum-Addicts dodaje 1 tydzień dla bezpieczeństwa, obiecuje wysłać oprogramowanie w ciągu 1 miesiąca i podpisuje umowę z Money-Bagiem Po 4 sprintach (termin wysyłki) Zespół Scrum może dostarczyć tylko 80% funkcji (z powodu braku doświadczenia w nowym systemie, konieczności naprawy krytycznych błędów w poprzednich funkcjach w środowisku produkcyjnym itp.) Jak sugeruje Scrum, w tym momencie produkt jest potencjalnie dostępny do wysyłki, ale Money-Bag potrzebuje 100% funkcji, jak wspomniano w umowie. Więc łamią umowę i nic nie płacą.
Scrum-Addicts znajduje się na skraju bankructwa, ponieważ nie otrzymali pieniędzy od Money-Bagów, a inwestorzy byli rozczarowani wynikami i nie chcą już dłużej pomagać firmie.
Jeśli w poniedziałek założę się o 100 $, że w czwartek będzie padać i nie pada aż do piątku, to będziesz miał prawo wziąć moje pieniądze. Jeśli zamiast szansy na hazard, potrzebujesz prognozy pogody, potrzebujemy umowy, która pozwoli mi przedstawić ci zaktualizowaną prognozę we wtorek.
Oczywiście żadna firma programistyczna nie chce być w butach Scrum-Addicts. To, czego nie rozumiem w Agile i Scrum, to to, jak sugerują zespołom radzenie sobie z planowaniem i terminami, aby uniknąć sytuacji opisanej powyżej.
Zastanów się, DLACZEGO MB chce wziąć piłkę i wrócić do domu. MB na początku nie wymagało pracy w miesiąc. SA obiecała 100% najważniejszych funkcji w ciągu jednego miesiąca i nie dostarczyła. SA wyznaczyła termin nie MB. SA nawet arbitralnie dodał tydzień do terminu. Dlaczego to termin?
Czasami, gdy konkurują o oprogramowanie, firmy ulegają pokusie popisania się i obiecania księżycowi. Specjaliści ostrożnie ustalają, czy księżyc jest w ogóle potrzebny. Jakie jest najbardziej krytyczne zapotrzebowanie na MoneyBags? 100% funkcji lub działającego produktu w ciągu miesiąca? Czy w ogóle wiedzą, co jest naprawdę ważne? Czy jakieś nadchodzące wydarzenie wyznacza trudny termin?
Gdybym był uzależnionym od Scrum-a negocjującym tę umowę, chciałbym dowiedzieć się znacznie więcej o potrzebach biznesowych Money-Bagów i nadać jej strukturę, aby zapewnić tyle elastyczności, na ile Money-Bags czuje się swobodnie. Nauczę ich, jak działa zwinny proces, aby wiedzieli, czego się od nas spodziewać.
W ten sposób, zamiast oczekiwać, że wszystko nagle zadziała idealnie w ciągu miesiąca, oczekują, że ocenią pierwszą dostawę za 1-2 tygodnie.
Podsumowując, mam 2 pytania:
Kogo winić? Menedżerowie, ponieważ ich zadaniem jest właściwe planowanie
Zespół, ponieważ zobowiązali się do wykonania większej ilości pracy niż mogliby
Ktoś inny
Każdy mógł zatrzymać tę parodię, zanim miniemy miesiąc.
Mogłem posunąć się nawet do obwiniania Money-Bags Corp za zatrudnienie zespołu, który najwyraźniej oszukańczo przedstawiał proces wodospadu jako zwinny. Sama umowa wyjaśnia, że nie jest zwinny. Planowanie do wykonania za miesiąc nie czyni go zwinnym.
Jeśli upierasz się, że jest zwinny, jest zwinny z jednym sprintem trwającym miesiąc. Którego tak, nie poleciłbym, bo to znowu to samo, co wodospad.
Co należy zrobić?
Co powiesz na zwinny? Dostarczać coś każdego sprintu? Uzyskaj informację zwrotną przed upływem terminu? Tygodniowe sprinty? Co powiesz na renegocjację smokowskiego kontraktu w chwili, gdy podejrzewasz, że termin jest w niebezpieczeństwie, zamiast ukrywać się i modlić? Przynajmniej możesz przestać marnować czas na skazany na porażkę projekt i znaleźć bardziej rozsądnego klienta.
Menedżerowie powinni przesunąć termin 2x (lub 3x) razy później niż szacuje zespół pierwotny.
Mnożniki terminów są tak samo przydatne, jak ustawienie zegarka 15 minut wcześniej, więc nigdy się nie spóźnisz. Możesz oszukać się tak długo, zanim zdasz sobie sprawę z tego, co zamierzasz.
Wczesne szacunki są błędne. Spróbuj uchwycić, jak źle. 5 tygodni, daj lub weź kilka tygodni to proste wyrażenie, które pozwala wyrazić, jak niepewna jest naprawdę data ukończenia. Zamiast próbować odgadnąć dokładnie, zgadujesz, jak dzikie są twoje przypuszczenia. Wykonaj prawdziwą pracę i uzyskaj prawdziwe dane. Następnie możesz rozpocząć szacowanie z węższym zakresem. Jeden do dwóch tygodni to dużo czasu, aby to zrobić.
Członkowie zespołu powinni być zachęcani do wykonywania wszystkich prac, do których się zobowiązali bez względu na wszystko (poprzez nakładanie kar za nieudane sprinty)
Członkowie zespołu powinni być zachęcani. Niepowodzenie, popełnienie lub w inny sposób. Zamiast budować jakiekolwiek sztuczne konsekwencje, takie jak kary, a nawet premie (marchewki i kijki), badania wykazały, że ludzie wykonujący twórczą pracę, taką jak programowanie, reagują najlepiej, jeśli zapewniają trzy rzeczy: autonomię, mistrzostwo i cel.
Daniel Pink ma na ten temat wykład TED . Dyskusja dotyczy motywacji, która nie jest zwinna, ale łatwo zrozumiałem, jak zmapować te punkty do zwinnych:
Autonomia - chcę kierować własnym życiem - pozwól mi wybrać pracę z zaległości.
Mistrzostwo - chcę być lepszy w czymś, co ważne - opinie klientów.
Cel - chcę być częścią czegoś większego niż ja - zespół współpracujący.
Zespół powinien upuścić Scruma, ponieważ nie pasuje to do polityki terminów firmy Scrum może trafić w termin dokładniej niż wodospad. Podany termin scrum może go dotrzymać. Może on spełniać tylko 1 z 47 funkcji w zależności od czasu, funkcji i umiejętności, ale może go spełnić.
Zwinny projekt może być tak zaprojektowany, że każdej nocy, gdy zespół wraca do domu, jest gotowy do wysyłki. Wydaje się to głupie, chyba że myślisz o wysyłce jako proszeniu klienta o przetestowanie i przekazanie opinii. Im szybciej to nastąpi, tym szybciej można wprowadzić zmiany. To dotyka każdego możliwego terminu. Po prostu nie każda funkcja. Ale kieruje Cię do funkcji, które mają znaczenie.
Wszyscy powinniśmy porzucić rozwój oprogramowania i dołączyć do klasztoru
Tak, jak zamknięcie mnie w pokoju z dala od prawdziwego życia sprawi, że napiszę MNIEJ kodu.
Zredagowałem tę odpowiedź do rozmiarów. Jeśli jesteś ciekawy, przeczytaj historię edycji.