Scrum, jako metodologia zarządzania projektami, w jaki sposób „sprzedałby” go programistom w zespole, który jest dość zadowolony z obecnej sytuacji?
Łatwo wydaje mi się wyjaśnienie naszemu menedżerowi produktu, w jaki sposób Scrum pozwoli mu otrzymywać regularne wydania, zmieniać wymagania i zachęcać zespół do skupienia się na najważniejszych tematach. Łatwo było mi wyjaśnić, co TDD lub Continuous Integration wnoszą w codzienne życie programisty.
Ale jak można przekonać programistów do przyjęcia Scruma? W jaki sposób Scrum ułatwiłby im życie?
Złamanie wielkiego celu („załatwienie oprogramowania”) na mniejsze części - historie - i podjęcie decyzji, które z nich wykonać podczas bieżącego sprintu, poprawia wydajność i zmniejsza stres. Kiedy wiesz dokładnie, co powinieneś teraz robić , nie musisz się stresować i możesz skupić się na robieniu małego kawałka zamiast czuć się przytłoczonym dużą całością.
źródło
Stosy rang / zaległości zapobiegają marszom śmierci
Jako programista „destrukcyjny wzorzec”, który najbardziej widzę w tworzeniu oprogramowania, występuje wtedy, gdy jakiś „zewnętrzny kontroler” (np. Zarządzanie projektami, zarządzanie wykonawcze) bardzo się ekscytuje faktem, że „ulubiona funkcja” nie chce się włączyć ” data kalendarzowa ”i zarządza marsz śmierci.
Scrum, ponieważ zajmuje wysoką pozycję na liście zaległości, pomaga deweloperom proaktywnie zarządzać napięciem na dwa sposoby. Po pierwsze, możesz zaliczyć „ulubioną funkcję” wysoko w zaległości, aby najprawdopodobniej był szczęśliwy. Po drugie, daje bardzo wizualną i konkretną odpowiedź na „skoro przesunęliśmy„ migające widżety ”na rangę 1, jest bardzo prawdopodobne, że nie dostaniemy się do„ odbijających się króliczków ”w tym sprincie, ponieważ teraz ma rangę 7. Są czujesz się swobodnie z tym kompromisem? ”
Przekonałem się również, że przy krótkich sprintach „kontrolery zewnętrzne” są mniej zaniepokojone odraczaniem prac. Jeśli „migające widżety” nie zmienią się w „kamień milowy 1”, a „kamień milowy 2” nie skończy się przed upływem 9 miesięcy, sponsor „migających widżetów” bardzo się denerwuje. Ale jeśli „migające widżety” mają stos 7 na miejscu zamiast 1, ponieważ tak naprawdę jest 6 ważniejszych rzeczy, które należy zrobić w pierwszej kolejności, oznacza to, że prawdopodobnie dojdziemy do tego w sprincie + 1 lub w najgorszym sprincie + 2, co oznacza pokaże się za 12 lub 18 tygodni od teraz (przy użyciu 6-tygodniowych sprintów). Z mojego doświadczenia wynika, że czekanie 3 miesięcy jest „nie do przyjęcia” dla niecierpliwych - poza tym w modelu „wodospadu” trwającym ponad 3 miesiące,
Wreszcie, jeśli zbliżamy się do końca sprintu, a rzeczy zajęły dłużej niż się spodziewaliśmy, bardzo miło jest móc przesunąć pozycje 5-6-7 do następnego sprintu i upewnić się, że ukończyliśmy 1-2-3 -4 o wysokiej jakości i bez 70 godzin tygodni. W końcu z pewnością dotrzemy do 5-6-7 następnego sprintu. Ponownie, biorąc pod uwagę krótsze ramy czasowe zaangażowane w odroczenie, „kontrolerzy zewnętrzni” są na ogół wygodniejsi i nie nalegają, abyśmy przerzucili kamień milowy dwa tygodnie i co wieczór zamawiali kolacje „po prostu przez to przepchnąć”.
źródło
Ludzie w zespole Scrum mogą sami decydować o wielu rzeczach: co zostanie zrobione podczas następnego sprintu, jak przełamać tę historię w zadaniach, kto nad czym pracuje itp. To je wzmacnia i jest prawie dokładnie sprzeczne z mikro -zarządzanie.
źródło
Fakt, że wymagania zmienią się, jest brany pod uwagę od samego początku. Programiści nie muszą tworzyć szczegółowych specyfikacji z dokładnymi szacunkami, a następnie spędzają tygodnie na opracowywaniu funkcji, aby zdać sobie sprawę, że klient zmienia zdanie, gdy tylko zobaczy wynik ...
źródło
Dla mnie samodzielne przydzielanie zadań z zaległości jest największym punktem sprzedaży z punktu widzenia programisty. Ponadto zażyłość z klientem / właścicielem produktu pomaga zrozumieć większy schemat rzeczy.
źródło
Kilka rzeczy:
Opierając się na punkcie Xaviera dotyczącym zmieniających się wymagań od samego początku - atmosfera mniej polityczna rozwija się, gdy wszyscy przyjmują od początku, że niektóre rzeczy nie będą takie, jak oczekuje klient. Szybka dostawa i przegląd oznaczą, że koszt niewłaściwej komunikacji jest niski, a zamiast grać w obwinianie, programiści mogą po prostu zmieniać rzeczy, aby działały zgodnie z oczekiwaniami klienta.
Punkty historii! Który programista nie lubi zdobywać punktów za robienie rzeczy !!?! Poważnie, to lepsze niż zdobywanie odznak w SC2 lub Przepełnieniu stosu.
źródło
Jest kilka rzeczy, które jako programista lubię w scrum.
Deweloperzy zwykle otrzymują więcej informacji z góry. Właściciel produktu musi wyjaśnić całą pracę, która zostanie wykonana podczas następnego sprintu, wystarczająco szczegółowo, aby umożliwić dobre oszacowania.
Szacowanie w samą porę oznacza, że są one dość dokładne. Każdy zwykle ma dość dobry pomysł na to, co zostanie ukończone w sprincie. Daje to programistom i kierownikom projektów narzędzia, które pozwalają im stawić czoła nieuzasadnionym wymaganiom.
Miło jest cofać się co trzy do czterech tygodni i brać oddech i przynajmniej zmieniać tempo.
Samoorganizujące się zespoły wydają się dawać nieco więcej różnorodności w pracy.
Teoretycznie przynajmniej podczas sprintu jest mniej przerw i „sytuacji awaryjnych”.
Codzienne spotkanie na stojąco zmusza programistów do wypowiadania kilku słów każdego dnia.
Postępy są łatwiejsze, ponieważ historie są wyraźnie kończone i recenzowane na końcu każdego sprintu.
Wykresy spalania są dość skutecznym lekkim sposobem śledzenia postępów.
źródło
Zaletą dla programistów jest wczesna informacja zwrotna (od klienta, testera, właściciela produktu itp.).
Również jako programista zawsze jestem zainteresowany robieniem rzeczy krok po kroku bez rozpraszania uwagi. Scrum zapewnia to.
PS: scrum nie jest metodologią, jest strukturą.
źródło