Найти в Дзене

Путаница в проектной документации: разбираем что такое ТЗ

Оглавление

Семен, руководитель проектов 1С

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

Основной целью такой документации является формализация требований, чтобы избежать недоразумений и ошибок в дальнейшей работе.

Частые проблемы в проектной документации

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

Рассмотрим ключевые аспекты этой проблематики:

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

2. Индивидуальное понимание документации. Разные люди могут по-разному воспринимать и интерпретировать содержание документов, особенно в случае сложной или многозначной терминологии. Это может привести к недопониманию и ошибкам в реализации требований. Например, когда у разных специалистов может быт свое понимание документа «техническое задание».

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

4. Специфичные корпоративные стандарты клиентов. Нередко компании-заказчики имеют собственные, уникальные стандарты документации, которые разработчику приходится учитывать. Это может усложнить процесс, так как потребуется время на изучение и применение этих стандартов.

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

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

Основные документы для фиксации требований

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

Техническое задание

  • Содержание: ТЗ на АС является основным документом, определяющим требования и порядок создания автоматизированной системы, в соответствии с которым проводится разработка АС и ее приемка. При составлении документа рекомендуется учитывать ГОСТ 34.602—2020.
  • Назначение: определение и формализация основных требований заказчика к проекту.
  • Оглавление: общие сведения; цели и назначение создания автоматизированной системы; характеристика объектов автоматизации; требования к автоматизированной системе; состав и содержание работ по созданию автоматизированной системы; порядок разработки автоматизированной системы; порядок контроля и приемки автоматизированной системы; требования к составу и содержанию работ по подготовке объекта автоматизации к вводу автоматизированной системы в действие; требования к документированию; источники разработки.
  • Проектные технологии: широко используется в классической водопадной модели разработки.

Частное техническое задание (ЧТЗ)

  • Содержание: в известных стандартах такого понятия нет, но близкое к нему существует в ГОСТ 34.602—2020 и называется техническое задание на составные части. Согласно этому документу, в АС могут выделяться составные части (СЧ), для которых могут разрабатываться ТЗ на составные части (далее — ТЗ на СЧ). ТЗ на СЧ могут разрабатываться следующие составные части: на подсистемы АС, комплексы задач АС, функции АС; на отдельные объекты АС, подлежащие автоматизации в рамках создания АС; на комплектующие изделия, средства технического обеспечения и программно-технические комплексы.
  • Назначение: конкретизация и уточнение требований к определенным частям системы. Как правило являются дополнениями к общему ТЗ.
  • Оглавление: введение, функциональные требования к части системы, нефункциональные требования, критерии приемки.
  • Проектные технологии: применяется в крупных проектах, где необходимо детализировать определенные блоки или функции.

Лист требований

  • Содержание: список специфических требований к системе или ее части.
  • Назначение: фиксация и отслеживание выполнения конкретных требований.
  • Оглавление: общие данные, список требований, способ реализации требований, порядок тестирования, комментарии.
  • Проектные технологии: Agile, Scrum, Kanban.

Функциональная спецификация

  • Содержание: описание функционала продукта без учета технической реализации.
  • Назначение: предоставление полного понимания функций системы.
  • Оглавление: введение, список функций, детальное описание каждой функции, ограничения.
  • Проектные технологии: широко используется в классической водопадной модели и RUP.

Техническая спецификация

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

Функциональный дизайн разработки

  • Содержание: визуализация и описание процесса и структуры функций системы.
  • Назначение: предоставление четкого понимания того, как будут работать функции.
  • Оглавление: введение, диаграммы потоков данных, макеты интерфейсов, описание процессов.
  • Проектные технологии: RUP, UML.

Функционально-технические требования

  • Содержание: комбинирование функциональных и технических требований.
  • Назначение: установление связей между функционалом и технологиями его реализации.
  • Оглавление: введение, функциональные требования, технические требования, связи между ними.
  • Проектные технологии: Agile, V-Model.

Журнал продукта (Product Backlog)

  • Содержание: список функций, улучшений, ошибок и других элементов, которые необходимо реализовать в продукте.
  • Назначение: планирование разработки продукта, учет и отслеживание задач.
  • Оглавление: введение, список задач (приоритет, статус, ответственный), история изменений.
  • Проектные технологии: чаще всего применяется в Agile-методологиях, включая Scrum, где журнал продукта является ключевым элементом для планирования итераций.

Пользовательские истории (User Stories)

  • Содержание: краткие описания функций с точки зрения пользователя.
  • Назначение: описание ожиданий пользователя от системы.
  • Оглавление: описание пользователя, его задачи, критерии приемки.
  • Проектные технологии: Agile, Scrum.

Сценарии использования (Use Cases)

  • Содержание: детальное описание взаимодействия пользователя с системой.
  • Назначение: визуализация процесса использования системы.
  • Оглавление: актеры, предусловия, основной поток, альтернативные потоки, постусловия.
  • Проектные технологии: UML, RUP.

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

Вспомогательные документы

Разные технологии и методологии предлагают свои инструменты и документы. Scrum, например, может оперировать такими понятиями как «Журнал продукта» и «Пользовательские истории», которые могут взаимодействовать с традиционными документами по-своему.

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

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

Бизнес-требования

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

Требования к системным интерфейсам

  • Содержание: описание взаимодействия разрабатываемой системы с другими системами.
  • Назначение: учет и документирование способов и параметров интеграции между системами.

Требования к данным

  • Содержание: описание структуры данных, их хранения, обработки и передачи.
  • Назначение: обеспечение корректной работы с данными в системе.

Документ ограничений системы

  • Содержание: описание ограничений на программное и аппаратное обеспечение.
  • Назначение: учет ограничений при разработке системы.

Критерии приемки

  • Содержание: условия и критерии, при которых продукт считается соответствующим требованиям.
  • Назначение: определение того, что система готова к внедрению и эксплуатации.

Дорожная карта продукта

  • Содержание: план развития продукта на определенный период времени.
  • Назначение: визуализация плана разработки и предоставление перспективы развития для стейкхолдеров.

Отчеты о трассировке требований

  • Содержание: таблица, отображающая связь между требованиями и элементами продукта (кодом, тестами и т. д.).
  • Назначение: обеспечение отслеживания реализации требований на протяжении всего жизненного цикла продукта.

Заключение

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

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

Понравилась статья?

Ставьте «палец вверх» и подписывайтесь на канал, если статья оказалась полезной.

Больше интересных тем — на нашем ✈️ Telegram-канале.