Стоит ли всё-таки писать ТЗ?

04.03.25

Управление ИТ - Стандарты и документация

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

Меня зовут Михаил Воронюк, я работаю с 1С v.8 больше 15 лет. За свою карьеру побывал и разработчиком, и аналитиком, и руководителем проекта.

В настоящий момент возглавляю компанию ООО «Трисофт». У нас команда из 6 разработчиков 1С, и мы развиваем направление парт-тайм-аутстаффинга.

 

 

Мой доклад будет о техническом задании. Постараюсь рассказать:

  • зачем мы пишем ТЗ;

  • что это такое;

  • кто пишет ТЗ, если не мы;

  • и как технические задания помогают нам в заказной разработке.

 

Немного терминологии

 

 

Начнем с терминологии.

  • Есть ГОСТ 34.602-2020, который содержит определение технического задания.

  • И в BABOK тоже есть нечто похожее на техническое задание – это требования к решению. Они бывают двух типов – функциональные и нефункциональные.

Но по нашему опыту на входе в проект редко бывает хорошо написанный документ, поэтому предлагаю обсудить роль ТЗ в успехе проекта.

 

Зачем вообще писать ТЗ

 

 

У человеческой памяти есть свойство забывать, притом забывать, не особо контролируя это.

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

 

 

Если посмотреть на техническое задание с точки зрения руководителя проекта, то задача – это, по сути, просто мини-проект.

Поэтом приведу небольшую цитату из PMBoK, заменяя слово «проект» на «задача»:

Устав проекта задачи – это документ, выпускаемый инициатором или спонсором проекта задачи, который формально авторизует существование проекта задачи и предоставляет руководителю проекта разработчику полномочия использовать организационные ресурсы для деятельности по проекту задаче.

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

 

 

Кроме этого, техническое задание полезно, потому что оно может выполнять роль документации. Часто на техническую документацию по проекту не выделяется времени или бюджета. И если в какой-то момент по задаче написали хотя бы техническое задание, это потом может сильно помочь.

В нашей практике был случай – к нам обратился клиент, которому мы 5 лет назад делали доработку, и сказал, что она как-то не так работает. Мы нашли в своей системе учета задач в Redmine техническое задание по этой доработке и отправили его клиенту. Он был доволен.

 

 

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

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

 

Что писать в техническом задании

 

 

Для качественного ТЗ достаточно всего нескольких составляющих:

  • Начните с заголовка. Грамотно сформулированный заголовок – это уже полдела.

  • Дальше можно добавить что-то в стиле User Story: указать, кто является пользователем, что именно он хочет получить, и с какой целью.

  • И конечно, любое техническое задание станет лучше с конкретными примерами. Напишите, какое поведение вы ожидаете от системы. Например, если вы напишете, что что 2 + 2 должно быть равно 4, все сразу встанет на свои места.

 

 

Как не сделать из технического задания лонгрид?

  • Используйте скриншоты – на них красным нарисовать, что куда должно переехать и где должно появиться.

  • Встройте в документ макет Excel – можно сформировать имеющуюся печатную форму, сохранить ее в Excel, добавить в нее нужные детали и комментарии. Отчеты тоже легко проектировать в Excel, в том числе, используя группировки.

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

Обычно лонгриды читаются по диагонали: что-то прочитали в начале, что-то в конце. А если вы добавили хорошую картинку, которая все это поясняет, ТЗ становится гораздо понятнее.

 

 

Техническое задание можно составить не только для продукта или разработки – его можно написать даже на само техническое задание.

К примеру, у заказчика может возникнуть вопрос: зачем платить более 100 тысяч за ТЗ, если он не собирается внедрять все предложенные доработки? В таком случае можно подробно описать, что именно он получит в ТЗ, и какие ключевые вопросы будут раскрыты в документе. Это помогает обосновать стоимость работы, особенно если подготовка ТЗ требует значительных временных затрат.

 

Кто пишет ТЗ

 

Расскажу, кто у нас писал или кто нам писал технические задания, для кого.

 

 

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

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

 

 

Иногда технические задания для нас писали аналитики.

Цифра сверху – это количество символов с пробелами в трех подготовленных страничках одного из ТЗ. А справа – переписка по этому техническому заданию, которая длилась больше месяца.

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

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

 

 

Когда задачи ставит топ-менеджмент заказчика, они, как правило, не пишут, а просто звонят. Иногда могут написать пару фраз, вроде «должно быть готово завтра» или даже вчера. Но основное обсуждение происходит в ходе созвонов.

В качестве примера – по результатам часового разговора получилось техническое задание на 5 918 символов с иллюстрациями. И сами задачи от таких заказчиков обычно на неделю-две разработки.

 

 

Лучшие технические задания в нашей практике мы получали от администраторов 1С, потому что они обладают техническими знаниями и глубоко понимают возможности программы, они ее супер-пользователи.

Единственный минус – они не могут поставить всеобъемлющую задачу. Но с ТЗ для задач на два-три дня разработки (от 8 до 24 часов) администраторы 1С очень хорошо справляются, и сотрудничество между ними и программистами в моей практике идеально.

 

 

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

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

 

Когда писать ТЗ

 

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

 

 

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

  • Во-первых, если работа над задачей выполняется по фиксированной оценке, в оценку должны изначально закладываться риски, потому что требования могут расширяться.

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

 

Как писать ТЗ

 

 

Несколько слов о том, как мы в компании пишем технические задания.

  • Для постановки ТЗ мы протестировали разные таск-трекеры и остановились на Redmine, которым пользуемся до сих пор. Еще в качестве эксперимента пробовали Trello – мне в нем понравилась доска: у нас старая версия Redmine и там доски нет (ее можно частично заменить сменой статусов задач, но это не так наглядно). Однако у Trello есть серьезный минус – отсутствие трек-номеров. Когда проект разрастается, карточек на доске становится слишком много, и найти среди них нужную информацию довольно сложно. В Redmine же поиск гораздо удобнее – можно искать по названию задачи, совпадению ключевых слов в описании и даже отсортировать задачи по затраченному времени (в этом случае крупные задачи оказываются наверху списка).

  • В качестве разметки Redmine поддерживает Markdown. Причем раньше, когда мы начинали с ним работать, там использовался Textile. И если сравнивать эти две разметки, мне Textile нравится больше тем, что в нем есть нумерованные списки. В Textile можно поставить несколько «#» подряд, и после сохранения появится нумерованный список. А в Markdown надо писать 1, 2, 3, и если нумерация сбивается, ее нужно править вручную, что не слишком удобно.

  • Для прототипирования форм мы используем конфигуратор. В нем можно за 5-10 минут накидать форму средней сложности, чтобы согласовать ее с заказчиком, и включить ее в техзадание. Это можно сделать либо в виде скриншотов и отправки черновика технического задания по почте, либо в режиме онлайн-демонстрации с тестовыми данными, чтобы это выглядело как живая система. Такой подход помогает избежать недопонимания и сразу зафиксировать требования в ТЗ.

  • Мы в свое время написали генератор техзаданий, который охватывал стек Redmine, 1С, Pandoc и LaTeX. В Redmine можно делать таблички, вставлять картинки, делать нумерованные и многоуровневые списки. По нажатию кнопки в Redmine происходит запрос к веб-сервису в 1С, и генерируется файл PDF – либо техническое задание, либо заявка на разработку. Т.е. размеченный текст из Redmine перегружается в виде Textile в Pandoc конвертируется в LaTeX, производятся небольшие преобразования в 1С, и в итоге это превращается в документы техзаданий, которые я показывал на слайдах.

  • Для больших документов вроде устава проекта, когда нужно что-то накидать предварительно, чтобы обсудить с кем-то онлайн, на помощь приходят редакторы, в которых печатают тексты – мы пользуемся Google Docs.

  • А для централизованного хранения технических заданий мы используем Redmine. Там же можно организовать Вики, вставляя в нее описание из задач с помощью специальной языковой конструкции.

  • Кроме того, мы пишем в Redmine специальные дополнения для разработчиков. Если задача поступает не старшему разработчику, а мидлу или джуну, мы пишем подстрочник – информацию, где можно уточнить некоторые моменты, используя ключевое слово collapse. Когда человек открывает задачу, у него такие комментарии в Redmine свернуты – он может развернуть и прочитать, что там написано. А при генерации финального ТЗ один из парсеров автоматически удаляет эти комментарии для разработчиков, чтобы заказчик их не увидел.

В качестве заключения скажу, что лучше все же писать технические задания. Если хотите, называйте их функциональными требованиями, но надо где-то их писать. Потом они пригодятся.

 

Вопросы и ответы

 

Вы сказали, что актуализацией ТЗ по завершению задачи занимается разработчик. Почему разработчик, а не аналитик?

Если со стороны заказчика нет аналитиков, например, задачу поставил пользователь или топ-менеджмент, то за документацию по задаче отвечает исполнитель. Так как у нас в компании только разработчики, то они и отвечают за актуализацию.

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

Своих аналитиков у нас в компании нет.

Если аналитик пишет техническое задание, должен ли он опускаться до описания метаданных, реквизитов, ресурсов, измерений или это на усмотрение программиста?

Если аналитик обладает знаниями в разработке 1С (например, проходил профильные курсы или имеет опыт программирования), то почему бы и нет. Если аналитик понимает, о чем пишет, и ему важно спроектировать это именно так, он может опускаться до такого уровня.

Но если аналитик настаивает на конкретной реализации, то программист над этим уже не думает. Например, если аналитик написал, что в регистре накопления должны быть такие-то измерения, программист даже не подумал, кинул их в таком порядке. А потом оказывается, что в запросе это работает неэффективно. Кто будет нести ответственность – программист или аналитик?

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

Стоит ли в техническом задании объединять функциональные требования для заказчика и технические детали для разработчика, чтобы упростить работу методолога, особенно в условиях, что подписантом этого документа является заказчик? Или лучше разделять эти части и расписать их более детально?

Если со стороны заказчика техническое задание будут читать не только бизнес-пользователи, но и ИТ-специалисты, включение в него технических деталей может быть полезным.

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

Однако, если ТЗ предназначено для управленцев, которые не знакомы с техническими нюансами (например, не знают, что такое регистр накопления), углубляться в технические детали бессмысленно – информация все равно будет проигнорирована. В таких случаях лучше ограничиться функциональными требованиями, а технические аспекты вынести в отдельный документ или внутреннюю документацию.

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

Как вы относитесь к контрольным примерам в спецификациях? Например, если в отчете должна получиться конкретная сумма, логично привести пример и показать, как рассчитывается значение. Но это занимает время, и не все готовы детально описывать процесс. Насколько часто вы используете такие контрольные примеры в своих ТЗ?

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

Но подобные отчеты могут оказаться не приспособлены для реализации средствами СКД. В таких случаях мы в рамках технического задания за 2-3 часа воссоздавали отчет в Excel, поскольку задача может и не «выстрелить». Просто делали нужное количество группировок – по контрагентам, номенклатуре, документам «Отчет по продажам» – и проверяли, чтобы все цифры сходились. Чтобы заказчик, посмотрев на этот отчет, сказал – это то, что он хочет, или нужны доработки.

Поэтому нет ничего лучше, чем сделать наглядный пример, который поймут обе стороны. Если у вас в согласовании задачи участвуют 3 человека – заказчик, аналитик и программист, то в итоге все трое должны друг друга понять.

А когда программисту спускается какая-то задача, и нужно более подробное описание, то есть 2 способа.

  • Если подготовка примеров занимает у вас много времени, стоит заранее объяснить заказчику, что написание ТЗ должно превышать 4-8 часов. Если требуется больше, это время должно оплачиваться дополнительно – бесплатно работать никто не будет.

  • Выкручиваться за счет завышения оценки других задач. Но это рискованный путь, поскольку заказчик может в итоге остаться недоволен.

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

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

 

*************

Статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART Анализ & Управление в ИТ-проектах.

См. также

Работа с требованиями Стандарты и документация Бесплатно (free)

Удивительно, но до сих пор большинство аналитиков не слышали о своде знаний по бизнес-анализу BABOK Guide и не знают, что фактически уже используют его техники в работе. Расскажем о том, как с помощью техник BABOK сделать ТЗ максимально «живым» – структурировать требования, визуализировать процессы, смоделировать данные и интерфейсы, чтобы ТЗ было понятно и заказчику, и разработчику.

31.07.2025    653    19    otkalo    8    

2

Стандарты и документация Бесплатно (free)

Статья посвящена распространённой проблеме в разработке 1С – чрезмерному формализму технических заданий, превращающих гибкий процесс внедрения в бюрократический кошмар. Мы разбираем, почему объёмное ТЗ не гарантирует успех проекта, как оно может парализовать работу команды и что делать, чтобы перейти от «мертвых» документов к живому процессу разработки. На практических примерах из мира 1С показываем, какие форматы взаимодействия действительно работают и как сохранить баланс между ясностью требований и гибкостью решений.

29.07.2025    1120    0    Vasin86    18    

23

Проектирование Стандарты и документация Бесплатно (free)

СППР – удобный инструмент для работы с модификацией системы, в частности, упрощающий и автоматизирующий написание проектной документации. Расскажем о практическом опыте составления в СППР «Описания проектного решения».

18.12.2024    2622    0    user1959522    0    

4

Стандарты и документация Бизнес-аналитик Бесплатно (free)

Чтобы снизить нагрузку на техподдержку, к готовому продукту всегда должна прилагаться документация. Но как сделать, чтобы инструкция была понятной и полезной, а ее разработка и актуализация не затянулись на несколько месяцев? Разберем вопрос рациональности использования стандартов и наиболее доходчивые варианты стилистики, организации структуры, детализации при написании инструкций.

24.09.2024    5827    0    chavalah    19    

20

Стандарты и документация Бесплатно (free)

Когда при внедрении систем 1С всплывает слово «ГОСТ» – практически всегда речь идёт о документе «Техническое задание». И у большинства внедренцев падает настроение, как только им говорят, что надо «написать ТЗ по ГОСТу». Но опытные кулинары знают, как готовить это блюдо так, чтобы оно оставило после себя приятное послевкусие, а не горькое разочарование. О собственных рецептах приготовления документации по ГОСТу пойдет речь в статье.

21.08.2024    4031    64    Laya    3    

24

Стандарты и документация Бесплатно (free)

Как гарантировать актуальную документацию и превратить ваши тесты в красивый фильм? Берём тесты, сценарии, Vanessa Automation, перемешиваем, но не встряхиваем – и рецепт готов. Расскажем о том, как добиться простой и невозможной цели – чтобы документация к вашему продукту соответствовала ему.

12.08.2024    8222    0    fenixnow    3    

25

Стандарты и документация Программист Бесплатно (free)

В статье расскажем о том, как происходит разработка структуры технического задания. Покажем пример технического задания в 1С.

27.10.2022    35363    0    Koder_Line    5    

13

Стандарты и документация Бесплатно (free)

Поспорили мы как-то с админом: нужны чек-листы или нет? Админ говорит: "Не нужны! Если ты специалист, у тебя все в голове. А если не специалист, то тебе и чек-лист не поможет." А я отвечаю: "Вот в авиации случайных людей нет, а чек-листы есть!". И показываю ему файлик, который использую при каждом обновлении 1С.

21.10.2019    7339    0    muzipov    27    

19
Оставьте свое сообщение