12 рисков в разработке ПО по техническому заданию

Написание подробного технического задания для IT-проекта воспринимается как стандарт. Все пишут ТЗ, стараясь снизить риски и упростить разработку. Но с работой по ТЗ связан ряд проблем, которые стоит учитывать.

1. Исполнитель строго следует ТЗ

Порядочный исполнитель работает для достижения бизнес-цели, которую поставил заказчик. А реализация согласованного ТЗ гарантирует получение денег за сделанную работу. Но представьте ситуацию, когда в очередном пункте задания находится противоречие с бизнес-целью. Что если в середине проекта выяснилось: какие-то задачи можно решить лучше, быстрее, но не по ТЗ? Исполнитель скорее всего закроет глаза на эффективность и просто выполнит задачу так, как она описана и согласована.

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

В идеальном мире они должны стремиться к достижению бизнес-цели. Но после появления ТЗ они стремятся выполнить его в полном объеме. К первоначальному движению в сторону бизнес-ценности добавляется желание поставить галочку напротив каждого пункта. Обратите внимание на мотивацию каждой из сторон – и вы увидите, что ТЗ занимает в проекте центральное место и со временем подменяет цель проекта.

2. Заказчик строго следует ТЗ

Парадоксально, но заказчику тоже проще закрыть глаза на эффективность решения бизнес-задачи и работать строго по ТЗ. Это происходит, когда с разработчиком взаимодействует менеджер, который не рискует личными деньгами, например, руководитель подразделения или другой сотрудник, которому поручили вести проект. Такие люди нарвутся на неприятности, превысив бюджет или сроки, согласованные в плане проекта. Но если они реализуют ТЗ, согласованное начальством, им ничего не грозит.

3. ТЗ создает иллюзию определенности и контроля

Подписанное ТЗ гарантирует, что исполнитель пообещал определенный результат, но жизнь не гарантирует, что все произойдет по плану. Согласованное ТЗ воспринимается как стопроцентно определенное будущее, все планы строятся под него. Но статистика подсказывает, что в большинстве случаев сроки и бюджет проекта будут превышены, а разработанное ПО получится недостаточно высокого качества. По данным CHAOS Report, в 2015 году только 29% проектов завершились в срок без превышения бюджета и с полным набором функций.

ТЗ действительно фиксирует вершины проектного треугольника, но эта фиксация создает лишь иллюзию предсказуемости и контроля. История знает случай внедрения системы SAP у одного российского ритейла. У «саперов» ушел год на составление ТЗ. Еще год – на настройку и программирование SAP. В итоге заказчик остался недоволен, потому что система работала медленно и частично ошибочно, «саперы» недостаточно разобрались в бизнесе. И еще три года ушло на борьбу, дописывание, исправление.

4. ТЗ не дает ответа на все вопросы

Вопросы быстрее и качественнее решаются во время живого общения. Планирование, стендапы, демо, работа в парах, вовлечение клиентов в тестирование, сбор обратной связи на ранних этапах и постоянная корректировка планов, – это все необходимо для достижения качества. Но когда написано подробное ТЗ, появляется соблазн отправлять читать ТЗ, а не отвечать на дополнительные вопросы. В итоге ТЗ заменяет здоровую коммуникацию на проекте.

Проблема в том, что ТЗ никогда не будет всеобъемлющим. Аналитик мог что-то упустить, архитектор подразумевал, но не нарисовал. А вопросы по ТЗ уже не задашь, и пойдешь додумывать ответ сам.

5. Авторы ТЗ недоступны

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

6. ТЗ можно составить только под простые задачи

Бывает так, что наиболее рискованные и неопределенные задачи нельзя изучить и описать заранее. Они больше похоже на R&D, чем на реализацию функций. Здесь прямая аналогия с клиническими исследованиями, весь процесс и результат которых невозможно описать заранее, а можно только построить гипотезы и придумать методику.

Получается, что подробное ТЗ можно написать только для очень конкретных и относительно простых задач, которые находятся в правом секторе Cynefin Framework. Но бизнес редко ставит такие простые и конкретные задачи. Если работать над функциями, которые двигают бизнес вперед, то это верхний левый квадрат Complex, а для него ТЗ уже не напишешь.

7. ТЗ можно совершенствовать бесконечно

Написание ТЗ стоит денег, которые хочется сэкономить. При этом мы балансируем между двумя крайностями: переплатить временем и деньгами за чрезмерно подробное описание задач или описать задание недостаточно подробно, что приведет к серьезным рискам и ошибкам. Только эксперт сможет найти золотую середину, а таких экспертов мало. Среднестатистический IT-аналитик имеет все шансы ошибиться.

8. ТЗ не фиксирует качество

Я, как разработчик и IT-архитектор, прекрасно понимаю, что любую задачу, как бы подробно она ни была описана, можно выполнить сотней разных способов. Одни способы будут качественными и дорогими, другие быстрыми и «костыльными». Другими словами, при написании кода ужасного качества, можно формально выполнить требования ТЗ. Есть способы достигнуть высокого качества IT-продукта, но точно не с помощью ТЗ.

9. ТЗ работает по принципу «все или ничего»

К сожалению, нельзя согласовать ТЗ наполовину или договориться сделать самые важные пункты из согласованных. Если ТЗ подписано и выделен бюджет, то вам придется сделать все, что в нем указано. Его «монолитность» не поддается дроблению по принципу Парето 20/80, что приводит к неэффективной работе.

10. Невозможно доказать непротиворечивость

Если в вашем ТЗ больше сотни страниц, то в этом задании, наверняка, есть противоречия. И обратного никто не докажет. Фактически вы всегда подписываете ТЗ с противоречиями.

11. Невозможно доказать полноту

Как в предыдущем пункте, невозможно доказать, что в ТЗ описаны все сценарии, взаимосвязи, точки интеграции и т. п. Достигнуть 100-процентного покрытия задач можно, если имеешь бесконечный бюджет. В других случаях ваше ТЗ не будет полным.

12. Не вдохновляет исполнителя

Заказчику не стоит надеяться, что ему удастся через текст ТЗ вдохновить разработчика или передать ему свое стремление получить новую ценность для бизнеса.

Не все так плохо

Риски, которые влекут описанные проблемы, можно снизить. Например, предусмотреть в контракте, что ТЗ можно менять, упростить процедуры пересогласования или разрешить реализовать ТЗ не в полном объеме, но подчеркнуть важность достижения бизнес-цели.

Работа над каждой проблемой так или иначе связана с выстраиванием партнерских отношений между заказчиком и исполнителем, а это тяжелая работа.

Комментарии
Генеральный директор, Челябинск
Платон Миронов пишет:
разработке чистого железа, норма это вся строительная отрасль

Материальный и нематериальный мир нет смысла сравнивать с точки зрения процессов. В разработке ПО проверка гипотез и поставка релизов на порядок дешевле.

Руководитель проекта, Москва
Александр Бындю пишет:
Материальный и нематериальный мир нет смысла сравнивать с точки зрения процессов. В разработке ПО проверка гипотез и поставка релизов на порядок дешевле.

У вас хороший рынок. Он адекватный. И работать на нём приятно. Безусловно свои трудности есть, но всё же.

Общаясь с вашими коллегами по цеху я часто не нахожу понимания. Потому что вы работаете в первую очередь для удовлетворения клиента, а затем для исполнения контракта. Иначе у вас не купят.

А мы ровно наоборот. Контракт это всё, в противном случае штрафом и внесением в базу недобросовестных поставщиков нас просто прибьёт. Отсюда возникают задачи "юридической фиксации состава работ" и "юридически обоснованных изменений в состав работ", которые у вас не существует.

Поэтому я и сказал изначально, что статья правильная. Для вашего рынка. Просто статьи, подобные вашей, к сожалению, порождают мечтателей и космонавтов среди топ-менеджеров и РП :))). Которые начинаю тащить ваш Agile и раскрытые партнёру объятия к нам. А у нас такое не работает :)))

Потом приходится много сил на приведение в сознание тратить :)))

Нач. отдела, зам. руководителя, Москва
Александр Бындю пишет: Я с вами согласен. Немного оффтоп о том как бывает Не купитесь на ERP!

Большинство проектов по внедрению ERP систем были провальными, но по ссылке в УКАЗАННОЙ статье совершенно откровенная ерунда написана:

"Первые ERP системы были вовсе не для производственных нужд."

Западные системы, которые появились на нашем рынке в начале 90-х разрабатывались ИМЕННО ДЛЯ производства BAAN4 и SAP.

То, о чём должны были написать в этой статье - это распространение логики построения систем класса MRP на каналы дистрибуции, т.е. системы планирования распределения продукции и ресурсов - DRP.

Нач. отдела, зам. руководителя, Москва
Анатолий Курочкин пишет: В небольших разработках(например, написать интернет-магазин, я обходился без ТЗ, а всего лишь фиксировал основные требования на 1-2 страничках. И затем подгонялось под конкретные требования по ходу эксплуатации.

Да, в этой области так обычно и работают небольшие компании, приходилось сталкиваться :)

Нач. отдела, зам. руководителя, Москва
Автор пишет в статье : 11. Невозможно доказать полнотуКак в предыдущем пункте, невозможно доказать, что в ТЗ описаны все сценарии, взаимосвязи, точки интеграции и т. п. Достигнуть 100-процентного покрытия задач можно, если имеешь бесконечный бюджет. В других случаях ваше ТЗ не будет полным.

Если автор статьи ставил задачу осветить проблему в Общем, то тогда здесь смешиваются два понятия Техническое задание и Технический проект. Если речь идёт о внедрении готового программного продукта, то тогда, например, могут быть добавлены экранные формы. Но "все сценарии, взаимосвязи, точки интеграции и т. п", как пишет автор не входят обычно в ТЗ.

И в Agile не обходятся без конкретных технических требований, описанных в ТЗ.


Исполнительный директор, Москва
Александр Соловьев пишет:
Если автор статьи ставил задачу осветить проблему в Обще

На мой взгляд, автор изложил СВОЁ понимание КУСОЧКА процесса разработки Программных Продуктов, связанного с Техническим Заданием.

Наверное, автор делает анализ на основе своего личного опыта. Я же, занимаясь "ЭТИМ" более 30 лет, не согласен с большинством его суждений.

Автор не знает или не понимает, что уже давно серьезные IT-проекты начинаются не с ТЗ, а документа заказчика - "Требования к ...". Мы называем это - "хотелки заказчика". А само ТЗ есть плод трудных переговоров, в результате которых и рождается ТЗ. При таком подходе ТЗ пишется ИСПОНИТЕЛЕМ и утверждается ЗАКАЗЧИКОМ.

Этот процесс исключает почти все "страшилки" о которых пишет автор. К тому же ТЗ не содержит необходимости поиска решений. В ТЗ написано "что делать...", "как делать...", "что получает заказчик...".

Так делается у нас...

Можно делать и по другому, и иметь описанные риски. "Каждому своё..."


Генеральный директор, Челябинск
Платон Миронов пишет:
А мы ровно наоборот

Весело :) Я всего пару раз участвовал в гос. контрактов и понял, что это не моё.

Генеральный директор, Челябинск
Валерий Овсий пишет:
Автор не знает или не понимает, что уже давно серьезные IT-проекты начинаются не с ТЗ, а документа заказчика - "Требования к ...". Мы называем это - "хотелки заказчика". А само ТЗ есть плод трудных переговоров, в результате которых и рождается ТЗ. При таком подходе ТЗ пишется ИСПОНИТЕЛЕМ и утверждается ЗАКАЗЧИКОМ.

К счастью мир изменился. Возможно в вашем опыте так, но в моем не так. Я работал тренером в ScrumTrek и вел AgileCamp, видел сотни компаний, включая банки российские и иностранные.

Я понимаю мир, в котором вы живете, но я знаю, как жить иначе без лишних потерь и с более качественными результатами.

Генеральный директор, Челябинск
Александр Соловьев пишет:
И в Agile не обходятся без конкретных технических требований, описанных в ТЗ.

Уже много лет как обходится. Только эти требования не жесткие и не детальные. Вот пример https://byndyusoft.com/productanalysis, это часть наших "ТЗ"

Исполнительный директор, Москва
Александр Бындю пишет:
видел сотни компаний, включая банки российские и иностранные.

Я совершенно не сомневаюсь, что вы видели банки. Но одно дело видеть и постоять у входа в банк, другое дело работать с банком.

У нас контракты на разработку ПО с такими банками как (см. на сайте компании). и международный сертификат на "Разработку, внедрение, сопровождение ...". Чтобы получить такие контракты, это даже Вы должны понимать, нужно обеспечить необходимое качество разработок и современные ТЕХНОЛОГИИ производства ПО.

То что Вы пишите - это уровень "дворовых команд" разрабатывающих ПО "на коленках". Промышленное производство ПО давно переболело такими проблемами.


Александр Бындю пишет:
Я понимаю мир, в котором вы живете, но я знаю, как жить иначе без лишних потерь и с более качественными результатами.

Боюсь, что НЕ ПОНИМАЕТЕ! А то, что Вы будите жить иначе - не сомневаюсь. Вот только лучше или хуже? Вопрос!

Оставлять комментарии могут только зарегистрированные пользователи
Статью прочитали
Обсуждение статей
Все комментарии
Дискуссии
Все дискуссии
Цифры и факты
Brexit под вопросом

Тренд дня: Лондон заподозрили в намерении остаться в Евросоюзе.

ЕС: Закон о защите данных заработал

Факт дня: В ЕС вступил в силу закон о защите физических лиц при обработке персональных данных.

КНДР меняет тон

Факт дня: КНДР готова к проведению саммита с США в любое время, заявил замглавы МИД КНДР.

Samsung заимствовал дизайн у Apple

Цифра дня: Суд обязал Samsung выплатить Apple более полмиллиарда долларов.