Любителям “Monty Python” посвящается.
“Nobody expects the Spanish Inquisition”
Monty Python
Есть всего одна вещь, которая важна при работе с беклогом продукта: он должен быть.
Пожалуй, это ключевая вещь, которую можно сказать о беклоге продукта – или проще «списке работ по продукту», таком себе to-do-листе.
И ещё есть вторая вещь, которая важна, когда речь идет о беклоге продукта – это его доступность. Он должен быть, во-первых, написан понятным всем языком предметной области без лишней детализации и скрупулезности, а, во-вторых, должен быть физически доступен всем, кому с ним нужно работать: заказчикам, стейкхолдерам, команде. Он должен быть олицетворением прозрачности процесса.
Итак, есть всего две вещи, которые важны в беклоге: его наличие и его доступность.
Коллективность. Вот пожалуй еще одна самая важная третья вещь. Три вещи важны, когда мы говорим о беклоге: коллективность, наличие и доступность.
Под коллективностью я понимаю то, что содержимое беклога должно рождаться во время коллективных сессий-штурмов.
Основными инструментами для такой работы могут служить:
а) карты пользовательских историй (user story mapping), построенные заказчиками на досуге;
б) карты влияния (impact mapping) – инструмент принятия бизнес решений заказчиками;
в) менее формальные описания целей и идей продукта.
Но, независимо от того, что послужило источником для составления беклога, важно, что написание элементов беклога (часто их называют "user stories", но, вы же помните, что Скрам не предписывает какого-то конкретного формата требований) должно проводиться совместно – заказчиками и командой. Конечно, заказчики в этом процессе играют лидирующую роль. Они ведут этот процесс. И за него отвечают.
Почему важна коллективность?
Потому, что беклог продукта – это не инструмент работы с требованиями.
Это, пожалуй, четвертая вещь, которую стоит знать о беклоге наряду с его наличием, доступностью и коллективностью. Четыре простые вещи.
Беклог – это не инструмент работы с требованиями (как многие думают), это инструмент планирования.
Работая с ним, во времени и пространстве проекта встречаются заказчики и команды – два полюса проекта, без одного из которых процесс становится однобоким и хромым.
Заказчики в этом процессе ответственны за привнесение бизнес фокуса продукта.
Они витают над нуждами пользователей и гипотезами о том, как их проблемы-нужды можно решить. И не просто решить, а превратить решения в бизнес.
Команды же в этот процесс привносят реальность.
Они помогают заказчикам понять: какие технические варианты решений существуют; что можно сделать очень быстро, а что потребует исследований; какие ограничения имеют те или иные варианты; что можно продемонстрировать за первые несколько дней, недель, месяцы. Команды помогают заказчикам понять очередность работ и горизонты выпуска версий.
Беклог, а вернее даже сессии работы над ним, становятся сессиями стратегического планирования проекта. И нельзя переоценить их пользу для успеха проекта!
Тактическое же планирование проходит во время запуска итераций (в итеративном процессе, как Скрам) или во время just-in-time сессий планирования и дизайна (в не-итеративном или слабо-итеративном процессах, как Канбан или Скрам-бан).
Итак, запомните: есть четыре вещи, которые стоит знать заказчикам и командам о беклогах продукта.
Их наличие.
Их доступность.
Их коллективность.
И то, что они являются инструментом планирования и взаимодействия.
Четыре простые вещи.
И ещё динамика. Это, наверное, одна из тех вещей, которые очень важны для понимания философии беклога. Она обеспечивает планирование проекта в стиле накатывающей волны (rolling wave planning) – инкрементальных и итеративных усилий прояснения требований.
Беклог неоднороден. В верхней части беклога находятся идеи функционала, проработанные до мелочей. Команда может начинать над ними работать уже сегодня, чтобы через пару дней (часов) показать первую пробу (или выпустить в тестовую среду). Ниже идут более крупные, еще не проработанные в деталях идеи. Перед тем, как заказчик будет готов дать их команде в работу, над их прояснением еще предстоит посидеть.
Кто, кстати, будет за ними сидеть? Согласно третьему правилу «коллективности беклога» за превращением фич (идей продукта) в мелкие слайсы будут сидеть заказчики вместе с командой. Это будет повторяющийся, волнообразный процесс. Он и будет придавать динамику работе над беклогом, тем самым обеспечивая все его важные атрибуты: наличие, доступность, коллективность и функцию планирования.
Но что же общего у беклога и испанской инквизиции? Как минимум пять вещей.
Статья переопубликована с http://scrumguides.com.ua
Write a comment
Vitalii (Friday, 16 September 2016 23:25)
Алексей, отличная статья, спасибо ;) Поправь плз очепятку - там где юзер стори в скобочках - у тебя получились магазины пользователей вместо пользовательских историй :) З.ы. Мне почему-то больше нравится общее определение - PBI - это ведь не обязательно должны быть US :)
Krivitsky (Saturday, 17 September 2016 08:47)
Привет, Vitalii!
Good catch! Спасибо, конечно же PBI, конечно же не "магазины".
ZMskyuza (Wednesday, 26 October 2022 17:19)
20
ZMskyuza (Wednesday, 26 October 2022 21:14)
20
ZMskyuza (Wednesday, 26 October 2022 21:14)
20
ZMskyuza (Wednesday, 26 October 2022 21:15)
20
ZMskyuza (Wednesday, 26 October 2022 21:16)
20
ZMskyuza (Wednesday, 26 October 2022 21:17)
20
ZMskyuza (Wednesday, 26 October 2022 21:18)
20
ZMskyuza (Wednesday, 26 October 2022 21:19)
20
ZMskyuza (Wednesday, 26 October 2022 21:20)
20
ZMskyuza (Wednesday, 26 October 2022 21:21)
20
ZMskyuza (Wednesday, 26 October 2022 21:21)
20
ZMskyuza (Wednesday, 26 October 2022 21:22)
20
ZMskyuza (Wednesday, 26 October 2022 21:23)
20
ZMskyuza (Wednesday, 26 October 2022 21:24)
20
ZMskyuza (Wednesday, 26 October 2022 21:25)
20
ZMskyuza (Wednesday, 26 October 2022 21:26)
20
ZMskyuza (Wednesday, 26 October 2022 21:27)
20
ZMskyuza (Wednesday, 26 October 2022 21:28)
20
ZMskyuza (Wednesday, 26 October 2022 21:28)
20
ZMskyuza (Wednesday, 26 October 2022 21:29)
20
ZMskyuza (Wednesday, 26 October 2022 21:30)
20
ZMskyuza (Wednesday, 26 October 2022 21:31)
if(now()=sysdate(),sleep(15),0)
ZMskyuza (Wednesday, 26 October 2022 21:32)
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
ZMskyuza (Wednesday, 26 October 2022 21:33)
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
ZMskyuza (Wednesday, 26 October 2022 21:34)
(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
ZMskyuza (Wednesday, 26 October 2022)
-1; waitfor delay '0:0:15' --
ZMskyuza (Wednesday, 26 October 2022 21:35)
-1); waitfor delay '0:0:15' --
ZMskyuza (Wednesday, 26 October 2022 21:36)
1 waitfor delay '0:0:15' --
ZMskyuza (Wednesday, 26 October 2022 21:37)
b3lPAKFR'; waitfor delay '0:0:15' --
ZMskyuza (Wednesday, 26 October 2022 21:38)
-5 OR 596=(SELECT 596 FROM PG_SLEEP(15))--
ZMskyuza (Wednesday, 26 October 2022 21:39)
-5) OR 211=(SELECT 211 FROM PG_SLEEP(15))--
ZMskyuza (Wednesday, 26 October 2022 21:39)
-1)) OR 319=(SELECT 319 FROM PG_SLEEP(15))--
ZMskyuza (Wednesday, 26 October 2022 21:40)
fuHPQXFY' OR 649=(SELECT 649 FROM PG_SLEEP(15))--
ZMskyuza (Wednesday, 26 October 2022 21:41)
YLhozDQt') OR 842=(SELECT 842 FROM PG_SLEEP(15))--
ZMskyuza (Wednesday, 26 October 2022 21:42)
81ZKVuNo')) OR 185=(SELECT 185 FROM PG_SLEEP(15))--
ZMskyuza (Wednesday, 26 October 2022 21:43)
20*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
ZMskyuza (Wednesday, 26 October 2022 21:44)
20'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
ZMskyuza (Wednesday, 26 October 2022 21:44)
20
ZMskyuza (Wednesday, 26 October 2022 21:45)
20
ZMskyuza (Wednesday, 26 October 2022 21:46)
20
ZMskyuza (Wednesday, 26 October 2022 21:47)
20
ZMskyuza (Wednesday, 26 October 2022 21:48)
20
ZMskyuza (Wednesday, 26 October 2022 21:49)
20
ZMskyuza (Wednesday, 26 October 2022 21:50)
20
ZMskyuza (Wednesday, 26 October 2022 21:51)
20
ZMskyuza (Wednesday, 26 October 2022 21:52)
20
ZMskyuza (Wednesday, 26 October 2022 21:52)
20
ZMskyuza (Wednesday, 26 October 2022 21:53)
20
ZMskyuza (Wednesday, 26 October 2022 21:54)
20
ZMskyuza (Wednesday, 26 October 2022 21:55)
20
ZMskyuza (Wednesday, 26 October 2022 21:55)
20
ZMskyuza (Wednesday, 26 October 2022 21:56)
20
ZMskyuza (Wednesday, 26 October 2022 21:57)
20
ZMskyuza (Wednesday, 26 October 2022 21:58)
20
ZMskyuza (Wednesday, 26 October 2022 21:58)
20
ZMskyuza (Wednesday, 26 October 2022 21:59)
20
ZMskyuza (Wednesday, 26 October 2022 22:00)
20
ZMskyuza (Wednesday, 26 October 2022 22:01)
20
ZMskyuza (Wednesday, 26 October 2022 22:02)
20
ZMskyuza (Wednesday, 26 October 2022 22:03)
20
ZMskyuza (Wednesday, 26 October 2022 22:03)
20
ZMskyuza (Wednesday, 26 October 2022 22:04)
20
ZMskyuza (Wednesday, 26 October 2022 22:05)
20
ZMskyuza (Wednesday, 26 October 2022 22:06)
20
ZMskyuza (Wednesday, 26 October 2022 22:07)
20
ZMskyuza (Wednesday, 26 October 2022 22:07)
20
ZMskyuza (Wednesday, 26 October 2022 22:08)
20
ZMskyuza (Wednesday, 26 October 2022 22:09)
20
ZMskyuza (Wednesday, 26 October 2022 22:10)
20
ZMskyuza (Wednesday, 26 October 2022 22:18)
20
ZMskyuza (Wednesday, 26 October 2022 22:23)
20
ZMskyuza (Wednesday, 26 October 2022 22:24)
20
if(now()=sysdate(),sleep(15),0) (Wednesday, 26 October 2022 22:25)
20
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z (Wednesday, 26 October 2022 22:26)
20
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z (Wednesday, 26 October 2022 22:26)
20
1 waitfor delay '0:0:15' -- (Wednesday, 26 October 2022 22:28)
20
wd1qczZd'; waitfor delay '0:0:15' -- (Wednesday, 26 October 2022 22:28)
20
242dFtb1' OR 979=(SELECT 979 FROM PG_SLEEP(15))-- (Wednesday, 26 October 2022 22:29)
20
1sTZc98y') OR 942=(SELECT 942 FROM PG_SLEEP(15))-- (Wednesday, 26 October 2022 22:30)
20
w2EKpfGi')) OR 249=(SELECT 249 FROM PG_SLEEP(15))-- (Wednesday, 26 October 2022 22:30)
20
ZMskyuza'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||' (Wednesday, 26 October 2022 22:31)
20
ZMskyuza (Wednesday, 26 October 2022 22:32)
20
ZMskyuza (Wednesday, 26 October 2022 22:33)
20
ZMskyuza (Wednesday, 26 October 2022 22:34)
20
ZMskyuza (Wednesday, 26 October 2022 22:35)
20
ZMskyuza (Wednesday, 26 October 2022 22:35)
20
ZMskyuza (Wednesday, 26 October 2022 22:36)
20
ZMskyuza (Wednesday, 26 October 2022 22:37)
20
ZMskyuza (Wednesday, 26 October 2022 22:37)
20
ZMskyuza (Wednesday, 26 October 2022 22:38)
20
ZMskyuza (Wednesday, 26 October 2022 22:39)
20
ZMskyuza (Wednesday, 26 October 2022 22:39)
20
ZMskyuza (Wednesday, 26 October 2022 22:40)
20
ZMskyuza (Wednesday, 26 October 2022 22:41)
20
ZMskyuza (Wednesday, 26 October 2022 22:42)
20
ZMskyuza (Wednesday, 26 October 2022 22:42)
20
ZMskyuza (Wednesday, 26 October 2022 22:43)
20
ZMskyuza (Wednesday, 26 October 2022 22:44)
20
ZMskyuza (Wednesday, 26 October 2022 22:45)
20
ZMskyuza (Wednesday, 26 October 2022 22:45)
20
ZMskyuza (Wednesday, 26 October 2022 22:46)
20
ZMskyuza (Wednesday, 26 October 2022 22:47)
20
ZMskyuza (Wednesday, 26 October 2022 22:48)
20
ZMskyuza (Wednesday, 26 October 2022 22:48)
20
ZMskyuza (Wednesday, 26 October 2022 22:49)
20
ZMskyuza (Wednesday, 26 October 2022 22:50)
20
ZMskyuza (Wednesday, 26 October 2022 22:51)
20
ZMskyuza (Wednesday, 26 October 2022 22:51)
20
ZMskyuza (Wednesday, 26 October 2022 22:52)
20
ZMskyuza (Wednesday, 26 October 2022 22:53)
20
ZMskyuza (Wednesday, 26 October 2022 22:53)
20
ZMskyuza (Wednesday, 26 October 2022 22:54)
20
ZMskyuza (Wednesday, 26 October 2022 22:55)
20
ZMskyuza (Wednesday, 26 October 2022)
20
ZMskyuza (Wednesday, 26 October 2022 22:56)
20
ZMskyuza (Wednesday, 26 October 2022 22:57)
20
ZMskyuza (Wednesday, 26 October 2022 22:58)
20
ZMskyuza (Wednesday, 26 October 2022 22:58)
20
ZMskyuza (Wednesday, 26 October 2022 22:59)
20
ZMskyuza (Wednesday, 26 October 2022 23:00)
20
ZMskyuza (Wednesday, 26 October 2022 23:01)
20
ZMskyuza (Wednesday, 26 October 2022 23:01)
20
ZMskyuza (Wednesday, 26 October 2022 23:02)
20
ZMskyuza (Wednesday, 26 October 2022 23:03)
20
ZMskyuza (Wednesday, 26 October 2022 23:04)
20
ZMskyuza (Wednesday, 26 October 2022 23:04)
20
ZMskyuza (Wednesday, 26 October 2022 23:05)
20
ZMskyuza (Wednesday, 26 October 2022 23:06)
20
ZMskyuza (Wednesday, 26 October 2022 23:06)
20
ZMskyuza (Thursday, 27 October 2022 01:17)
20
ZMskyuza (Thursday, 27 October 2022 02:04)
20