Jak sprawić, by Scrum pracował dla zespołu ze zdefiniowanymi rolami?

13

Kilka podstawowych informacji

Jestem częścią wewnętrznego zespołu programistów. Składa się ona z

  • 5 programistów (z doświadczeniem od 2 do 5 lat, jestem jednym z nich)
  • 3 pracowników wdrożeniowych (zajmują się wdrażaniem oprogramowania i szkoleniem)
  • i 1 kierownik projektu.

Opracowujemy wiele małych i średnich projektów, a ich harmonogramy zwykle się pokrywają. Rozwój wygląda następująco:

  1. „Klient” daje nam zestaw wymagań początkowych
  2. Rozwijamy system do wspomnianej specyfikacji
  3. Przedstaw ten system „klientowi”
  4. „Klient” stawia nam dodatkowe wymagania w oparciu o wspomnianą prezentację
  5. Powtarzaj 2-4, aż „klientowi” skończą się nowe wymagania lub data docelowa wdrożenia jest bliska
  6. Skonfiguruj i wdróż system

To, wraz z faktem, że to „klient” przez większość czasu dotrzymuje terminów (co jest czerwoną flagą, z tego, co widzę tutaj w Programistach i PM.SE) i nie przestrzegamy określonych metodologii rozwoju do kodu kowboja, prawie niemożliwego do utrzymania kodu i błędów, które dostają się między innymi przez produkcję. Dlatego zdecydowaliśmy się na metodologię opartą na Agile, taką jak Scrum.

Dlaczego Scrum?

To była inicjatywa naszego menedżera i wydaje się, że wszyscy się z tym zgadzają, biorąc pod uwagę naszą obecną sytuację.

Problem ze Scrumem

Niektóre elementy Scrum są w konflikcie z naszą obecną konfiguracją, której nie jesteśmy w stanie łatwo rozwiązać, w szczególności charakter „zwinnych transakcji” programistów Agile. Zespół wdrożeniowy nie wie, jak programować, a programiści mają umiejętności komunikacyjne i szkoleniowe poniżej średniej. A ten skład nie zmieni się w najbliższym czasie.

Pytanie

Czy wpłynęłoby to na skuteczność Scrum jako metodologii? Czy należy wprowadzić inne zmiany, aby to zrekompensować? Czy może lepiej byłoby porzucić myśl i pomyśleć o innej metodologii?

Revenant
źródło
17
Twoje „Dlaczego Scrum?” akapit jest dość ważny i jest teraz zasadniczo pusty. Wygląda na to, że Twojemu menedżerowi nie podoba się to, co obecnie robisz, i dlatego losowo zdecydował Scrum, ponieważ Scrum.
RemcoGerlich,
4
dla specjalistów w zwinnym (scrum lub innym) środowisku jest określona rola / miejsce. Nie pomyl się z faktem, że ludzie powinni wskakiwać na rzeczy, które nie są ich specjalnością, na „zakaz” specjalistów. Poza tym, czy mógłbyś wyjaśnić, dlaczego wybrałeś scrum, a nie kanban? świeci mi to, jak przy ciągłym powtarzaniu wymagań, lepsze dopasowanie niż ze wstępnie zdefiniowanymi sprintami, które najlepiej działają ze stałymi wymaganiami ...
Elias Van Ootegem 25.04.16
12
5 programistów, ale nie jeden tester?
Apfelsaft,
8
@Odważne, że mylisz jack wszystkich transakcji (indywidualnych) z interdyscyplinarnym (zespołowym).
guillaume31
6
Popularność. Zawsze najlepszy sposób na wybór czegokolwiek.
Robert Harvey

Odpowiedzi:

17

W rzeczywistości twój obecny sposób pracy nie jest tak daleko od Scruma, jak mogłoby się wydawać.

W Scrumie otrzymujesz również wstępny zestaw wymagań, wdrażasz je i demonstrujesz wynik, a na podstawie demonstracji możesz otrzymać nowe wymagania lub interesariusze mogą zdecydować, że produkt jest wystarczająco dobry, aby nie było potrzeby dalszego rozwoju.
W twojej sytuacji „klient”, o którym mówiłeś, może otrzymać rolę właściciela produktu w Scrumie (wydają się już wypełniać tę rolę, ustalając priorytety w projekcie i decydując, kiedy jest gotowy do wdrożenia).
Jedną dużą zmianą może być długość iteracji. W Scrumie iteracja powinna trwać od 1 do 4 tygodni.

Jeśli chodzi o skład zespołu i błędność typu jack-of-all-trade, Scrum nie wymaga od wszystkich bycia jack-of-all-trade. Scrum wymaga jedynie, aby zespół jako całość posiadał wszystkie wymagane kompetencje, aby uzyskać produkt z listy wymagań do czegoś, co zostało / może zostać wdrożone.
W twojej sytuacji mogę łatwo zobaczyć zespół na projekt składający się z jednego lub więcej programistów (wykonujących głównie prace związane z wdrażaniem i testowaniem) i członka „personelu wdrożeniowego”, który koncentruje się głównie na tworzeniu podręczników i materiałów szkoleniowych dla funkcji, które programiści wdrażają teraz.

Po tym, jak klient / właściciel produktu zapali zielone światło dla wdrożenia, prace zespołu scrum będą w większości wykonane, aby programiści mogli przejść do innego projektu (i być dostępni tylko na żądanie w celu rozwiązania problemów po wdrożeniu) i wdrożenia personel może przejść do przeprowadzenia szkolenia i wspierania wdrożenia.

Fakt, że upłynął termin, nie jest prawdziwym problemem, pod warunkiem, że istnieje wystarczająca elastyczność w zakresie funkcjonalności w tej wersji.

Bart van Ingen Schenau
źródło
2
Jedną zmianą wprowadzoną przez Scrum i inne metodyki zwinne jest to, że produkt / wszystkie funkcje muszą być „wykonane” - w stanie możliwym do wysyłki - na końcu każdej iteracji.
stannius
5

Pytasz o alternatywy, więc powiem eXtreme Programming (XP). W szczególności myślę, że programowanie w parach może ci tutaj pomóc.

Łącząc osoby o różnych umiejętnościach, nie ma znaczenia, jakie umiejętności: parzenia kawy, testowania, szkolenia itp. Możesz rozprowadzić umiejętności w zespole.

Ale szczerze mówiąc, nie brzmi to tak, jakby SCRUM było dla ciebie tak odległe. Częścią SCRUM jest elastyczność i znajdowanie tego, co jest najlepsze dla Twojego zespołu. Część XP szanuje twój zespół i dostosowuje się. Może za 100 lat możemy mieć bardziej rozwinięty zawód z twardymi i szybkimi zasadami (choć w to wątpię), ale na razie wszystko, co dla ciebie działa, to wszystko, co mamy. Ważne jest, aby mieć pętle zwrotne. Jeśli coś nie działa, zespół musi to omówić i wypróbować nowe rzeczy, aż znajdą coś, co działa.

Encaitar
źródło
3
+1 za XP. Pytanie stwierdza, że ​​głównym powodem przyjęcia Scruma jest to, że „nie przestrzegamy określonej metodologii rozwoju, co prowadzi do kodowania kowbojów, prawie niemożliwego do utrzymania kodu i błędów, które pojawiają się podczas produkcji” - Scrum zrobi dla tego niewiele lub nic, ponieważ nie określa żadnych praktyk technicznych i tylko praktyki techniczne naprawią te problemy. Istnieje wiele innych zwinnych frameworków, z których XP jest prawdopodobnie najlepszym kandydatem, ponieważ jest on najbardziej zbliżony do struktury Scruma.
Jules
3

Jak sprawić, by Scrum pracował dla zespołu ze zdefiniowanymi rolami?

Po prostu to zrób. Według przewodnika Scrum każdy jest deweloperem, ale z powrotem tutaj, na Ziemi, różni ludzie przyniosą różne rzeczy do stołu. I prawie dostałem lynched kiedy sugerował, że niektórzy ludzie są naprawdę testerów podczas gdy inni piszą oprogramowanie.

Niektóre rzeczy, które możesz chcieć rozwiązać:

Sprinty

Wygląda na to, że masz początkową fazę rozwoju, po której następuje seria pozornie sprintów. Zastanów się nad rozwiązaniem tego. Klient nie tylko zobaczy coś wcześnie, ale także lepiej wyczujesz etapy rozwoju.

Naprawiono terminy

To pojawia się od czasu do czasu i rzeczywiście jest upartym cierniem u boku deweloperów, gdzie obecnie pracuję. Scrum ustala prognozy dla sprintu - nic więcej. Tak, możesz trafić w cel po serii sprintów, ale gdy klient przyjrzy się wcześniejszym wersjom, zakres prawdopodobnie zacznie znacznie się pełzać. Nie jest to problem sam w sobie, ale należy uświadomić klientowi, że dalsze prace będą odbywały się w późniejszych sprintach i przekraczają znane wymagania.

Robbie Dee
źródło
Żeby wskazać coś, co wydaje się okropną chytrością Scruma: nie wszyscy są programistami - możesz i będziesz mieć wyspecjalizowanych członków, ale oni są częścią ZESPOŁU programistycznego i są odpowiedzialni za wyniki sprintów tego zespołu. W naszym zestawie Scrum testerzy są zwykle za kilkoma sprintami pod względem tego, nad czym pracują w porównaniu z programistami, ponieważ nie mogą przetestować tego, co nie zostało zrobione, ale tworzą plany testowe i możliwe dane testowe, których będą potrzebować. Podczas gdy zajmują się głównymi funkcjami, przechodzimy do starszego trybu naprawy błędów i przygotowujemy łatkę, gdy nadrabiają zaległości do wydania.
Duffy,
3
W rzeczywistości „zlinczowano cię” za to, że sugerujesz, aby testerów traktować jak kurczaki, a nie świnie (przynajmniej dlatego zlekceważyłem tę odpowiedź) ...
David Arno
@Duffy Zgadzam się - nie ma innych tytułów niż deweloper, ale w rzeczywistości role są często układane bardzo tradycyjnie.
Robbie Dee,
@DavidArno W naszym sklepie są. W rzeczywistości mamy identyczną konfigurację, co zarysowuje Duffy. Nasi testerzy wykonują sprint o dwa lub dwa w tyle. Nacisk polega na tym, których członków personelu uważasz za zespół programistów. Jak nakreśliłem w swoim poście , po prostu nie akceptuję, że DBA i menedżerowie kompilacji mogą być umieszczani w boksach czasowych w taki sam sposób jak vanilla devs - YMMV.
Robbie Dee,
Całkiem dobrze radzimy sobie z wyznaczaniem przedziału czasu, szacunki testerów wymagają nieco innego myślenia i procesu, ponieważ są one bardziej zależne od procesu niż szacowanie jelit, ale zwykle kończą się znacznie bardziej wiarygodnymi szacunkami czasu (gdy mogą je oprzeć w trakcie testy pierwszego przejścia) niż deweloperów ze względu na charakter ich pracy w porównaniu do naszej. Jestem programistą DBA / DB w zespole i doskonale pasuję do sprintu, więc nie jestem pewien, jak nie pasują do przepływu pracy dla innych.
Duffy,
3

Twoja sytuacja może być lepsza dla Kanbana, ponieważ możesz zacząć od tego, co masz i iterować od tego momentu. Oznacza to, że nie miałbyś wstępu do Wielkiego Wybuchu, który przeszkadzałby w twoich bieżących projektach - po prostu zacznij od wizualizacji zadań na tablicy i przyjęcia niektórych praktyk, takich jak retrospektywy i codzienne spotkania.

Musisz być nieco bardziej ostrożny niż w przypadku Scruma, ponieważ nie jest on tak nakazowy: ma więc tendencję do powracania do tego, co było wcześniej, zamiast wpajania właściwego, zwinnego sposobu myślenia.

ndyer
źródło
0

Scrum nie działa dobrze z osobnymi nakładającymi się na siebie projektami, ponieważ nie masz stabilnego zestawu osób pracujących nad projektem dla pełnego sprintu. Dlatego pojęcia takie jak gadatliwość itp. Mogą cię po prostu przygnębić.

Ale najpierw zapoznanie się z historią zapewniającą klientowi najlepsze koszty / korzyści i wdrożenie jej, w tym w pełni zautomatyzowanych testów, do jakości wystarczającej do wdrożenia, zanim rozpocznie się praca nad kolejną historią, jest użyteczną koncepcją. Podobnie, cały kod napisany, aby historia mogła zostać sprawdzona przez innego programistę, zanim zostanie uznana za „ukończoną”.

Zakładam, że twoi pracownicy wdrożeniowi muszą napisać dokumenty szkoleniowe i referencyjne, mogą być napisane (pierwszy szkic) dla każdej historii przed napisaniem kodu, stając się tym samym testami akceptacyjnymi.

Oczekuję, że na początku każdego projektu, w którym wkład personelu wdrożeniowego byłby najbardziej pomocny dla programistów, są oni w 100% zaangażowani w wdrożenie poprzedniego projektu. Dlatego zastanów się, czy pracownicy wdrożeniowi mogą pracować nad pisaniem artykułów i dokumentacji użytkownika dla następnego projektu, podczas gdy programiści piszą kod dla bieżącego projektu.

„Rozwój zorientowany na zachowanie” z personelem wdrożeniowym piszącym przykład wykorzystywany w testach może działać.

Jest więc trochę Scruma, który ci pomoże, ale spróbuj oprzeć się na Scrumie zamiast używać Scruma.

Ian
źródło
„Stąd pojęcia takie jak gadatliwość ...” - czy miałeś na myśli prędkość?
Robbie Dee,
Gdyby było to w przypadku aplikacji dla dużych przedsiębiorstw, w której kilka działów chciało różnych rzeczy w różnych momentach, czy Scrum byłby do tego nieodpowiedni?
JeffO
@jeffO, może pracować ze scrumem, pod warunkiem, że JEDNA osoba ma uprawnienia do decydowania między działami.
Ian
@Ian - to dobry powód, aby mieć tylko jednego właściciela projektu, a projekty można pokroić w kostki tak duże lub małe, jak ktoś uzna za stosowne.
JeffO