Что такое бэклог продукта
Бэклог продукта похож на стопку бумаг на столе офисного клерка. В этой стопке — вся его работа на многие дни вперёд. Наверху стопки лежат самые важные на данный момент бумаги, а внизу — менее важные.
Каждый день работник берёт лист бумаги с верхушки стопки, заполняет его, передаёт на проверку коллеге и берёт следующий лист.
Иногда коллега приносит ему новую стопку бумаг. Они вместе обсуждают срочность их обработки и кладут часть менее важных бумаг под низ существующей стопки, часть более важных — в середину, а отдельные, самые важные, кладут наверх. И так происходит день за днём.
Команда разработки работает с бэклогом продукта так же, как работник офиса — со стопкой бумаг. В бэклоге продукта — вся работа команды. В каждой итерации она выполняет самую важную работу и передаёт результат пользователям.
Иногда пользователи просят команду выполнить новую работу. Они вместе обсуждают её важность и определяют подходящее для неё место в бэклоге продукта.
Бэклог продукта (Product Backlog) — это список всех работ, которые команде разработки предстоит выполнить для реализации ПО. Он используется для планирования работы над проектом, оценки сроков и стоимости реализации.
Что входит в бэклог продукта
В спринте «Проектирование пользовательских интерфейсов» вы узнали, что продукт включает в себя не только использование ПО, но и, например, разработку рекламных кампаний, проектирование наружной рекламы, маркетинговые исследования, опросы удовлетворённости клиентов и прочее.
В гибкой модели разработки бэклог продукта часто включает в себя только ту работу, которая связана с реализацией ПО. Команда разработки записывает туда реализацию требований от пользователей, добавление новых функций и улучшение существующих.
Допустим, пользователи обнаружили в ПО ошибки, а команде недостаёт знаний по определённым технологиям и опыта работы с ними. Команде может потребоваться заново переписать часть кода или изменить архитектуру, например, чтобы ПО могло работать с возросшим количеством пользователей. Все эти задачи команда вносит в бэклог продукта в своём таск-менеджере.
Таким образом, в бэклог продукта входят:
- Функции.
- Дефекты (баги).
- Техническая работа.
- Получение знаний.
Функции
Функции — это характеристики ПО и возможности, которые пользователи ожидают получить и которые помогут им в достижении целей.
Источником функций для бэклога продукта выступают пользователи.
Например, функциями мобильного приложения для прослушивания музыки могут быть добавление понравившихся треков в избранное, возможность делиться списком избранных через социальные сети и так далее.
Как правило, функции в бэклоге продукта системный аналитик описывает в виде:
- Пользовательских историй (User Story).
- Историй о работе (Job Story).
Дефекты
Дефекты, или баги, — это обнаруженные в ПО проблемы, которые пользователи хотят устранить.
Например, в приложении для прослушивания музыки дефект проявляется, когда в избранное добавляют 999-й трек. Команда разработки может исправить баг сразу, если он важный, а может отложить в бэклог проекта. Важность дефекта команда определяет самостоятельно или совместно с пользователями.
Источниками таких элементов бэклога выступают пользователи, обнаружившие дефект при использовании ПО, или члены команды, например тестировщики и системные аналитики.
Техническая работа
Техническая работа — это работа, скрытая от пользователей, цель которой — упростить внесение изменений в ПО.
В отличие от функций, техническая работа не приносит пользователям моментальной пользы. Но она важна для команды, так как упрощает реализацию функций и исправление дефектов, а значит, увеличивает темп работы.
Источником таких элементов бэклога выступает команда разработки.
Например, разработчики предлагают пересмотреть часть архитектуры или полностью переписать её программный код, чтобы упростить дальнейшее внесение изменений или улучшить характеристики ПО, скажем быстродействие.
Получение знаний
Получение знаний — это работа, также скрытая от пользователей, цель которой — получить новые знания о том, как реализовать функцию.
Допустим, команда хочет проверить свои предположения — для этого она создаёт прототип ПО, проводит эксперимент с новой технологией, оценивает разные варианты реализации функций.
Источником таких элементов бэклога тоже выступает команда разработки. Она может осознать потребность в знаниях, если ожидаемая пользователями функция должна быть разработана с помощью недавно появившихся технологий.
Например, пользователи хотят использовать возможности приложения для прослушивания музыки с помощью «силы мысли». Команда разработки раньше не работала над нейроинтерфейсами, поэтому они могут включить в бэклог множество элементов, направленных на получение знаний об этой технологии. Не обладая этими знаниями, команда не сможет оценить объём функции, а значит, и назвать пользователям сроки её реализации.
Такой элемент бэклога называют спайком (Spike).
Соотношение элементов
Обычно в бэклоге больше функций, чем других категорий элементов. Дефекты встречаются значительно реже.
Но бывает и так, что дефектов в бэклоге больше, чем функций. Например, 150 дефектов и 30 функций. В таком случае команде разработки стоит бросить все силы на то, чтобы скорее исправить дефекты и сбалансировать бэклог продукта.
Технической работы и спайков будет немного. Дело не в том, что эта работа неважна, напротив, это неотъемлемая часть процесса разработки ПО. Просто эта работа обычно выполняется сразу после добавления в бэклог. Команда не будет включать туда получение знаний, которые потребуются только через год. Если команда включает в бэклог продукта техническую работу или получение знаний, она рассчитывает выполнить её в ближайших итерациях.
Ведите список работ в одном месте
Системному аналитику следует вносить все работы в таск-менеджер, где команда разработки ведёт свой бэклог продукта. Он должен быть единственным источником работы, которую команде необходимо выполнить для реализации ПО.
Случается, что часть элементов бэклога описана не только в таск-менеджере, но и в электронной почте, мессенджере, документах, а часть не описана вовсе и есть лишь в голове у системного аналитика. Это мешает команде понять объём предстоящей работы, а значит, и планировать сроки её выполнения.
К тому же команда может не сделать того, что было действительно важно пользователям, потому что системный аналитик описал нужные им функции в сообщении, которое затерялось в переписке.
Наконец, членам команды просто неудобно переключаться между разными источниками рабочих задач.
Системный аналитик должен убедиться, что вся работа для команды описана в одном месте — в таск-менеджере в виде элементов бэклога продукта.