W jaki sposób zespół Scrumowy uwzględnia zadania związane z infrastrukturą podczas spotkania planistycznego?


33

W jaki sposób zespół Scrumowy uwzględnia zadania deweloperskie / infrastrukturalne podczas spotkania planistycznego?

Na pierwszy rzut oka nie wyglądają jak historie użytkowników, ponieważ nie zapewniają wartości końcowej.

Jednak dołączanie ich jako zadań do konkretnej historii użytkownika również nie ma sensu. Załóżmy na przykład, że zadaniem jest: „Setup Bamboo”. To zadanie nie jest wymagane do ukończenia historii użytkownika, ponieważ zespół mógł ręcznie zbudować i wdrożyć. Dlatego dołączenie go do historii użytkownika nie ma sensu, ponieważ to zadanie nie jest wymagane do ukończenia historii użytkownika.

To sugeruje, że zadania te stają się historiami użytkowników. Ale wtedy, jeśli historia zespołu ich wskazuje, to zmienia to prędkość, która jest dziwna, ponieważ Właściciel produktu chce poznać prędkość w oparciu o swoje zaległości, a nie o zaległości z dołączoną do nich historią technicznych użytkowników.

Odpowiedzi:


25

To nie są historie użytkowników. To historie interesariuszy. O ile oprogramowanie nie jest opłacane bezpośrednio przez użytkowników, rzadko jest tak, że historia jest tworzona całkowicie na ich korzyść.

Podam kilka przykładów:

  • słowa kluczowe artykuły, które pozwalają reklamodawcom na bardziej skuteczne reklamy
  • CAPTCHA, które mają powstrzymać moderatorów przed ręcznym radzeniem sobie ze spamem.

Większość historii technicznych faktycznie przynosi korzyści biznesowe, ale rzadko są to dla użytkowników. Sformułowanie ich w inny sposób może pomóc. Zwykle używam szablonu funkcji wstrzykiwania Chrisa Mattsa:

In order to <achieve my goal>
As <the stakeholder who wants the goal>
I want (<some users to do>) <some stuff>.

Wyraźnie uznaje to wszystkie rodzaje interesariuszy, w tym zespół programistów. Teraz możesz także opisywać swoje historie techniczne, wskazując korzyści biznesowe:

In order to minimize the risk of deploying something broken
As the team deploying the code
We want to spend a few days on an automated deployment system.

Napisałem na ten temat kilka postów na blogu: To nie są historie użytkowników , wprowadzanie funkcji i obsługa technicznych historii . Mam nadzieję, że pomogą.


3
Semantyka ... IMHO jest to sprzeczne z filozofią Agile; dodając potrzebną separację tam, gdzie nie zapewnia żadnej realnej wartości poza ciepłymi rozmytymi uczuciami.
Aaron McIver

5
Czy mówisz z doświadczenia, czy teoretyzujesz? Pytam, ponieważ użyłem tego szablonu z wieloma zespołami i odkryłem, że postawienie celu na pierwszym miejscu naprawdę pomaga ustalić, co jest konieczne do osiągnięcia wizji projektu. Mike Cohn używa opcjonalnie „tak, że”. Nie wierzę, że tak jest.
Lunivore,

1
Widzę, że ten szablon jest przydatny, aby pomóc przekazać wartość zadania technicznego do wykonania nietechnicznemu PO. Istnieje różnica między „jako analityk ds. Kontroli jakości chcę serwera ciągłej integracji, aby aplikacja była codziennie testowana automatycznie” i „W celu zmniejszenia liczby ręcznych testów wymaganych na koniec projektu, a prawdopodobieństwem błąd poślizgnięcia się na produkcję, jako zespół kontroli jakości chcemy przetestować serwer ciągłej integracji ”. Pokazanie ukrytej firmy daje OP wystarczającą ilość informacji, aby zdecydować, czy ją uwzględnić, czy nie.
Soronthar

1
@Soronthar Gdzie to się zatem kończy? „Aby zmniejszyć poziom frustracji, jako zespół programistów chcemy ustalać własne zasady” Ma on charakter okrągły. To jeden z powodów, dla których skupiłeś się na użytkowniku i to wszystko. Zadania powinny być ukryte przed zamówieniem; ponieważ organizacja producentów nie powinna zajmować się tymi szczegółami.
Aaron McIver

9
Aha, i na wszelki wypadek nie było jasne - bardziej zależy mi na wykonywaniu użytecznej pracy niż na Scrumie. Lub chudego. Lub BDD. Uważam również, że najbardziej użyteczna praca w oprogramowaniu ma związek z uczeniem się i zarządzaniem ryzykiem. Kiedy metodologia przeszkadza w wykonywaniu użytecznej pracy, dążę do użytecznej pracy.
Lunivore,

12

Prędkość jest miarą zdolności zespołu do wykonywania pożytecznej pracy (w przeciwieństwie do Drag). Zadania związane z infrastrukturą nadal przynoszą użytkownikom końcowym wartość, choć pośrednio, zwiększając efektywność zespołu na dłuższą metę. Nie mam problemu ze śledzeniem tych rzeczy jako historii użytkowników (w tym przypadku użytkownik jest zespołem programistów) i nadawaniem im odpowiednich priorytetów. Właściciel produktu w dobrej komunikacji z klientem (klientami) powinien być w stanie dowiedzieć się, gdzie takie zadania mogą się zmieścić bez zakłócania wyników.


3
Myślę, że niebezpieczne jest, aby zespoły zacierały rozróżnienie między rzeczami, które są bezpośrednio cenne dla użytkownika, a tymi, które, mam nadzieję, zapewniają wartość pośrednią. W szczególności podejście „wszystko, co lubimy, jest cenne” zachęca deweloperów do pozłacania i infrastruktury dla dobra infrastruktury. Gorąco zachęcam ludzi, by liczą tylko historie o bezpośredniej wartości biznesowej w kierunku szybkości, ponieważ to jedyna rzecz, za którą klienci będą płacić gotówką.
William Pietri

3
Walcowanie z Niedźwiedziami. Wszystko, co robisz, co jest naprawdę cenne, jest przede wszystkim cenne, ponieważ nikt wcześniej tego nie robił (w przeciwnym razie istnieją inne, tańsze sposoby na zrobienie tego). Większość tego, co robimy, jest cenne, polega na uczeniu się, jak robić nowe rzeczy. Zadania dotyczące infrastruktury pomagają nam uzyskać informacje zwrotne na temat nowych rzeczy i szybciej się uczyć. Jestem z @Kristo, jeśli pomaga nam to szybciej się uczyć.
Lunivore,

@Lunivore - Różnica polega na tym, że nikt nie płaci za naukę. Płacą ci za to, co robisz z nauką. Zespoły powinny zawsze poświęcać trochę czasu na doskonalenie swoich narzędzi i wiedzy. Ale liczenie go jako prędkości myli go z pracą, którą zespół jest w stanie wykonać.
William Pietri

Nie chodzi tylko o narzędzia i wiedzę. Eksperyment myślowy od Ashley Johnson: Pomyśl o ostatnim projekcie, który zrobiłeś. Zastanów się, ile czasu zajmie ci to powtórzenie z tymi samymi ludźmi, tymi samymi wymaganiami, tą samą technologią, ale po nauczeniu się wszystkiego, czego się nauczyłeś. Cytaty PMs wynoszą od około 25% do 33% - resztą jest to, ile uczymy się w projektach oprogramowania. Przeczytaj post Dana Northa na temat Deliberate Discovery: dannorth.net/2010/08/30/introducing-deliberate-discovery
Lunivore

11

Rób je stopniowo.

Jeśli żaden interesariusz tego nie chce, nie rób z tego historii. Zajmij się tym, po trochu. Na przykład przy pierwszym wdrażaniu ręcznym. Za drugim razem trochę zautomatyzujesz. Za trzecim razem zautomatyzujesz trochę więcej. Ostatecznie twoja kompilacja nie jest największym problemem, więc skupiasz się na czymś innym.

Na początku będziesz mieć więcej zadań zorientowanych na programistów, i to w porządku; twoja prędkość (mierzona historiami) będzie po prostu niższa. To poprawna reprezentacja sytuacji. Ale zawsze będziesz miał ich trochę, dlatego ważne jest, aby zespół przyzwyczaił się robić to, co konieczne, aby usprawnić proces.


+1: Spike rozwiązanie za pierwszym razem, a następnie przebuduj go, aby był lepszy i bardziej niezawodny za drugim razem.
S.Lott

Jak więc upewnić się, że zadania skoncentrowane na programistach nie przejmą sprintu, zwłaszcza jeśli nie ustalono jeszcze dobrych wskaźników prędkości? Nie chciałbym przegapić wczesnej dostawy, ponieważ spędziliśmy zbyt dużo czasu na rzeczach, które pomogą w dłuższej perspektywie.
Kristo,

I tak powinieneś znaleźć czas na regularne przemyślenia i ulepszenia procesów w ten sposób.
Michael

@Kristo, nie sądzę, aby twój klient / kierownik produktu pozwolił ci na to. Nawet bez ustalonej prędkości dobrze zgadniesz i wynegocjujesz wartość, która ma być dostarczona podczas pierwszych sprintów. Plus, jeśli zwiększysz się jak @ S.Lott sugeruje, że i tak nie dostarczysz.
Michael

@Kristo: Robisz to, robiąc to stopniowo i regularnie się zastanawiając. Kiedy zaczynasz, wszystko, co wiesz, to to, że na pewno będziesz robić niewłaściwą kwotę. Każdego tygodnia mów o tym, czy powinieneś robić więcej, czy mniej infrastruktury i czy koncentrujesz się na rzeczach o najwyższej wartości. Zawsze jest to działanie równoważące.
William Pietri,

6

IMHO idealnym podejściem jest umieszczenie wysiłków związanych z infrastrukturą jako zadań pod historią użytkownika, w której po raz pierwszy ma wartość; jak wspomniałeś.

Biorąc twój przykład; ręczne budowanie i wdrażanie oznacza, że ​​jest to ciągły wysiłek i nie ma formy ukończenia. Istnieje na czas nieokreślony.

To samo można powiedzieć o kodzie, który automatyzuje każdą część wysiłku w typowej aplikacji, która wcześniej była wykonywana ręcznie. Zdefiniowanie tego wysiłku jako zadania w historii użytkownika definiuje zakończenie; który ze swej natury ma wartość dla użytkownika końcowego.

Z pewnością możesz zbudować i wdrożyć aplikację przy każdym sprincie, ale to staje się częścią codziennych zadań, które nie są formalnie śledzone przez zaległości, a potem wszystko staje się dyskusyjne.


Dziękuję za tę odpowiedź. W końcu wyjaśniono, jak należy to zrobić: „idealnym podejściem jest umieszczenie wysiłków związanych z infrastrukturą jako zadań pod historią użytkownika, w której po raz pierwszy ma wartość”.
Igor Popov

Właściwie to prace infrastrukturalne powinny być częścią Definicji Gotowości.
Igor Popov

4

Historie użytkowników definiują wartość biznesową z perspektywy użytkownika. Z tego powodu zadania infrastrukturalne są ogólnie uważane za „odpady”. To nie znaczy, że nie są potrzebne. Oznacza to, że wykonywanie większej liczby zadań infrastrukturalnych przyniesie mniejszą wartość biznesową. Z tego powodu zadania związane z infrastrukturą nie powinny być traktowane jako historia użytkownika i nie powinny być dołączane do historii użytkowników.

Na spotkaniu planistycznym zespół musi rozważyć, jakie zadania związane z infrasturcją będą absolutnie niezbędne podczas następnego sprintu. Zobowiązanie zostanie wykonane z myślą o tych zadaniach związanych z infrastrukturą. Wpłynie to na szybkość zespołu, co jest poprawnym wynikiem, ponieważ prędkość mierzy, ile wartości biznesowej może dostarczyć zespół.


2

Nigdy nie utożsamiałem historii użytkowników z koniecznością dostarczania wartości końcowej. Może to być powszechne, ale nie tak traktujemy historie użytkowników. Czasami tego rodzaju zadania są uważane za szczytowe, ale mieliśmy również regularne historie użytkowników, których punkt szacuje się jak każdą inną historię użytkownika.


Niektóre zespoły działają w ten sposób, ale utrudnia to pomiar dostarczonej wartości. Osobiście sugeruję, aby zespoły tworzyły tylko historie o wartości biznesowej. (Skoki mają wartość biznesową, ponieważ ludzie kupują informacje o przyszłych opcjach i ich kosztach).
William Pietri

Ale jaka jest wartość biznesowa? Jest to szeroki termin i wszystko, co pozwala firmie na wcześniejsze wydanie oprogramowania / lepsze / etc, ma dla niej wartość.
Andy Wiesendanger,

Rozróżniam między rzeczami o bezpośredniej wartości głównie dla zespołu, a rzeczami o bezpośredniej wartości głównie dla ludzi, którym faktycznie służysz. Myślę, że powinieneś liczyć to drugie na prędkość, ponieważ to jedyna wartość, która ostatecznie ma znaczenie. Czynności dokonane na rzecz poprawy tworzenia wartości są rozliczane z dużą prędkością dzięki poprawie prędkości długoterminowej. Liczenie go od razu zniekształca zachęty i podwójnie liczy zysk.
William Pietri

2

Z tego, co widziałem, znaczna część infrastruktury jest uważana za pewnik. Obejmuje to między innymi:

  • System kontroli wersji;
  • Zautomatyzowany system kompilacji;
  • IDE i inne narzędzia programistyczne;
  • Serwery programistyczne;
  • Proces wdrażania; i
  • Proces projektu i standardy.

Większość metodologii, z którymi pracowałem, nie przywiązuje do nich dużej uwagi. Tworzą one to, co nazywam wersją 0. Te rzeczy powinny być na miejscu, zanim zaczniesz programować. Po rozpoczęciu pracy nad historiami wszelkie zmiany tych rzeczy mogą być śledzone jako usprawnienia procesu.

Chociaż zespół programistów może mieć wkład, większość tych elementów powinna być obsługiwana przez zespół wsparcia projektu. Standaryzacja tych pozycji w wielu projektach powinna przynieść organizacji znaczny zwrot.


1
+1: Jeśli to nie jest na miejscu, Agile jest naprawdę trudne. Stabilna, sprawdzona infrastruktura i platforma stanowią swoisty warunek zwinności.
S.Lott

1

Rozważ następujące:

  • Zespół Scrumowy dodaje główne funkcje do istniejącego pakietu produktów.

  • Istnieje potrzeba aktualizacji technologii / narzędzi / narzędzi programistycznych, aby pozostać na bieżąco w oparciu o najlepsze praktyki inżynierskie.

  • Sensowne jest załadowanie wersji wstępnej z tą pracą, aby w trakcie wydania można było rozwiązać problemy z Sprintami.

  • Ponieważ firma uzyskuje pośrednią wartość z tych pozycji, sugeruję, że w celu zachowania przejrzystości są to pozycje Backlogu Produktu (PBI).

  • Zespół dokonuje oceny tych elementów i traktuje je tak, jak w przypadku dowolnego PBI.

Ta kwestia sprowadza się do tego, że nie chcę tracić czasu na próbę ukrycia tej pracy jako zadań pod innymi PBI zorientowanymi bardziej na biznes.

Nie chcę, aby rozmiar PBI był wypaczony przez tego rodzaju prace infrastrukturalne. Chcę zobaczyć, co się dzieje i zrozumieć, za co płacę.

Uważam również, że warto mieć świadomość, że zespół rozumie zaangażowanie, jakie podejmuje firma, inwestując w infrastrukturę wymaganą do dostarczania wysokiej jakości rozwiązań.


0

XP zaleca sugerowanie posiadania „zerowej iteracji”, w której skonfigurowane są wszystkie narzędzia i infrastruktura. Pisanie opowiadań jest opcjonalne, ale prawdopodobnie jest dobrym pomysłem. Możliwość przetestowania infrastruktury (przyrostowa kompilacja, automatyczne testowanie i wdrażanie, powiadomienia itp.) Jest korzystna


2
XP tego nie zaleca. Niektórzy ludzie tak robią, ale zdecydowanie nie jest to część Extreme Programming, jak zdefiniowali Beck i in. Osobiście uważam, że Iteration Zero to zły pomysł.
William Pietri

Kolejny problem, nie zawsze zaczynasz od 0, możesz zdać sobie sprawę, że potrzebujesz czegoś teraz lub w następnym sprincie.
Andy Wiesendanger

@William: patrz „Planowanie ekstremalnego programowania”, Kent Beck, rozdział 15, strona 66.
Steven A. Lowe

To nie jest zalecenie. Mówią, że to pomysł i mówią: „Jeśli wcześniej nie pracowałeś ze swoją technologią, zastanów się, czy nie poświęcić dwóch tygodni na zakup technologii tuż przed rozpoczęciem programowania”. I nie sugerują „całej infrastruktury”, tylko podstawowy automatyczny test, budowanie i wdrażanie skryptów.
William Pietri,

@William: aha, widzę o co ci chodzi. Nie chodziło mi o całą infrastrukturę oprogramowania , tylko o rzeczach, o których wspominałeś
Steven A. Lowe

0

W naszym zespole wykonujemy następujące czynności:

  1. Załóż niższy współczynnik ostrości .
  2. Spróbuj uwzględnić takie zadania w historiach użytkowników, które faktycznie wymagają ich wdrożenia.
  3. Jeśli niektóre zadania są całkowicie konieczne, ale nie zapewniają bezpośredniej wartości biznesowej (np. Migracja testów jednostkowych z jednej platformy do drugiej), na początku sprintu tworzymy listę „zadań ciągłych” . Są to zadania związane z programowaniem, które nie są opowieściami, ale zespół programistów chce je wykonać. Wymieniamy te zadania na naszej tablicy, wciąż oddzielając je od historii. Podczas sprintu na każdym codziennym spotkaniu sprawdzamy, co zostało zrobione, aby je osiągnąć.

Najważniejszy jest krok 2. Podobnie jak w zwinnej praktyce, w Scrumie starasz się robić jak najmniej, aby wykonać swoje zadania. Weź to jako sposób, aby nie marnować życia na niepotrzebną pracę: z mojego doświadczenia wynika, że ​​aż 50% „niedoszłych” rzeczy ostatecznie zostaje porzuconych i nieobsługiwanych na dłuższą metę.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.