Одним из важных артефактов в agile являются беклоги - списки запланированных и пока еще не завершенных заданий. Они могут пополняться любыми вопросами, возникшими в процессе коммуникаций внутри команды или команды с заказчиком. Беклоги позволяют хранить все мало-мальски значимые задания, чтобы в один прекрасный день взять и позакрывать все накопившееся.
С ростом команды и развитием продукта становится ясно, что одним беклогом все нужды не покроешь, соответственно многие команды постепенно создают свою систему беклогов, где задания распределены наиболее удобным для этой команды образом. В этом посте я хочу описать систему беклогов, с которой мне пришлось работать и которая мне кажется хорошей основой для разработки собственной системы.
Беклог продукта
В этом беклоге содержится список всех заданий, которые стоило бы сделать в рамках работы над продуктом. Эти задания могут обладать любой степенью детализации, начиная от одной фразы, брошенной заказчиком в чат, и заканчивая полноценной функциональной спецификацией (хотя последние, конечно, лучше разбить на несколько дочерних). Хранение всех подобных заданий в одном месте помогает при планировании следующей фазы проекта: выбирать из существующих пунктов обычно легче, чем придумывать новые.Группировка
При перерастании беклогом некого количественного предела заданий назревает необходимость группировки этих самых заданий для лучшей по ним навигации. Опять-таки, группировка - дело каждой команды и каждого конкретного проекта. Простейшим способом группировки заданий является группировка по компонентам системы: домашней странице сайта, модулю высокопроизводительных вычислений или собственному API. В простых проектах такая группировка себя оправдывает, но с увеличением проекта она постепенно начинает больше мешать, чем помогать. Как альтернативный вариант, можно использовать группировку фич по высокоуровневым сферам жизнедеятельности продукта:- Юзабилити. Иногда имеет смысл не делать каждый отдельный запрос по улучшению юзабилити продукта, а накопить некоторое количество и заняться всеми сразу. Более того, большое количество улучшений по юзабилити в соответствующей категории вашего беклога говорит о том, что, скорее всего, вашему проекту требуется некоторая переработка в плане удобства использования.
- Новые блоки функциональности. Если у вас в беклоге имеется несколько новых глобальных фич (например, социализация всего сервиса), есть смысл выделить их всех в отдельную категорию. Такие крупные фичи отличаются от более конкретных мелких заданий. С увеличением размера фичи растет время на ее реализацию, возникает необходимость глубокого анализа, обширных исследований и более-менее скрупулезного планирования. Хранение подобных новых фич в одном месте позволяет легче расставлять приоритеты при планировании новой фазы проекта, заранее организовывать создание набросков дизайна, технические и бизнес исследования.
- Маркетинг. В этой категории стоит хранить те задания и новые фичи, которые так или иначе связаны с маркетингом. В частности, сюда можно отнести поддержку распродаж или специальных предложений, создание тематического блога в рамках проекта, внедрение поддержки партнерских программ.
Эстимирование
Как уже говорилось выше, беклоги очень помогают при планировании следующей фазы проекта: вы можете расставлять приоритеты и создавать выборку заданий, с которыми ваша команда наверняка справится за указанный срок. Для облегчения приоритизации имеет смысл давать каждому заданию некую оценку навскидку, глядя на которую можно ориентироваться: включать эту двухмесячную функциональность в трехнедельную итерацию или нет. Про оценки я писал раньше, поэтому напомню лишь о том, что фичи длиной от двух-трех недель и больше скорее всего стоит разбить на несколько более мелких заданий.Теги
В крупных проектах имеет смысл создать свой набор тегов, с помощью которых вы наиболее полно и удобно сможете отражать состояние заданий в вашем беклоге до их фактической реализации. По этим тегам удобно оценивать готовность задания к передаче в ловкие руки программиста. Возможные теги:- Needs analysis - заданию требуется отдельное исследование на бизнес- или маркетинг- тематику
- Needs technical research - заданию требуется исследование технической стороны реализации задания
- Needs specification - заданию требуется проработка деталей, которые должны быть собраны в функциональной спецификации
- Needs prototype - заданию необходим прототип для UX тестирования или просто - посмотреть.
- Needs design - задание жаждет внимания дизайнера и очень хочет из простых скетчей стать чем-то красивым и стильным
Приоритеты
Приоритизация заданий в беклоге позволяет вам оценить важность реализации этого задания для вашего продукта. Если вы не можете определить важность функциональности для продукта - вам она скорее всего не нужна. Если же можете - поставьте соответствующий приоритет заданию и пользуйтесь им для выбора заданий на следующую фазу проекта. Есть много уровней приоритетов для заданий в проекте - это, опять-таки, зависит от специфики проекта. Для определения своих уровней приоритетов можете воспользоваться этими простыми уровнями:- High (лучше всего сделать)
- Medium (было бы хорошо сделать)
- Low (подумайте, стоит ли это делать)
Технический беклог
Технический беклог может быть частью беклога продукта, но для больших систем лучше выделять его в отдельный беклог.Назначение
При разработке новой функциональности команда обычно фокусируется на соблюдении бизнес-требований. В разработке, иногда вы приносите качество своей работы в жертву скорости, которая позволит вам схватить какую-то бизнес-возможность за хвост. Такие решения могут приводить к плохой архитектуре, ухудшению качества кода или использованию ручных рутинных операций из-за вовремя не написанного скрипта автоматизации. Подобные технические долги имеют тенденцию накапливаться и со временем в буквальном смысле могут потопить ваш продукт. Чтобы снизить риск от технических долгов имеет смысл хранить их все в одном месте, где вы сможете легко оценивать всю опасность.Наполнение технического беклога
Задания в технический беклог могут поступать от любого разработчика. При занесении задания в технический беклог стоит пройти по следующим шагам:- Четко определите проблему
- Определите плюсы и минусы от решения данной проблемы
- При необходимости определите некие гайдлайны, которых следует придерживаться всей команде для устранения проблемы в будущем
- Определите необходимость проведения дополнительных технических исследований
- Определите модули проекта, которые будут затронуты при решении проблемы - по сути, шпаргалка для QA отдела
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.