Начало любого проекта – это идея заказчика или владельца продукта, сформулированная в виде бизнес-требований, ТЗ или записок на салфетке. Как был бы прекрасен процесс разработки, если бы важные детали прорабатывались уже на этом этапе!
К сожалению, зачастую эти самые важные детали обычно опускаются. Вместо них мы получаем противоречивые и запутанные описания, приводящие к противоположному от задуманного результату. Попутно образуется коллекция смешных (а иногда и не очень) перлов, которые впоследствии растаскиваются на мемы или становятся частью командного стикерпака.
Обо мне
Меня зовут Евгений Бондарчук, я руководитель команды разработки в Магните. Сегодня я бы хотел обсудить проблему коммуникации между бизнесом и ИТ в части постановки и понимания бизнес-требований, а также предложить решения, которые уже помогли в ряде проектов. Поехали?
Disclaimer: описанное ниже было собрано из разных компаний и проектов, так что все совпадения считать исключительно совпадениями.
Причина проблем, или Лирики vs Физики
Один из самых популярных конфликтов в истории человечества не мог не докатиться и до ИТ. Заказчик что-то хочет, но не может объяснить, что именно. Разработка старается понять пожелания заказчика, но в итоге понимает не то, делает не так и вообще «вы не понимаете, это другое». Где-то рядом бродит печальный менеджер, который пытается всем помочь, но в итоге получает с двух сторон свою порцию лучей добра и позитива и с дичайшим выгоранием отправляется лечить нервы в ближайшем доме с желтыми стенами.
По сути каждая сторона в чем-то права. Но как же тогда сформировать понятные требования, если у всех разное видение проекта?
Решение
Говорите на одном языке с заказчиком
А еще лучше создайте общий глоссарий с правильными названиями объектов, и тогда таблицы на фронте останутся таблицами, не превращаясь при этом в загадочные ящики (для вас) и непонятные гриды (для заказчика).
Создайте шаблон бизнес-требований
Соберите пожелания к формату и структуре требований от всех, кто участвует в процессе разработки: системных аналитиков, разработчиков, QA, сопровождения, РП.
Обсудите полученные предложения от команды с заказчиком, продумайте обязательные и дополнительные ингредиенты идеального бизнес-требования.
Совместно с заказчиком составьте шаблон для бизнес-требований так, чтобы заказчику было удобно его заполнять, а вам – читать и понимать написанное.
Определите цели проекта
Убедитесь что вы правильно поняли «боль», которую надо решить, а заказчик – что именно он получит на выходе. Объяснять можно хоть на кошечках и собачках, главное, чтобы вы нашли взаимопонимание. А дальше поможет глоссарий (я надеюсь, вы его уже используете?).
Только, пожалуйста, не следуйте советам из брошюры Simple Sabotage и не создавайте встречи ради встреч и комиссии по решению вопросов, которые можно было бы решить за пару минут.
Скажите «Нет!» технической реализации в бизнес-требованиях
Да, заказчики бывают с разным техническим бэкграундом, но если в руках молоток, то все начинает казаться гвоздями. А если человек долгое время работал в Битриксе – ничего кроме Битрикса зачастую он предложить не сможет, накладывая ограничения сторонней системы на тот продукт, который вы в итоге планируете сделать. Реальный пример из опыта – могут попросить «Выгрузить весь интернет в Excel».
Зафиксируйте ключевые показатели эффективности проекта
Если бизнес-требования не содержат однозначного способа измерить результаты внедрения проекта, то, скорее всего, у вас большие проблемы: заказчик не знает, как оценить полученный продукт, а команда не понимает реальной пользы проекта.
Внесите обязательность показателей в шаблон бизнес-требований, грабьте, воруйте, но критерии эффективности проекта должны быть зафиксированы.
Вовлекайте заказчика в весь цикл разработки ПО
Казалось бы, классика гибких методологий, но зачастую активная деятельность заказчика заканчивается на фразе: «Вот вам бизнес-требования». К моменту MVP или демо бывает уже трудно до чего-то договориться. Особенно это заметно на длинных проектах, где в ходе разработки может поменяться большая часть состава — как со стороны заказчика, так и со стороны разработки.
Лучшая битва – это та, которая не начиналась, поэтому можно заранее подстелить соломки и уточнить все на берегу.
Секреты шеф-повара, или что должно быть в бизнес-требованиях
Попробуем сформулировать основные разделы бизнес-требований:
Информация о заказчике (ФИО и функция)
Дорабатываемая система (если есть)
Приоритет проекта или доработки
Желаемая дата релиза проекта
Краткое описание цели проекта
-
Как работает сейчас?
Описание текущего бизнес-процесса
Какие системы задействованы в бизнес-процессе?
Какая информация используется в бизнес-процессе?
Какая информация передается в рамках бизнес-процесса?
Какая информация получается в рамках бизнес-процесса?
Какие текущие проблемы бизнес-процесса?
Как должно работать? (описание желаемых доработок без технических деталей)
Сценарии использования, включая негативные (Use Cases)
Текущие показатели эффективности (метрики)
Ожидаемые показатели эффективности (метрики)
-
Дополнительные заинтересованные стороны
На кого могут повлиять доработки?
Кому необходимо сообщить о планируемых доработках?
Какие дополнительные функции необходимо привлечь к анализу и разработке?
-
Ограничения и риски
Противоречие интересам других функций и систем компании
Законодательные риски
Etc, риск-менеджмент отдельная тема, но чем больше мы узнаем на этапе бизнес-требований, тем меньше возможных проблем получим потом
Пример плохих бизнес-требований
Сделайте, чтобы заработало. Вчера.
Еще пример
Happy end*
В качестве завершения хотел бы сказать, что эта статья не ставит перед собой цели придумать «серебряную пулю», которая решит все проблемы взаимодействия между заказчиком и разработкой, но, возможно, поможет наладить коммуникации и структурировать подходы к работе с бизнес-требованиями.
*При написании статьи ни один заказчик, менеджер и разработчик не пострадал)
Комментарии (9)
nika_martianova
22.03.2024 06:47Статья очень в тему, спасибо автору!
Будем использовать этот чек-лист при работе с заказчиками, т.к. с БТ постоянно возникают трудности (
Evgeny_Bondarchuk Автор
22.03.2024 06:47Спасибо! Буду рад узнать, если где-то ситуация выправится, и мир станет чуточку лучше)
Batalmv
22.03.2024 06:47+1А еще лучше создайте общий глоссарий с правильными названиями объектов, и тогда таблицы на фронте останутся таблицами, не превращаясь при этом в загадочные ящики (для вас) и непонятные гриды (для заказчика).
Из личного опыта. Когда кто-то на встрече говорит "давайте поговорим о терминах", и после этой фразы реально обсуждаются термины - я понимаю, что на этой встрече дела не будет и надо просто работать в ноутбуке
Создайте шаблон бизнес-требований
Мама, мама, я смогла съесть кашу вилкою, почти всю :) Какая я молодец :)
Внесите обязательность показателей в шаблон бизнес-требований,
грабьте, воруйте, но критерии эффективности проекта должны быть зафиксированы.Таки стоит говорить о терминах, так как у нас не рабочее совещание. Критерии эффективности проекта не меняются уже много веков. Бюджет, скоуп, сроки. Вписали во все три? Красавчик, это удается немногим. Вписались в два. Тож неплохо. Если нет - ищите другую работу.
Ну и идея в БТ фиксировать критерии эффективности проекта - это уже за гранью. Ну либо у вас ПМ/БА - одно лицо и ему проще все писать в одном месте.
Один из самых популярных конфликтов в истории человечества не мог не докатиться и до ИТ. Заказчик что-то хочет, но не может объяснить, что именно. Разработка старается понять пожелания заказчика, но в итоге понимает не то, делает не так и вообще «вы не понимаете, это другое». Где-то рядом бродит печальный менеджер, который пытается всем помочь, но в итоге получает с двух сторон свою порцию лучей добра и позитива и с дичайшим выгоранием отправляется лечить нервы в ближайшем доме с желтыми стенами.
Можно нанять аналитика + архитектора, которые это решат :) Ну или найти людей, которые называются по другому, но делают именно это :)
Соберите пожелания к формату и структуре требований от всех, кто участвует в процессе разработки: системных аналитиков, разработчиков, QA, сопровождения, РП.
И потом выкиньте это в урну :) Не, я не против, если у меня, к примеру, кто-то попросит чего-то добавить в architecture vision / solution документ. Но ходить и собирать пожелания ... разве что если задаться целью показать всем, что на этот проект выделили архитектора дегенерата, который не знает, в чем заключается его работа
Если с такими же вопросами будет ходит условный БА (что мне писать в БТ), или QC (как мне писать тест кейсы) - то вопрос только один. Как такие чудесные кадры вообще попали в организацию, и что тогда я ту делаю
Скажите «Нет!» технической реализации в бизнес-требованиях
Вот это наверное единственное светлое пятно в этой статье
QALiberum
22.03.2024 06:47+1Но ходить и собирать пожелания ... р
А всегда ли БА эффективно и в удобной для остальных участников процесса разработки виде формализует требования? Я понимаю, что это навык и важнейшая функция БА. Но если команда приняла решение работать по BDD паттерна или QA недавно внедрили AI, которые определенный формат требований превращает в тест-кейсы, к примеру?
Batalmv
22.03.2024 06:47+1По BDD паттерну не скажу, почитать конечно в инете могу, но вы и без меня можете сделать тоже самое. Если вы раскроете эту мысль своей практикой - я наверное смогу что-то прокомментировать
Про QA - и что, теперь все должны под это подстроиться? Я так себе представляю, приходит QA lead на стенд ап и говорит: мы тут внедрили AI, и теперь вы должны работать по другому :) В реальной жизни лучшим раскладом для QA будет уйти с такой встречи без своих идей, распечатаных на бумаге в каком-то из отверстий своего организма
Ну а если серьезно ... команда на то и команда, чтобы работать слажено. Задача BA выдавать то, что могут потреблять остальные, а не только собирать требования. БА - это часть маршрута, а не тупик, где оседают артефакты
А как именно - во всех командах чуть-чуть да по разному
fasvik
22.03.2024 06:47+1Отличная статья, большое спасибо за чек-лист! Отдельно хотелось бы спросить про
Скажите «Нет!» технической реализации в бизнес-требованиях
Что делать, если всё таки требования есть? По типу "реализуйте на этом инструменте, чтобы я мог разобраться в нём если что/после вас"?
Evgeny_Bondarchuk Автор
22.03.2024 06:47Спасибо за комментарий!
Появление технической реализации в бизнес-требованиях обычно связано с дополнительными факторами (затраты на разработку, лицензии, стоимость владения, риски, etc). Например - во всей компании/функции используется один и тот же инструмент, и заказчик хочет сделать на нем, чтобы не изучать новый/не переучивать людей. Тут скорее важно понять, что именно и почему хочет заказчик (отталкиваться от потребности), а как именно это решить технически - будет прорабатываться на уровне дизайна системы, архитектуры, аналитики и разработки. Большинство заказчиков в итоге соглашаются с таким подходом, т.к. на самом деле для них не имеет значения, как именно задача будет реализована, если в итоге она будет реализована с тем функционалом, который они хотели и в срок.
А для того, чтобы помочь, "разобраться после вас" можно использовать руководство пользователя/аналогичную документацию.
jvsg6
Всеми руками за такое, но сразу возникает вопрос: как заказчика уговорить/убедить/заставить говорить на языке глоссария?
Evgeny_Bondarchuk Автор
Вопрос внутренних договоренностей (сразу оговорюсь, что серебряной пули тут тоже нет). Можно постоянно использовать правильные термины из глоссария/ссылаться на глоссарий и заказчик рано или поздно привыкнет.
Важно помнить, что эта дорога идет в два направления, поэтому разработке тоже стоит использовать правильную терминологию)