Предпроектный анализ: Серия 2
В прошлой части перечислялись проблемы, решения и принципы, о которых необходимо помнить при запуске проекта. В этой статье мы обсудим основные проблемы предпроекта озвученные в первой части:
- «Письмо Дяди Фёдора»
- Не учтены полный ЖЦ и структура как системы, так и финансового актива
- Избыточная детализация требований
- Не представлены объем и достаточное деление системы
- Не проявлено понимание целей заказчика
- Нет основания приемки результата
- Выбран неверный режим коммуникации требований
Давайте рассмотрим каждый пункт.
[sendpulse-form id=”278″]
«Письмо Дяди Фёдора» или “Запорожцы пишут письмо турецкому султану”
Эта проблема возникает у заказчиков далеких от мира IT или с низкой IT-зрелостью.
Начинающие заказчики ИТ-систем действуют так: несколько человек высказывают свои мысли обо всем, что приходит им в голову в связи с построением обсуждаемой системы. Эти мысли записываются как есть в произвольном порядке и называются ими требованиями.
В этом случае записывается не всё, что нужно для успеха построения системы, а только исходно непонятное или интересное лично каждому из авторов, то, что «и так всем ясно».
В таких требованиях нет полноты, непротиворечивости, однозначности, понятности.
Результат оценки и планирования по таким требованиям: «на любой вопрос – любой ответ».
Ближе к концу проекта в таких случаях всплывают фразы: «эта система полностью соответствует ТЗ, но не делает то, что нам нужно» или «ой, мы забыли еще …» или «в этом ТЗ мы имели в виду совсем другое».
Со стороны исполнителя такие технические задания ставят в первую очередь вопрос о том, как будем приемо-сдавать результат. «Письмо дяди Федора» или от “запорожцев” для исполнителя — «попадание в рабство» к заказчику на пару лет.
Не учтен полный жизненный цикл и структура системы
В какой-то момент становится ясно, что ТЗ надо писать и писать его хорошо.
В зависимости от того, к кому попадет идея проекта: специалистам по железу, ПО-эксплуатационщикам или кому-то еще, мы получаем перекос в разные стороны.
Разработчики ПО любят писать детальное ТЗ на программу, забывая, что надо привезти и установить оборудование, озаботиться каналами связи.
Специалисты по инфраструктуре (со стороны поставщика) и люди с амбициями архитектора любят загоняться по красивым архитектурным решениям вопросов мониторинга, катастрофоустойчивости, высокой нагрузки и прочих «космических кораблей, бороздящих просторы Большого театра», забывая о функциональном составе.
Разобравшись в железе и ПО часто обнаруживают, что надо еще как-то организовывать пользователей, мигрировать данные, создать интеграционные каналы в соседние системы и еще много вещей, на которые забыли заложить деньги и сроки. Но что интересно, оказывается, часть работ невозможно выполнить без участия заказчика, который не хочет в чем-то участвовать.
В итоге, планируются не все работы, которые надо выполнить, чтобы система заработала. Или «чужие», или непонятные разделы проекта маркируются как «это не проблема» и недооцениваются по деньгам и по срокам.
Но система должна не только запуститься, но и принести ожидаемый эффект и вернуть вложения. Об этом забывают чаще всего.
Уже построенная, но бесполезная система саботируется пользователями, не получает необходимых ей эксплуатационных расходов и умирает.
Казалось бы, исполнителю это не так важно, ведь он получит свои деньги. На самом деле отсутствие ответов об эффективности и отдаче могут создать проблемы с финансированием уже на стадии внедрения и при сдаче-приеме заказчику.
Чем ближе подписание приказа о переводе в промышленную эксплуатацию, тем сильнее люди задумываются о будущем — о том, что им скоро предстоит остаться один на один с системой, показать бизнес-эффект и отчитаться за вложение денег. Замечаний становится больше, они становятся все более мелочными и бессмысленными — люди оттягивают завершение опытной эксплуатации, так как чувствуют какой-то подвох, но не могут его понять.
Избыточная детализация требований
Преодолев предыдущие проблемы, приняли решение писать ТЗ, поняли, с кем надо не забыть поговорить, осознали, что требования надо проверять на взаимные противоречия и обеспечивать полноту для всех точек зрения.
На этом этапе частой проблемой бывает непонимание текущего назначения требований. Нам пока не нужно загружать команду входом и давать исчерпывающие описания тестировщикам. При этом часто, услышав, что нужно ТЗ, еще до старта проекта, коллеги пытаются написать (а заказчики заказать) ТЗ на ПО, время которого в конце технического проекта.
ТЗ которое нужно сейчас — это другой набор решений как по составу, так и по назначению.
Неизбежно при попытке забежать вперед получается или слишком дорого (а мы еще не знаем, делаем проект дальше или нет), или слишком расплывчато, так как в приемлемых для предпроекта сроках и бюджете принять все необходимые решения для старта разработки невозможно.
В такой ситуации люди, участвующие в процессе, теряют веру в практику написания ТЗ и идут искать лучшей доли в другие практики.
Не представлены объем и достаточное деление системы
Мы разобрались, которое ТЗ писать.
Учитывая, что судьба проекта не ясна, нас просят сделать ТЗ подешевле.
Я видел много ТЗ на систему, из которых невозможно получить полный и ясный список, дающий нормальную смету. Не ясно, что купить, что куда и на что поставить, как соединить и настроить, что разработать, кого учить, кого нанимать или отвлекать, откуда и куда мигрировать данные и т.п.
Оценка стоимости системы не уточняется и не возникает «поля для торговли» по цене и срокам: что будем резать и какие возможности при этом «отвалятся».
И это закономерно, так как до ТЗ нужно придумать концепцию системы.
Вопрос достаточного деления системы — это одна сторона монеты. На другой стороне собственно реализуемость — возможность получить плановый эффект и выполнить требования, соединяя некое количество компонентов в единое целое.
Хорошая концепция не бесплатна, сделать ее недорогой надо уметь. Поэтому часто делается плохая концепция или не делается никакая.
Не проявлено понимание целей заказчика
Когда финансовый директор говорит нам: «Вы сейчас зачитали мне 243 функциональных требования, 15 нефункциональных требований, 10 видов обеспечения, но это для меня белый шум. Скажите проще, что улучшится, если я сейчас забюджетирую и потрачу эти конкретные $5 млн? Кого мы сможем уволить? Мы будем больше продавать или производить? Вы готовы взять это как обязательства?»
Люди, выделяющие деньги, думают об эффективности и отдаче — им отчитываться за эти деньги и показатели. Такой вопрос поставят прямо или косвенно и перед исполнителем к моменту сдачи-приемки системы.
Обычно, если работа идет через документы, за ответы на такие вопросы отвечают бизнес-требования (или требования заказчика), которые надо создать до концепции.
Нет основания приемки результата
Справившись с обоснованием эффективности, мы должны решить последнюу задача — объяснить будущей проектной команде, чего от нее ждут.
Требования должны быть не только полными, обоснованными, реализуемыми, но и тестируемыми. Это отдельная работа и другой документ — собственно ТЗ на систему, которое нельзя путать с ТЗ на ПО.
В итоге, выполняя задачи предпроекта, надо понять бизнес-требования, придумать концепцию системы, утвердить вариант концептуального решения, устраивающий по соотношению цена/эффект (или возможности) заказчика и записывать в ТЗ для проектной команды окончательные договоренности.
Выбран неверный режим коммуникации требований
Осознали важность ТЗ, не доверили его разработку случайным людям и случайному процессу, выполнили задачи предпроектной фазы и теперь осталось лишь донести решения всем заинтересованным сторонам, чтобы основная договоренность о старте проекта вступила в силу.
Обидно, проделав существенную работу в сжатые сроки, поняв эффективность, окупаемость системы, ее концептуальный образ, план создания и стоимость, не донести это до заинтересованных лиц, влияющих на запуск проекта.
Коммуникация в предпроекте описывается фразой: «Первое впечатление можно произвести только один раз». Если проекту откажут в финансировании, потому что спонсор не убежден в отдаче, или заказчик не убежден в эффекте, или пользователи не убеждены в новизне получаемых возможностей, то «показать класс» уже не получится.