Definicja „Gotowe” w przypadku kilku zespołów programistycznych pracujących nad tym samym produktem

12

Jeden z testów scrum zawiera pytanie o definicję najlepiej opisującą „Gotowe”, gdy wiele zespołów programistycznych wykonuje prace nad tym samym produktem.

Prawidłowa odpowiedź mówi, że te zespoły programistów muszą mieć taką definicję „Gotowe”, która może sprawić, że ich połączona praca będzie potencjalnie możliwa do uwolnienia.

Prawidłowa odpowiedź na ten quiz nie jest dla mnie jasna:

  • czy drużyny mogą mieć różne definicje „Gotowe”? W jakim zakresie?

źródło
Pomyśl o zespole, który bezpośrednio wydaje produkt, a także o takiej samej pracy, z której korzystają inne zespoły.
Ian
Lub na przykład angielskie wersje oprogramowania mogą zostać wysłane przed przetłumaczeniem na język francuski.
Ian
Ten rodzaj zamieszania powoduje, że nigdy nie mówię, że coś zostało zrobione. Zamiast tego zawsze mówię dokładnie to, co zrobiliśmy. Decyzja, czy coś zostało zrobione, jest negocjacją. Nie deklaracja. Bez względu na to, jaką definicję zastosujesz.
candied_orange

Odpowiedzi:

16

Gdy wszystkie zespoły zdefiniują „Gotowe” w sposób uwzględniający pracę wykonaną przez inne zespoły, masz pewność, że funkcjonalność jest kompletna.

Jeśli każdy zespół inaczej zdefiniuje „wykonane” i po prostu oczekuje, że inne zespoły będą wiedziały o tej definicji, napotkasz kilka problemów:

  • Gdy pojawi się problem z integracją, żaden zespół nie będzie chciał zająć się jego naprawą. W końcu „zostało to zrobione”, kiedy zaczęli integrować, więc musi to być coś z pracą drugiego zespołu.

  • Kiedy masz więcej niż garść drużyn, trudno jest zapamiętać „definicję ukończenia”, zwłaszcza gdy występują różnice między drużynami.

  • Nie można zagwarantować, że definicja „gotowa” działa poprawnie.

Przyjęta odpowiedź wyraźnie stwierdza, że ​​nie zrobiono nic, dopóki praca wszystkich zespołów nie zostanie zintegrowana i nie będzie działać poprawnie. Musi być zwalniany, a zatem akceptowany przez użytkowników końcowych w całości.


Edytuj w odpowiedzi na komentarze: Nie oznacza to, że każdy zespół ma taką samą definicję zrobione. Oznacza to, że częścią definicji każdego zespołu jest większy system, a inne integrujące elementy nie są zepsute.

Greg Burghardt
źródło
Proszę o wybaczenie, ale wydaje mi się, że poprawna odpowiedź nic nie mówi o tym, by mieć jedną definicję „Gotowe”. Co więcej, nie jestem pewien, czy należy w nim uwzględnić specyfikę integracji. Czy dwa zespoły pracują nad zupełnie różnymi implementacjami tego samego interfejsu API dedykowanego różnym klientom? Jednak formalnie nadal pracują nad tym samym produktem.
2
@Andremoniy, prawidłowa odpowiedź rzeczywiście nie mówi nic o pojedynczym DoD, ale oznacza to, że DoD wszystkich zespołów powinny mieć wspólny element, że ogólny produkt pozostaje funkcjonalny. Twój przykład różnych zespołów pracujących nad różnymi implementacjami API nie przekonuje mnie, że można to nazwać pojedynczym produktem.
Bart van Ingen Schenau,
2
@Andremoniy, gdy tylko jeden zespół zależy od pracy innego zespołu, mogą pojawić się problemy z integracją, nawet jeśli części zostaną rozmieszczone w różnych lokalizacjach. Jest to również problem z integracją, na przykład, gdy jedna mikrousługa korzysta z innej mikrousługi w nieoczekiwany, być może niepoprawny sposób.
Bart van Ingen Schenau,
2
@Andremoniy: Masz rację, że te dwa zespoły nie powinny używać tego samego DoD, ale mogą one dzielić zasadę, że wszelkie zmiany nie mogą negatywnie wpływać na inny zespół (co mogłoby się uruchomić, jeśli praca wiąże się ze zmianami interfejsu z tyłu -end serwer).
Bart van Ingen Schenau,
1
@Andremoniy: Dzięki za komentarze. Zaktualizowałem moją odpowiedź, aby rozwiązać niektóre z poruszonych przez ciebie problemów.
Greg Burghardt,
6

Mogę sobie wyobrazić sytuację, w której jeden zespół definiuje „Gotowe” jako „Opracowane” (tj. Kod scalony w celu repo), podczas gdy inny definiuje go jako „Testing Done” (tj. Kod wydany Q / A i przetestowany).

Prowadziłoby to z natury do poważnych problemów, ponieważ ogólny stan produktu byłby w dużej mierze nieokreślony, a zatem trudno byłoby stwierdzić, czy rzeczywiście możemy go zwolnić, czy nie.

Paweł Gorczyński
źródło
Czy uważasz właściwą odpowiedź za stwierdzenie, że wszystkie zespoły powinny mieć tę samą definicję?
Tak, zgodziłbym się, że powinna istnieć wspólna definicja z prostego powodu - Złożony projekt można uznać za strukturę drzewa, w której podprojekty (np. Mikrousług) budują ogólny produkt (np. MyCool ERP). Więc w danym momencie chcesz wiedzieć, czy można wydać nową wersję produktu. Ale jeśli masz różne DoD dla poszczególnych podskładników, informacja ta staje się niezwykle trudna do zrozumienia.
Paweł Gorczyński