Инженерия требований

Роль лидера продукта

Коротко Леффингуэлл и Уидриг считают, что каждому проекту нужен лидер продукта (product champion): один человек или небольшая группа, для которых видение продукта — главный приоритет и у которых достаточно веса, чтобы разрешать конфликты и останавливать разрастание функциональности. Это роль уровня всего проекта, и её не следует путать со сторонниками продукта от классов пользователей, которых описывают Вигерс и Битти.

По материалам: Д. Леффингуэлл, Д. Уидриг, «Принципы работы с требованиями к программному обеспечению», гл. 18. Сравнение опирается на книгу: К. Вигерс, Дж. Битти, «Разработка требований к программному обеспечению», 3-е изд., гл. 6.

На этой странице

Главные идеи#

Зачем нужна эта роль#

Документ «Видение» — ключевой артефакт для определения продукта (см. Документ «Видение» в RUP). Кто-то должен его написать, поддерживать в актуальном состоянии и отстаивать. Ответ Леффингуэлла и Уидрига — лидер продукта. Должность значения не имеет: эту роль может играть менеджер продукта, руководитель проекта, менеджер по маркетингу или руководитель ИТ-проекта.

Что делает лидер#

Обязанности по списку авторов, здесь сгруппированные для удобства:

  • Видение и границы. Владеть видением продукта и защищать его. Проверять, что спецификации ему по-прежнему соответствуют. Управлять изменениями приоритетов и набора функций. Сопротивляться разрастанию функциональности.
  • Заинтересованные стороны. Вести выявление, пока требования не станут достаточно полными. Разрешать противоречивые запросы. Находить компромиссы, которые дают наибольшую ценность наибольшему числу заинтересованных сторон. Управлять ожиданиями всех участников.
  • Коммуникация. Быть официальным каналом между заказчиком и разработчиками. Вести переговоры с руководством, пользователями и разработчиками. Уравновешивать то, чего хочет заказчик, и то, что команда может сделать за отведённое время.

В компаниях — производителях ПО#

Здесь лидер обычно приходит из маркетинга или управления продуктом, а не из разработки: эта функция ближе всего к клиентам, от которых зависит успех продукта, и отвечает за выручку. Авторы советуют чёткое разделение: менеджер продукта решает, какие функции нужны и зачем; руководитель разработки решает, как их создать. Каждый отвечает за то, в чём разбирается лучше всего.

Во внутренних ИТ-подразделениях#

Здесь сложнее. Маркетинга нет, все заинтересованные стороны — внутренние подразделения с противоречивыми потребностями, и никто явно не уполномочен решать за всех. В случае, который описывают авторы, решение состояло из двух частей:

  1. Назначить лидера, например руководителя проекта, который владеет документом «Видение» и процессом выявления и приоритизации требований.
  2. Создать совет по управлению изменениями (change control board, CCB) — небольшой орган принятия решений из руководителей затронутых подразделений. Лидер готовит и представляет рекомендации; добавлять или убирать функции может только CCB.

Авторы подытоживают: лидер продукта плюс совет по управлению изменениями. Как совет оценивает влияние изменений, описано на странице Управление изменениями требований.

Без лидера#

Требования дрейфуют, сроки сдвигаются, а решения под давлением дедлайна принимаются плохо, потому что никто не берёт на себя ответственность за трудный выбор и не решает, когда пора остановиться. Авторы рассказывают о менеджере по маркетингу, который мог в любой момент попросить новую функцию и ни разу не услышал «нет».

Один английский термин — две роли#

Вигерс и Битти называют тем же английским термином product champion другую роль — сторонника продукта:

  • Вигерс и Битти: по одному стороннику продукта на каждый класс пользователей; это реальный пользователь, который доносит до аналитика потребности своего класса и проверяет требования. См. Классы пользователей и сторонники продукта.
  • Леффингуэлл и Уидриг: один лидер (или небольшая команда) на проект; владелец общего видения, который выступает арбитром между всеми заинтересованными сторонами и ведёт переговоры о границах.

В проекте могут — и часто должны — быть обе роли: несколько сторонников продукта от классов пользователей передают потребности одному лидеру уровня проекта, который принимает решения.

Как применять#

  1. Назовите лидера в начале проекта и запишите его права на решения: что он решает сам, а что только рекомендует.
  2. Выберите площадку для решений. В продуктовой компании объедините менеджера продукта («что») и руководителя разработки («как»). Во внутреннем ИТ создайте CCB из руководителей всех затронутых подразделений.
  3. Передайте документ «Видение». Лидер владеет им, и изменения в него проходят через лидера.
  4. Договоритесь о маршруте новых запросов. Каждый запрос новой функции попадает к лидеру, который сверяет его с видением и базовой версией, прежде чем что-либо обещать.
  5. Объявите, кто лидер, чтобы заинтересованные стороны перестали обращаться напрямую к разработчикам.

Если вы бизнес-аналитик, вы можете сами вести выявление и анализ, но право решения остаётся у лидера. Если этого права нет ни у кого, зафиксируйте это как риск проекта и обсудите со спонсором.

Пример#

В «Мастерской», вымышленной сети веломастерских, владелец назначает операционного менеджера лидером продукта в проекте онлайн-записи и статусов ремонта. CCB из владельца и двух управляющих мастерскими собирается раз в две недели; руководитель команды разработки участвует как советник.

В середине проекта механик просит добавить учёт запасов запчастей по каждой мастерской. Лидер сверяет запрос с видением (онлайн-запись и обновления статуса), видит, что он за текущими границами, вместе с разработчиками оценивает влияние и рекомендует релиз 2. CCB соглашается. Запрос механика записан, а не потерян, и дата релиза не сдвигается.

Подводные камни#

  • Лидер без полномочий. Если руководители регулярно отменяют его решения, никто не будет считать их окончательными.
  • Несколько неофициальных лидеров. Заинтересованные стороны лоббируют разных людей; назовите одного.
  • Лидер как сборщик функций. Работа включает умение говорить «нет».
  • Смешение двух ролей. Сторонник продукта от класса пользователей говорит за один класс; не ждите, что он будет арбитром между классами.

Источники и что почитать#

  • D. Leffingwell, D. Widrig. Managing Software Requirements: A Unified Approach. Addison-Wesley, 2000. Рус. изд.: Д. Леффингуэлл, Д. Уидриг. Принципы работы с требованиями к программному обеспечению. Унифицированный подход. М.: Вильямс, 2002. Гл. 18.
  • K. Wiegers, J. Beatty. Software Requirements, 3rd ed. Microsoft Press, 2013. Рус. изд.: К. Вигерс, Дж. Битти. Разработка требований к программному обеспечению, 3-е изд. М.: Русская редакция; СПб.: БХВ-Петербург, 2014. Гл. 6 (product champion в значении представителя класса пользователей — «сторонник продукта»).