Scrum: технические элементы в бэклоге, который управляется нетехническим ПО?
Должны ли технические элементы, такие как "Обновление сервера с версии v1 до версии v2" или "Повышение производительности при запуске" или "Модуль входа в Refactor для уменьшения сложности кода", войти в журнал невыполненных работ продукта, и если да, то как владелец нетехнического продукта должен иметь возможность расставить приоритеты? vs другие более функциональные элементы невыполненных работ?
Должно ли быть отдельное отставание для технических вещей? Должны ли мы иметь совместную роль ПО с двумя людьми, которые могли бы расставить приоритеты в функциональных и технических вопросах, связанных с незавершенным продуктом?
3 ответа
У меня был успех с подходом двойного отставания:
Бэклог продукта принадлежит владельцу продукта. Он содержит элементы (функции) на уровне истории, которые оцениваются командой и затем устанавливаются по приоритетам владельцем продукта. Этот процесс оценки разделяет истории на более мелкие задачи.
Отставание команды принадлежит команде разработчиков. Он содержит элементы уровня задачи, которые являются относительно небольшими (могут быть выполнены в спринте). Они могут быть связаны с историями, например, как препятствия: чтобы завершить историю, сначала необходимо выполнить следующие технические задачи. Они также могут быть независимыми, так что они не требуются для любой истории как таковой, но они окупают некоторый технический долг, чтобы обеспечить более высокую скорость в будущем.
(В некоторых крупных многопроектных программах у меня также были программные резервные копии, которые содержат элементы эпического уровня, принадлежащие и назначенные по приоритетам командой управления программами, для дальнейшего деления на истории в резервных продуктах.)
Обычно в "ванильном" SCRUM технические задания, которые вы упомянули, не будут рассматриваться как отдельные истории.
Для меня нетехническое ПО не должно смотреть на истории типа "Обнови сервер". Это не бизнес-история, она не видна конечному пользователю, поэтому сложно расставить приоритеты, если она сформулирована таким образом. Приоритеты должны быть назначены в соответствии с деловой ценностью работы. "Обновление" не значит много. "Разрешение большего количества одновременных подключений", "Сокращение времени простоя" или даже "повышение скорости работы команды" может дать гораздо более ценную информацию нетехническому специалисту. Если вы не можете найти нетехническое описание, задайте себе вопрос о необходимости обновления:)
История "рефакторинга" еще сложнее. Вы спрашивали себя, почему это вообще история? Рефакторинг может быть сделан как задача в истории, но это редко история сама по себе. Поэтому, если вы хотите, чтобы вход в систему работал лучше или предоставлял больше возможностей, это история, но возиться под капотом не считается как таковой. Также обратите внимание, что рефакторинг без бизнес-целей может легко привести к так называемому "золотому покрытию"
Я бы посоветовал сделать истории "апгрейда" в виде всплеска, при этом "повышение производительности" и "повторный фактор" являются задачами для соответствующей бизнес-истории.
PS Хорошую дискуссию на эту тему (в основном в части 3) вы можете найти в прекрасной книге Майка Кона " Прикладные пользовательские истории: для гибкой разработки программного обеспечения".
Я согласен с мнением о технической выгоде для любой технической истории и отслеживании ее в основном продукте.
Я действительно думаю, что есть внутренние истории, связанные со скоростью / способностями команды, которыми иногда удобнее управлять, назначая разработчикам определенные возможности, особенно когда Владелец продукта не заинтересован в расстановке приоритетов или управлении этими историями. Например, назначьте 10% емкости для тестирования отставания автоматизации (устаревшей регрессии), настройки сервера CI и т. Д.
Да, все, безусловно, может быть выражено в деловых терминах, но некоторые из них следует рассматривать как то, "как мы должны выполнять свою работу", когда между владельцем продукта и командой существует доверие, что команда наилучшим образом использует выделенную для этого мощность.,