Как составить техническое задание на создание программы

Стандарты и шаблоны для ТЗ на разработку ПО

Время на прочтение
7 мин

Количество просмотров 655K

Введение

Недавно ко мне обратились, чтобы я посоветовал стандарты для написания технического задания (ТЗ) на разработку автоматизированных систем (АС) и программного обеспечения (ПО). Вот думаю, сейчас зайду в Яндекс, найду подходящую статейку и отправлю её. Но не тут-то было! Одной статьи, где перечисляются стандарты для ТЗ, включая шаблоны и примеры готовых документов, я не нашел. Придется сделать такую статейку самому…

И так, основные стандарты, методологии и своды знаний, где упоминается ТЗ или SRS (Software (or System) Requirements Specification):

• ГОСТ 34
• ГОСТ 19
• IEEE STD 830-1998
• ISO/IEC/ IEEE 29148-2011
• RUP
• SWEBOK, BABOK и пр.

ГОСТ 34

ГОСТ 34.602-89 Техническое задание на создание автоматизированной системы рекомендует структуру ТЗ на создание именно СИСТЕМЫ, в которую входят ПО, аппаратное обеспечение, люди, которые работают с ПО, и автоматизируемые процессы.

Согласно ГОСТ 34 техническое задание должно включать следующие разделы:

1. Общие сведения
2. Назначение и цели создания (развития) системы
3. Характеристика объектов автоматизации
4. Требования к системе
5. Состав и содержание работ по созданию системы
6. Порядок контроля и приемки системы
7. Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие
8. Требования к документированию
9. Источники разработки

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

ГОСТ 19

“ГОСТ 19.ххх Единая система программной документации (ЕСПД)” — это комплекс государственных стандартов, устанавливающих взаимоувязанные правила разработки, оформления и обращения программ (или ПО) и программной документации. Т.е. этот стандарт относится к разработке именно ПО.
Согласно ГОСТ 19.201-78 Техническое задание, требования к содержанию и оформлению техническое задание должно включать следующие разделы:

1. Введение;
2. Основания для разработки;
3. Назначение разработки;
4. Требования к программе или программному изделию;
5. Требования к программной документации;
6. Технико-экономические показатели;
7. Стадии и этапы разработки;
8. Порядок контроля и приемки;
9. Приложения.

Естественно ГОСТ 34 (и 19) уже устарели, и я не люблю их использовать, но при правильном интерпретации стандартов, можно получить хорошее ТЗ, см. Заключение.

IEEE STD 830-1998

Достаточно хорошее определение стандарта 830-1998 — IEEE Recommended Practice for Software Requirements Specifications дано в самом его описании:

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

Согласно стандарту техническое задание должно включать следующие разделы:

1. Введение

  • 1. Назначение
  • 2. Область действия
  • 3. Определения, акронимы и сокращения
  • 4. Ссылки
  • 5. Краткий обзор

2. Общее описание

  • 1. Взаимодействие продукта (с другими продуктами и компонентами)
  • 2. Функции продукта (краткое описание)
  • 3. Характеристики пользователя
  • 4. Ограничения
  • 5. Допущения и зависимости

3. Детальные требования (могут быть организованы по разному, н-р, так)

  • 1. Требования к внешним интерфейсам
    • 1. Интерфейсы пользователя
    • 2. Интерфейсы аппаратного обеспечения
    • 3. Интерфейсы программного обеспечения
    • 4. Интерфейсы взаимодействия
  • 2. Функциональные требования
  • 3. Требования к производительности
  • 4. Проектные ограничения (и ссылки на стандарты)
  • 5. Нефункциональные требования (надежность, доступность, безопасность и пр.)
  • 6. Другие требования

4. Приложения
5. Алфавитный указатель

На самом деле новичку достаточно трудно понять, что должно содержаться в данных разделах по вышеприведенной структуре (как и в случае с ГОСТом), поэтому нужно читать сам стандарт, который легко найти в Интернете. Как и примеры, правда, на англ. языке.

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

ISO/IEC/ IEEE 29148-2011

Стандарт IEEE 29148-2011 обеспечивает единую трактовку процессов и продуктов, используемых при разработке требований на протяжении всего жизненного цикла систем и программного обеспечения. Он приходит на смену стандартов IEEE 830-1998, IEEE 1233-1998, IEEE 1362-1998.

Данный стандарт содержит два шаблона спецификации требований:

• System requirements specification (SyRS)
• Software requirements specification (SRS)

System Requirements Specification (SyRS) определяет технические требования для выбранной системы и удобства взаимодействия предполагаемой системы и человека. Она определяет высокоуровневые требования к системе с точки зрения предметной области, а также информацию об общей цели системы, ее целевой среде и ограничениях, допущениях и нефункциональных требованиях. Она может включать в себя концептуальные модели, спроектированные для иллюстрации содержания системы, сценариев использования, основных сущностей предметной области, данных, информаций и рабочих процессов. Из определения следует, что это аналог ТЗ, описанного в ГОСТ 34.

SyRS может содержать следующие разделы:

1. Введение

  • 1. Назначение системы
  • 2. Содержание системы (границы системы)
  • 3. Обзор системы
    • 1. Содержание системы
    • 2. Функции системы
    • 3. Характеристики пользователей
  • 4. Термины и определения

2. Ссылки

3. Системные требования

  • 1. Функциональные требования
  • 2. Требования к юзабилити
  • 3. Требования к производительности
  • 4. Интерфейс (взаимодействие) системы
  • 5. Операции системы
  • 6. Состояния системы
  • 7. Физические характеристики
  • 8. Условия окружения
  • 9. Требования к безопасности
  • 10. Управление информацией
  • 11. Политики и правила
  • 12. Требования к обслуживанию системы на протяжении ее жизненного цикла
  • 13. Требования к упаковке, погрузке-разгрузки, доставке и транспортировке

4. Тестирование и проверка (список необходимых приемочных тестов, которые отражают зеркально раздел 3)

5. Приложения

  • 1. Предположения и зависимости
  • 2. Аббревиатуры и сокращений

SRS это спецификация требований для определенного программного изделия, программы или набора программ (продукт), которые выполняют определенные функции в конкретном окружении. Из определения следует, что это аналог ТЗ, описанного в ГОСТ 19, а по структуре очень напоминает SRS из стандарта IEEE 830.

SRS может содержать следующие разделы:

1. Введение

  • 1. Назначение
  • 2. Содержание (границы)
    • 3. Обзор продукта
    • 1. Взаимодействие продукта (с другими продуктами и компонентами)
    • 2. Функции продукта (краткое описание)
    • 3. Характеристики пользователей
    • 4. Ограничения
  • 4. Термины и определения

2. Ссылки

3. Детальные требования

  • 1. Требования к внешним интерфейсам
  • 2. Функции продукта
  • 3. Требования к юзабилити
  • 4. Требования к производительности
  • 5. Требования к логической структуре БД
  • 6. Ограничения проектирования
  • 7. Системные свойства ПО
  • 8. Дополнительные требования

4. Тестирование и проверка (список необходимых приемочных тестов, которые отражают зеркально раздел 3)

5. Приложения

  • 1. Предположения и зависимости
  • 2. Аббревиатуры и сокращений

Данный стандарт достаточно сложно найти в открытом виде в Интернете, но постараться можно, и опять же только на англ.

RUP

Структура SRS в RUP(Rational Unified Process) представляет собой документ, в котором необходимо описать артефакты, полученные в процессе специфицирования требований.

Шаблон SRS в RUP адаптирован из стандарта IEEE STD 830 и содержит два варианта:

• Традиционный шаблон SRS со структурированными функциональными требованиями по функциям Системы, максимально похож на 830 стандарт.
• Упрощенный шаблон SRS со структурированными функциональными требованиями в виде вариантов использования (use cases):

1. Введение.

  • 1. Цель.
  • 2. Краткая сводка возможностей.
  • 3. Определения, акронимы и сокращения.
  • 4. Ссылки.
  • 5. Краткое содержание.

2. Обзор системы

  • 1. Обзор вариантов использований.
  • 2. Предположения и зависимости.

3. Детальные требований

  • 1. Описание вариантов использования.
  • 2. Дополнительные требования.
  • 3. Другие функциональные требования.
  • 4. Нефункциональные требования.

4. Вспомогательная информация.

Естественно, что в Интернете можно найти шаблон и примеры SRS от RUP.

SWEBOK, BABOK и пр.

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

Также стоит сказать, что для описания требований к АС и ПО используются и другие виды документов, кот каждый называет по разному: FRD (Functional Requirements Document), RD (Requirements Document), ПЗ (Постановка задачи или Пояснительная записка) и пр. Но это все производные документы от вышеупомянутых стандартов, не имеющих отраслевой стандартизации, хотя, в некоторых случаях, уже и с устоявшейся терминологией.

А как же Agile?

Я скажу одной фразой из Манифеста Agile: “Working software over comprehensive documentation”. Поэтому в Agile документации отводится совсем мало места.

Мое же убеждение, что разработать АС без ТЗ можно (используя техники/рекомендации Agile), но вот в дальнейшем сопровождать — невозможно. Поэтому сразу задумайтесь, как вы будете писать ТЗ и другую документацию, при разработке ПО по Agile.

Заключение

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

Но главное, чтобы ТЗ не превращалось в ХЗ, а, именно, содержание (наполнение) в ТЗ — самое главное! Но это уже совсем другая история… Если есть интерес, то можно пройти он-лайн курс Разработка и управление требованиями к ПО.

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

Также рекомендую ознакомиться со следующими материалами:

  • Презентацией Юрия Булуя Классификация требований к программному обеспечению и ее представление в стандартах и методологиях.
  • Анализ требований к автоматизированным информационным системам. Лекция 11: Документирование требований.
  • Правила составления Software requirements specification (читать вместе с комментариями)
  • Примеры ТЗ и другой документации по разработке АС для МЭР
  • ГОСТ-овский стиль управления. Статья Gaperton по правильной работе с ТЗ по ГОСТ
  • Шаблоны документов для бизнес-аналитиков из группы ВК «Business Analysis Magazine»

ТЗ на разработку программного обеспечения

ТЗ на разработку программного обеспечения

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

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

Что такое ТЗ на разработку ПО?

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

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

Исходные данные для автоматизации и описания бизнес-процессов.

Исходные данные для автоматизации и описания бизнес-процессов.

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

  • Главное назначение разрабатываемого ПО.

  • Характеристики и функциональность.

  • Технико-экономические обоснования разработки.

  • Предписание по выполнению стадий, этапов работы.

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

Этапы позволяют пошагово определить все действия.

Этапы позволяют пошагово определить все действия.

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

Особенности технического задания в новых условиях

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

  • 1.

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

  • 2.

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

  • 3.

    Инструментальное ПО. Средства, создаваемые для отладки, редактирования софта.

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

Подробная классификация ПО.

Подробная классификация ПО.

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

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

2. Технический проект. Документ, в котором подробно прописывается последовательность действий для софта.

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

Информационный комплекс и структура технического задания

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

Многое в ТЗ зависит от языка программирования, на котором будет создана программа. К примеру, если софт
разрабатывается на языке С++, то требуется детальное техническое проектирование. Что касается софта, создаваемого
на платформе 1С, ее проектируют по классической схеме. Все правила прописываются в отдельном разделе. К каждому из
них прикладывается план, предусматривающий выполнение с поэтапной структурой. Таким образом, создание
ТЗ – сложная работа, требующая затрат сил, времени.

Разработка документа начинается с написания содержания, постановки целей, задач, выяснение сведений,
определении формулировок. ТЗ на создание программного обеспечения включает такие разделы:

  • 1.

    Общая информация.

  • 2.

    Цели разработки (развития), назначение.

  • 3.

    Характеристика объектов автоматизации.

  • 4.

    Главные нормы будущего софта.

  • 5.

    Состав, содержание работ по созданию системы.

  • 6.

    Порядок контроля, приемки готового ПО.

  • 7.

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

  • 8.

    Нормы к документированию процесса.

  • 9.

    Источники для выполнения поставленной цели.

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

ГОСТы к техническому заданию на разработку программного обеспечения

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

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

ГОСТ 34

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

  • 1.

    Сведения общего характера.

  • 2.

    Цели и задачи создания системы (софта).

  • 3.

    Характеристика главных объектов автоматизации.

  • 4.

    Нормы к разрабатываемой системе.

  • 5.

    Состав с содержанием работ по созданию программы.

  • 6.

    Порядок приемки системы с контролем со стороны заказчика.

  • 7.

    Требования к содержанию работ по подготовке к вводу системы в действие.

  • 8.

    Нормы к документированию.

  • 9.

    Источники для создания софта.

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

ГОСТ 19

Документом определяются государственные стандарты, которые устанавливают общие правила создания,
оформления и обращения программного обеспечения, создания документация. ГОСТом также устанавливается
Единая система программной документации (сокр. ЕСПД). Согласно стандарта, в проект входят такие разделы:

  • 1.

    Введение.

  • 2.

    Основания.

  • 3.

    Назначение.

  • 4.

    Требования к софту (программному изделию).

  • 5.

    Особенности программной документации.

  • 6.

    Технико-экономические показатели.

  • 7.

    Стадии, этапы создания ПО.

  • 8.

    Порядок контроля, приемки.

  • 9.

    Приложения.

Данные ГОСТы используются далеко не всеми программистами. Ведь они были разработаны свыше 30 лет назад.
Для этого будет полезным рассмотреть более актуальные, новые стандарты,
применяемые для создания современного софта.

IEEE STD 830-1998

Данным документом определяются качественные характеристики, содержание, спецификация, нормы, которые
предъявляются к программному обеспечению. В документе даны конкретные определения основных понятий и терминов.
Чаще всего документ применяется при разработке задания для современного софта. Согласно стандарту,
ТЗ по IEEE STD 830-1998 включает в себя такие разделы:

1. Введение

  • Назначение

  • Область действия

  • Определения, акронимы, сокращения

  • Ссылки

  • Краткий обзор

2. Общее описание

  • Взаимодействие продукта (с другими продуктами и компонентами).

  • Функции продукта (краткое описание).

  • Характеристики пользователя.

  • Ограничения.

  • Допущения и зависимости.

3. Детальные требования

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

  • Интерфейсы пользователя.

  • Интерфейсы аппаратного обеспечения.

  • Интерфейсы программного обеспечения.

  • Интерфейсы взаимодействия.

  • Функциональные требования.

  • Требования к производительности.

  • Проектные ограничения (и ссылки на стандарты).

  • Нефункциональные требования (надежность, доступность, безопасность и пр.).

  • Другие требования.

4. Приложение

5. Алфавитный указатель

Данный стандарт разработан американским Комитетом по стандартам программного обеспечения и системной инженерии C / S2ESC.

ISO/IEC/ IEEE 29148-2011

IEEE

IEEE

Наиболее современный стандарт, который обеспечивает единый способ трактовки в процессах при разработке ТЗ для ПО.
Оригинал IEEE доступен на английском языке. В состав входит 2 шаблона, каждый из которых рассмотрим подробней:

System requirements specification (SyRS)

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

1. Введение
  • Назначение системы.

  • Содержание системы (границы системы).

  • Обзор системы.

  • Содержание системы.

  • Функции системы.

  • Характеристики пользователей.

  • Термины и определения.

2. Ссылки
3. Системные требования
  • Функциональные требования.

  • Требования к юзабилити.

  • Требования к производительности.

  • Интерфейс (взаимодействие) системы.

  • Операции системы.

  • Состояния системы.

  • Физические характеристики.

  • Условия окружения.

  • Требования к безопасности.

  • Управление информацией.

  • Политики, правила.

  • Требования к обслуживанию системы на протяжении ее жизненного цикла.

  • Требования к упаковке, погрузке-разгрузке, доставке и транспортировке.

4. Тестирование и проверка (список нужных приемочных тестов, которые отражают зеркально раздел 3)
5. Приложение
  • Предположения, зависимости.

  • Аббревиатуры и сокращений.

Software requirements specification (SRS)

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

1. Введение
  • Назначение.

  • Содержание (границы).

  • Обзор продукта.

  • Взаимодействие продукта (с другими продуктами, компонентами).

  • Функции продукта (краткое описание).

  • Характеристики пользователей.

  • Ограничения.

  • Терминология, определение со значениями.

2. Ссылки
3. Детальные нормы
  • Требования к внешним интерфейсам.

  • Функции продукта.

  • Параметры юзабилити.

  • Нормы производительности.

  • Требования к логической структуре БД.

  • Ограничения проектирования.

  • Системные свойства ПО.

  • Дополнительные требования.

4. Тестирование и проверка (список необходимых приемочных тестов, которые отражают зеркально раздел 3)
5. Приложение
  • Предположения, зависимости.

  • Аббревиатуры и сокращений.

Такой стандарт пришел на смену IEEE STD 830-1998. Он также был разработан в США и сегодня
используется разными специалистами разных стран мира.

Заключение

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

An error has occurred. This application may no longer respond until reloaded.

Reload
🗙

Почему ТЗ — это важно

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

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

В статье я расскажу:

  1. почему оформлению ТЗ нужно уделить особое внимание,
  2. какие разделы включить в ТЗ и что в них должно быть;

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

ТЗ — это ваша гарантия

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

Первый сценарий — это работа с недобросовестным подрядчиком, когда он делает «тяп-ляп».

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

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

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

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

ТЗ — это фундамент вашего приложения

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

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

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

Всё ТЗ описывается «бизнесовым языком», то есть, как должна вести себя система с точки зрения пользователя (о пользователях и их ролях расскажу позже). Такое описание упрощает компании разработчику его вычитку, а в дальнейшем и оценку, так как, вероятно именно бизнес-аналитик будет вычитывать ТЗ, а затем собирать оценку на выполнение задач у команды разработчиков.

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

Например, вы указываете в ТЗ, что хотите использовать определённую базу данных для хранения информации, а также описываете логику хранения этих данных.
В процессе разработки ТЗ часто дополняется. В какой-то момент разработчики понимают, что согласованный способ хранения данных ненадежен, невозможен или неудобен — в общем, можно сделать лучше. Однако, в ТЗ уже прописаны требования к хранению данных. Составляя ТЗ вы не учли некоторые детали, и теперь, чтобы продолжить разработку, нужно согласовывать дополнительные документы с уточнениями к ТЗ. Всё это растягивает время разработки, а значит и стоимость (если вы работаете по модели Time & Material).

ТЗ помогает лучше спланировать работу системы

Перечитывать свое ТЗ — не такая плохая идея. Даже так — это замечательная идея!

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

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

Но что, если вы не заметили очевидных вещей, которые должны быть предусмотрены?

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

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

В случае с примером, отсутствие возможности корректировать введенные данные — это существенный недостаток в системе, а виной всему — непроработанное ТЗ.

Конечно, можно вносить правки в ТЗ во время разработки. Тот же метод работы по Agile способствует этому. Однако, случается и так, что для внесения правок нужно затронуть архитектуру и переписать уже готовый функционал. Получается уже какая-то доработка системы. Время, затраченное на введение такой фичи в процессе разработки больше, чем если бы вы указали её сразу в ТЗ.

Если вы работаете по модели Time & Material (почасовая ставка), помните пословицу «Время — деньги», а вместе с ней запомните — «Рассеянный делает одну работу дважды».

ТЗ позволяет сокращать расходы

Представьте, что на разработку приложения выделено 5 миллионов. Вы присылаете ТЗ некоторому количество разработчиков и получаете оценку в 7-8 миллионов.

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

У вас есть 5 миллионов и точка, а система очень нужна. С проработанным ТЗ вы можете поступить следующим образом: самостоятельно, или обратившись к разработчику убрать требования к функциональности, которые не будут мешать основному назначению и целям системы. Назначение и цели системы прописываются в ТЗ. Об этом расскажу чуть позже.

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

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

Обязательно ли делать ТЗ своими силами

Как сказал Майкл Францезе: «Делайте то, что у вас лучше всего получается, а остальное перепоручите соответствующим специалистам.»

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

Практически любая аутсорсинговая компания разработчик может разработать за вас ТЗ. Конечно, в 9 из 10 случаев за это придется заплатить. Зато вы получите отличное, полное техническое задание! Более того, вы можете не обращаться к тому же подрядчику за разработкой, а начать исследования рынка и найти того вендора, который вам понравится.

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

Как должно выглядеть ТЗ

Обратите внимание, что мы описываем структуру ТЗ по нашему шаблону. Наше ТЗ — гибрид из стандарта по ГОСТу и собственных предпочтений. Можно сказать, что этот шаблон — тот документ, который мы видим у «идеального» заказчика. По нашему мнению, такая структура ТЗ максимально удобна для описания системы, и поверьте, технических заданий за 10 лет работы мы видели не малое количество…

Документ состоит из основных разделов:

  1. общие сведения,
  2. назначение и цели создания,
  3. требования к системе в целом,
  4. функциональные требования,
  5. виды, состав, объем и методы испытаний системы,
  6. общие требования к приёмке,
  7. статус приемочной комиссии;

Раздел Общие сведения

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

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

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

  1. Заказчик не вправе требовать от Исполнителя в рамках текущего Договора выполнения работ либо оказания услуг, прямо не описанных в настоящем ТЗ.
  2. Все неоднозначности, выявленные в настоящем ТЗ после его подписания, подлежат двухстороннему согласованию между Заказчиком и Исполнителем

Резюмируем. Добавьте:

  1. Реквизиты исполнителя и заказчика.
  2. Сроки начала и окончания проекта (вплоть до разбивки по этапам).
  3. Опишите требования, которые не касаются разработки приложения.

Цели и назначение проекта.

Помните, это то, о чём мы ранее говорили в разделе «ТЗ позволяет сокращать расходы»? Так вот, цель проекта — это основная причина, почему вам нужно разработать приложение, и примерно, что оно будет из себя представлять.

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

После прочтения цели мы понимаем, зачем вам нужна кастомная разработка (в данном случае нужно автоматизировать бизнес-процессы), и, если вы укажите «прототип» того, что нравится — это упростит дальнейшую разработку.

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

Что такое назначение? Назначение заключается в том, как будет использоваться продукт.

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

Резюмируем.

  1. Цель — это то, зачем нужен проект и какую роль он будет выполнять.
  2. Назначение — это то, как потом мы будем его использовать.

Раздел Требования к системе в целом

В этом разделе нужно зафиксировать все нефункциональные требования. Давайте поделим раздел на следующие пункты:

  1. Требования к защите от влияния внешних воздействий
  2. Требования к патентной чистоте
  3. Требования к стандартизации и унификации
  4. Дополнительные требования
  5. Требования к функциям и задачам системы
  6. Требования к видам обеспечения

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

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

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

Показатели назначения

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

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

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

Цель добавили просто для того, чтобы вы точно не перепутали эти определения. На неё можно не обращать внимание.

Чтобы достичь нашего назначения нам нужно:

  1. Создать систему регистрации / авторизации, верификации, заполнения профиля
  2. Создать систему поиска пары
  3. Разработать и внедрить игры в приложение.
  4. Разработать систему подбора игроков.
  5. Добавить функционал общения во время игры.
  6. Создать систему матчей (совпадение лайков профилей) в игре и вне игры.
  7. Создать чат

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

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

Последующая логика такая же. Каждый выполненный пункт — показатель того, насколько система соответствует назначению. Если система соответствует назначению — значит всё работает как надо.

Показатели надёжности

В этом разделе можно встретить следующие формулировки:

  1. приложение должно выдерживать одновременно более N тысяч пользователей, при этом не тормозить,
  2. приложение должно хранить данные пользователя в БД на отдельном сервере,
  3. если система по разным причинам перестала работать (что-то с хост-машиной, либо сбой в системе), то она должна перезапуститься автоматически в течение 10 минут
  4. система не должна быть нагружена более чем на 80 процентов, при превышении лимита нужно закрывать доступ новым пользователям, чтобы снизить нагрузку;

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

Системные требования

Показатели надёжности и системные требования могут вас запутать. Давайте раз и навсегда разделим эти определения!

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

Системные требования охватывают вопросы:

  1. какие характеристики серверов или ПК должны быть,
  2. как они должны работать,
  3. как предотвращать перегрузки,
  4. как обслуживать эти сервера,
  5. какая ОС должна быть на сервере и т.д;

Требования к эргономике и технической эстетике

Замудренная формулировка, не правда ли? На самом деле здесь всё просто.

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

На примере страницы регистрации, описание UX выглядит примерно так…

Для начала напишем какие элементы находятся на этой странице.

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

  1. Поле ввода логина
  2. Поле ввода емейла
  3. Поле для ввода пароля
  4. Чекбокс подтверждения обработки персональных данных.
  5. Кнопка Зарегистрироваться
  6. Кнопка Вернуться на главную

Теперь опишем расположение этих элементов…

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

В дальнейшем UX описание понадобится дизайнеру для создании макета, а разработчикам для вёрстки.

Требования к транспортабельности для подвижных АС

В разделе указываете способы транспортировки оборудования.

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

Требования к эксплуатации, техническому обслуживанию, ремонту и хранению компонентов системы

Этот раздел относится к серверам. Часто здесь дают ответы на следующие вопросы:

  1. кто будет обслуживать сервера,
  2. как часто их нужно обслуживать,
  3. каким образом это делать,
  4. как всё настроить и всё в таком духе;

Этот раздел будет важен для вас, если вы планируете размещать программное обеспечение на ваших серверах или ПК (допустим это десктоп приложение).

Требования к защите информации от несанкционированного доступа

Судя по нашему опыту работы с банками, (а работаем мы преимущественно с фин. организациями) именно они уделяют особое внимание этому разделу. Они наиболее детально описывают:

  1. кому предоставлены доступы,
  2. к каким разделам предоставлены доступы,
  3. кто может изменить все креды,
  4. как быть, если кто-то извне вошёл в систему,
  5. как заблокировать подозрительного пользователя,
  6. кто и при каких условиях может изменять параметры доступа,
  7. какие требования к аутентификации,
  8. как запретить вход в систему сторонним лицам, даже при наличии кредов;

Такие требования обусловлены внутренними регламентами и требованиями к безопасности.

Требования по сохранности информации при авариях

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

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

Требования к защите от влияния внешних воздействий

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

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

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

Требования к патентной чистоте

Этот раздел носит юридический характер. Давайте кратко и для общего познания обговорим, что это такое.

Патентная чистота — это исключительные права на ваше приложение, которые еще называются «интеллектуальной собственностью».

В зависимости от законодательства страны правила о патентном праве могут различаться.

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

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

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

В результате продукт выстрелил… Отличный старт! Пора расти. Больше всего популярна криптовалюта за рубежом, поэтому будем продвигать своё приложение на иностранном рынке. Здесь то мы и встречаемся с проблемой.

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

Именно юристы составляют требования для оформления патентной чистоты приложения. Если у вас Наполеоновские планы, не забудьте «потыкать» юриста, чтобы он добавил всю необходимую информацию в этот раздел.

Требования к стандартизации и унификации

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

Приведу пару возможных формулировок:

  1. нужно реализовать систему безопасности в приложении по ГОСТу,
  2. разработка должна проводиться по методологии waterfall,
  3. корпоративная система должна быть построена по методологии ERP 2;

Дополнительные требования

В разделе фиксируется всё, что не касается предыдущих и следующих разделов.

Часто сюда прописывают следующие пункты:

  1. какой уровень владения ПК должен быть у пользователя, чтобы он комфортно мог использовать систему,
  2. список ролей в системе (сюда можете просто добавить список, а их описание будет в функциональных требованиях к продукту),
  3. требования к контурам — это техническая информация. Обычно контуры делятся на dev, prod, или dev, test, prod. Кому как удобно;

Требования к функциям и задачам системы

Мы всё ближе к функциональным требованиям! Потерпите ещё чуть-чуть.

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

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

Сюда же можете записать временные регламенты — когда должна отрабатывать какая-нибудь функция.

Пример. Ваше приложение — маркетплейс. Вам нужно, чтобы с 04:00 до 05:00 утра по МСК обновлялась цена по нижнему уровню стоимости каждого товара, взятая из других маркетплейсов.

Если ваше приложение выполняет множество расчетов, то для каждой функции пропишите алгоритм вычислений.

Если у вас есть пожелание к тому, как должна выглядеть информация в интерфейсе, тогда зафиксируйте логику вывода информации в этот раздел.

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

Требования к видам обеспечения

Совместный для заполнения исполнителем и заказчиком раздел. В нём фигурируют пункты:

  1. математическое обеспечение,
  2. информационное обеспечение,
  3. лингвистическое обеспечение,
  4. программное обеспечение системы,
  5. техническое обеспечение,
  6. требования к метрологическому обеспечению,
  7. организационное обеспечение,
  8. методическое обеспечение,
  9. требования к численности и квалификации персонал;

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

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

Перечислю всё, что должен написать исполнитель:

  1. как организовано хранение данных (какую информацию будем сохранять в базу данных и в какие поля её записывать),
  2. как построена взаимосвязь между компонентами системы (например, после успешного оформления покупки, компонент, отвечающий за оплату, тыкает компонент корзины, что покупка совершена успешна и можно её очистить.),
  3. как компоненты приложения связаны с внешними сервисами и как они должны обмениваться информацией. Например, после успешной оплаты, отвечающий за это компонент передает информацию во внешний сервис, который занимается рассылкой SMS, чтобы тот в свою очередь выслал код подтверждения обратно в систему и пользователю для получения товара)

Лингвистическое обеспечение — это перечень всех технологий, которые будут использоваться: языки программирования (C#, TypeScript), базы данных (mongoDB, SQL Lite), библиотеки (React, Angular)

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

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

Вот ещё один пример. Вам нужно шифровать данные, тогда укажите ПО, с помощью которого нужно это делать (например, Валидата).

Техническое обеспечение — это требования к серверу или ПК, на котором будет работать ПО

Например, технические характеристики серверов, если это веб-приложение, или технические характеристики компьютера, на котором будет работать десктопное приложение.

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

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

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

Пример. Для вашего отеля разработано мобильное приложение, с помощью которого посетители отеля могут заказывать еду в номер, планировать время уборки номера, наблюдать за растущим счётом за пребывание в отеле и др. Тогда посетитель отеля — пользователь, а персонал — администраторы и модераторы с разными правами доступа.

Для каждой группы пользователей нужно разбить роли и права доступа. Условно, если даже у уборщика и менеджера роль называется «администратор», то админские права могут отличаться. Уборщик не может забронировать номер для клиента, а менеджер не может отметить, что в номере завершили уборку.

Методическое обеспечение — сюда входит техническая и пользовательская документация. По необходимости может быть создан документ «пользовательские сценарии».

Техническая документация — это инструкция для разработчиков. В ней содержатся любые технические детали: описание API, комментирование кода, описание архитектуры.

Пользовательская документация (руководство пользователя) — это документ, в котором описано как пользователю начать работать с системой, и какие возможности приложения он может использовать.

Пользовательские сценарии — это описание действий пользователя. Т.е. описывается порядок действий пользователя.

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

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

Требования к численности и квалификации персонала. В разделе прописываются минимальные требования к умениям пользователя для работы в системе. Например:

  1. навык владения компьютером (допустим, десктоп приложение на Linux, а пользователь никогда не работал в этой ОС)
  2. умение работать с Excel (допустим, рекламная система умеет импортировать .csv формат для управления ставками в поисковой рекламной кампании. Для корректного импорта, нужно создать определенные поля с ключевыми словами, где для ключевого слова прописать специальную формулу с помощью которой система поймёт, какую ставку выставить. Пользователь может не знать, как оформлять документ так, чтобы система его поняла.),
  3. умение администрировать операционную систему (допустим, разработано сложное ПО, для перезапуска которого нужно использовать командную строку);

Если у вас предусмотрен регламент работы пользователей в системе, то зафиксируйте его здесь.

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

Функциональные требования к продукту

В этом разделе описываются все функции системы. Уделите разделу особое внимание. Не забудьте перечитать его в своём ТЗ несколько раз.

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

Вспомните то, о чём я писал в начале статьи: часто функциональные требования пишутся языком бизнес-аналитиков, то есть в формате «на странице авторизации мы видим форму, состоящую из двух полей, введите в поле Логин, значения формата…. , если введете неправильно — должна появляться ошибка» и так далее.

Я бы предложил описывать систему, используя один из двух вариантов:

  1. Описание функционала постранично.
  2. Описание системы, используя метод логического разделения функций.

Описание функционала постранично. Если вам нужно разработать веб-приложение, тогда составьте список страниц и опишите их содержание с точки зрения пользователя: что должно там находиться и как работать. Например, что может делать пользователь в своём личном кабинете (страница личного кабинета).

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

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

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

Правее от профиля находится кнопка, по нажатию на которую всплывает модальное окно. В модальном окне есть три кнопки:

  1. Выйти — выход из системы.
  2. Помощь — открытие страницы с пользовательской документацией.
  3. Войти в ЛК — переход на страницу с личным кабинетом.

В центре экрана находится список проектов, оформленный в виде таблицы со столбцами:

  1. Проект — указывается название проекта. По нажатию на название пользователь переходит на страницу с проектом.
  2. ID — указывается идентификатор проекта.
  3. Статус — Активен / Неактивен
  4. Настройки проекта — кнопка настроек для проекта. По нажатию открывается новая страница с настройками проекта
  5. Экспорт отчёта — кнопка выгрузки отчёта. По нажатию на кнопку всплывает модальное окно (о нём писать здесь не нужно, т.к. это может быть отдельная крупная модалка)

Если вы используете этот вариант, то не забудьте добавить общее описание системы. Обычно это то, что не содержится на самой странице, например:

  1. Какие роли нужны, а также какие возможности доступны для каждой из ролей.
  2. Нужна ли мультиязычность

Логическое разделение функций. Будьте осторожны с этим способом. Если у вас ещё мало опыта, то лучше описывайте требования к функционалу постранично. Самое главное в этом способе точно определить, какую цель выполняет данная функция.

Пример разделения функций. Функция регистрации выполняет цель добавления пользователя в систему.

Функция входа позволяет пользователю получить определенную роль и работать в системе. Функция загрузки отчёта…. Правильно, загружает отчёт в систему. Функция корзины — сохраняет за пользователем определенные объекты, которые он выбрал.

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

Оформляйте этот раздел как вам удобно. Главное, чтобы это было понятно вам и тому, кому направите ТЗ. Мне было бы удобно составлять требования следующим образом:

  1. [Название функции/страницы]
  2. [Краткое описание]
  3. [Элементы на экране]
  4. [Детальное описание возможностей функции]
  5. [Список функций, взаимодействующих с ней]

Виды и состав испытаний системы

В этом разделе мы описываем:

  1. как сдаём проект,
  2. как оцениваем его,
  3. как делим работу на этапы,
  4. при каких условиях проводим тестирование. Например, на dev ветке — сайт доступен только для разработчиков, или на prod — сайт доступен к использованию всеми пользователями,
  5. когда планируем графики релизов;

Резюмируем. В этом разделе фиксируем все организационные моменты, которые касаются управления разработкой проекта.

Общие требования к приёмке работ

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

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

Ещё здесь можно указать документы, которые будут участвовать в приёмке. Допустим, вам по регламенту нужно составить документ программы и методики испытаний

Статус приёмочной комиссии

В этом разделе указывается:

  1. ФИО и должности тех, кто будет принимать каждый этап. Не забудьте обосновать, почему именно они должны принимать сдачу (какое отношение имеют к проекту),
  2. ФИО и должность ответственного лица, который будет принимать проект полностью,
  3. список сотрудников, которые будут сдавать проект. (обычно это тестировщик, менеджер проекта и аналитик);

Финальная реплика

Вот вы и дочитали статью до конца. Я очень надеюсь, что статья поможет вам в написании ТЗ. Как и обещал, шаблон ТЗ вы можете скачать, нажав СЮДА. Желаю вам удачи в написании крепких ТЗ и в поиске подходящего вендора!

В
главе 1 «Техническое задание»
необходимо разработать
техническое задание на создаваемое программное обеспечение в соответствии с
ГОСТ 19.201-78 «Техническое задание. Требования к содержанию и оформлению».

1.1      

Введение технического задания

1.2      

Назначение разработки

1.3      

Требования к программе или программному
изделию

1.3.1   

Требования к функциональным
характеристикам

1.3.2   

Требования к надежности

1.3.3   

Требования к составу и параметрам
технических средств

1.3.4   

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

1.4      

Требования к программной документации

Содержание разделов.

В
разделе 1.1 «Введение технического задания»

должно включать наименование и краткую характеристику об­ласти применения
программы или программного продукта, а также объекта (например, системы) в
котором предполагается их использовать. Основное назначение введения –
продемонстрировать актуальность данной разработки и показать, какое место эта
разработка занимает в ряду подобных.

В разделе 1.2 «Назначение разработки»
должен содержать описание функцио­нального и эксплуатационного назначения
программного продукта с указа­нием категорий пользователей.

Раздел 1.3 «Требования к программе или программному
изделию»
должен включать следующие подразделы:

    

требования к функциональным
характеристикам;

    

требования к надежности;

    

требования к составу и параметрам
технических средств;

    

требования к информационной и
программной совместимости.

В подразделе 1.3.1
«Требования к функциональным характеристикам»

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

В подразделе 1.3.2
«Требования к надежности»
указывают уровень
надежнос­ти, который должен быть обеспечен разрабатываемой системой и время
восстановления системы после сбоя. Для систем с обычными требова­ниями к
надежности в этом подразделе иногда регламентируют действия разра­батываемого
продукта по увеличению надежности результатов (обеспечения устойчивого
функционирования, контроль входной и выходной информации, создание резервных
копий промежуточ­ных результатов, время восстановления после отказа и т. п.).

В подразделе 1.3.3
«Требования к составу и параметрам технических средств»

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

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

В разделе 1.4
«Требования к программной документации»
указывают необхо­димость
наличия руководства системного программиста, руководства пользователя,
пояснительной записки и т. п. На все эти типы документов также существуют
ГОСТы.

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

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

1.1 Введение технического задания

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

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

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

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

1.2 Назначение разработки

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

1.3 Требования к программе или программному изделию

1.3.1 Требования к функциональным характеристикам

Система должна
обеспечивать возможность выполнения следующих
функций:

         

инициализацию системы (ввод списков
групп, перечней изучаемых дисциплин в соответствии с учебными планами и т. п.);

         

ввод и коррекцию текущей информации о
ходе сдачи сессии конкретными студентами;

         

хранение информации об успеваемости в
течение времени обучения студента;

         

получение сведений о текущем состоянии
сдачи сессии студентами.

Исходными
данными являются:

         

списки студентов учебных
групп;

         

учебные планы кафедр –
перечень предметов и контрольных мероприятий по каждому предмету;

         

текущие сведения о сдаче
сессии каждым студентом.

Результаты:

         

итоги сдачи сессии конкретным
студентом;

         

итоги сдачи сессии студентами
конкретной группы;

         

процент успеваемости по всем
студентам группы при сдаче конкретного предмета в целом на текущий момент;

         

проценты успеваемости по всем
группам специальности на текущий момент;

         

проценты успеваемости по всем
группам курса на текущий момент;

         

проценты успеваемости по всем
курсам и в целом по факультету на текущий момент;

         

список задолжников группы на
текущий момент;

         

список задолжников курса на
текущий момент.

1.3.2 Требования к
надежности

Требования
к обеспечению надежного функционирования программы:

         

предусмотреть контроль вводимой
информации;

         

предусмотреть блокировку некорректных
действий пользователя при ра­боте с системой;

         

обеспечить целостность хранимой
информации.

1.3.3 Требования к
составу и параметрам технических средств

Система должна работать
на IBM совместимых персональных компьютерах.

Минимальная
конфигурация:

         

тип процессора – AMD и выше;

         

объем оперативного запоминающего
устройства – 1024 Мб и более.

Рекомендуемая
конфигурация:

         

объем оперативного запоминающего
устройства – … .

1.3.4 Требования   к информационной   и программной совместимости

Система должна работать
под управлением семейства операционных систем Windows.

1.4 Требования к программной документации

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

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

В состав сопровождающей
документации должны входить:

         

пояснительная записка на 25-30
листах, содержащая описание разработки;

         

руководство системного программиста;

         

руководство пользователя.

Пример 2. Разработать техническое задание
на разработку программного средства «Музыкальный
плеер»

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

1.1 Введение технического задания

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

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

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

1.2 Назначение разработки

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

1.3 Требования к программе или программному изделию

1.3.1 Требования к функциональным характеристикам

Программное средство
«Музыкальный плеер» должно обеспечить выполнение перечисленных ниже функций:

1.      

воспроизведение
аудио файлов:

   

воспроизведение
файлов в формате *.
mp3,
*.
aac,
*.
wav,
*.
mid,
*.
ogg;

   

открытие
файлов в формате *.
pls
(файлы плей листов);

2.      

возможность
поиска по плей-листу:

   

динамический
поиск (поиск осуществляется начиная с набора первого символа, после набора
второго символа поиск продолжается с более жесткими условиями и т.д. до
нахождения определенно файла или уведомления о том, что файла, соответствующего
таким условиям поиска, не существует);

   

поиск
по
ID3
тэгам (имя исполнителя, название песни, название альбома, год выпуска и т.д.);

3.      

возможность
настройки звучания с помощью графического эквалайзера:

      

настройка
звучание в различных частотных диапазонах;

      

настройка
громкости воспроизведения;

4.      

возможность
выбора различных способов воспроизведения:

      

воспроизведение
в случайном порядке;

      

воспроизведение
всех песен по кругу;

      

зацикленное
воспроизведение 1й выбранной композиции;

5.      

возможность
интеллектуального ранжирования файлов:

   

более
часто прослушиваемые файлы должны воспроизводиться чаще при воспроизведении в
случайном порядке;

   

выставление
оценок файлам вручную (чем выше оценка файла, тем чаще он «выпадает» при воспроизведении
в случайном порядке);

6.      

система
контроля за частотой воспроизведения:

   

никакие
файлы не должны воспроизводиться чаще определенного значения (например, не чаще
1 раза из 20 прослушанных песен);

   

никакие
файлы не должны воспроизводиться реже определенного значения (например, не реже
1 раза из 1000 прослушанных песен);

7.      

возможность
сортировки файлов:

    

сортировка
воспроизводимых файлов по
ID3-тэгам
(исполнитель, альбом и т.п.);

    

сортировка
воспроизводимых файлов по выставленным оценкам;

8.      

поддержка
«плагинов» (модулей расширения функционала);

9.      

получение
недостающей информации о композиции из баз различных
интернет-каталогов/магазинов (например, из
iTunes Store);

10. 

поиск
аудио файлов для дальнейшего проигрывания по «расширенным» папкам локальной
сети;

11. 

возможность
прослушивания интернет радиостанций;

12. 

графический
интерфейс:

    

возможность
открытия файлов через графическое меню;

    

возможность
управления воспроизведением через графические инструменты управления (клавиши «
Play», «Pause», «Stop» и т.д.);

    

возможность
графической настройки эквалайзера («ползунки»);

    

графический
интерфейс для добавления «плагинов» и дальнейшей их настройки;

    

поддержка
различных стилей оформления («скинов»);

13. 

возможность
обновления через
Internet.

1.3.2 Требования к
надежности

Плеер должен иметь системы
оптимизации воспроизведения и возможность работы с плей-листами объемом более
50000 композиций не «зависая». Также плеер должен иметь возможность открывать файлы
большого размера (более 1 Гб).

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

1.3.3 Требования к
составу и параметрам технических средств

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

         

процессор: не ниже Pentium 3
– 800
MHz;

         

оперативная память: не менее 128 Mb;

         

место на жестком диске: не менее 120 Mb;

         

ОС: Windows XP, Windows 2003, Windows Vista, Windows 7, Windows
8;

         

интернет соединение: не ниже 64 Кб/сек
(опционально).

1.3.4 Требования к
информационной и программной совместимости

Для хранения внутренней
информации о проигрываемых файлах (рейтинг, частота прослушивания и т.д.)
используется формат хранения данных
XML.

Т.к. данные о треках
хранятся в
XML,
их легко расширять за счет добавления новых свойств.

Программа должны быть
написана на языке С++.

Системные программные
средства, используемые программой, должны быть представлены лицензионной
локализованной версией операционной системы
Windows XP, Windows 2003, Windows Vista, Windows 7, Windows 8.

1.4 Требования к программной документации

Состав программной
документации должен включать в себя:

2.               

программу и методики испытаний;

3.               

руководство пользователя.

Пример 3. Разработать техническое задание
на создание программы: «Интернет база данных»

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

1.1 Введение технического задания

1.2 Назначение разработки

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

         

предложения
туроператоров;

         

прейскуранты
цен для расчета индивидуальных туров;

         

возможность
проведения статистических анализов (изменение цен, рейсов);

         

данные
туристов для он-лайн бронирования;

Программа
предоставляет Веб-интерфейс для управления содержимым базы данным в
соответствии с предъявляемыми требованиями по протоколу http.

1.2 

Требования
к программе или программному изделию

1.3.1 Требования к функциональным характеристикам

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

         

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

         

возможность поиска (фильтрации) по базе
данных информации по предложениям тур операторов;

         

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

         

возможность оплаты в режиме онлайн или в
офисе забронированного предложения туроператора;

         

возможность поиска (фильтрации) по базе
данных информации по отелям;

         

для Администраторов базы данных
возможность поиска (фильтрации) по базе данных информации по туристам;

         

для Администраторов базы данных
возможность анализа в базе данных динамики изменения цен и рейсов;

         

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

1.3.2 Требования к
надежности

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

         

организацией
бесперебойного питания технических средств;

         

использованием
лицензионного программного обеспечения;

         

регулярным
выполнением рекомендаций Министерства труда и социального развития РФ,
изложенных в Постановлении от 23 июля 1998 г. Об утверждении межотраслевых
типовых норм времени на работы по сервисному обслуживанию ПЭВМ и оргтехники и
сопровождению программных средств»;

         

регулярным
выполнением требований ГОСТ 51188-98. Защита информации. Испытания программных
средств на наличие компьютерных вирусов.

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

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

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

1.3.3 Требования к
составу и параметрам технических средств

В состав технических средств должен входить IВМ-совместимый
персональный компьютер (ПЭВМ), выполняющий роль сервера, включающий в себя:

         
процессор Pentium-2.0Hz, не менее;

         
HDD, 40 Гигабайт,
не менее;

         
операционную систему Windows 2000
Server или Windows 2003;

         
Microsoft
SQL
Server 2000.

1.3.4 Требования   к информационной   и программной совместимости

База данных
работает под управлением
Microsoft SQL Server. Используется много
поточный доступ к базе данных. Необходимо обеспечить одновременную работу с
программой с той же базой данной модулей экспорта внешних данных.

Системные
программные средства, используемые программой, должны быть представлены
лицензионной локализованной версией операционной системы Windows Server и
Microsoft SQL Server.

1.4 Требования к программной документации

Состав программной
документации должен включать в себя:

         

программу и методики
испытаний;

Образец техзадания на разработку ПО

«правильная постановка задачи – это уже половина ее решения»
(Д. Гильберт)

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

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

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

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

В зависимости от полноты и детализации можно выделить два вида технических заданий:
(1) «эскиз» – документ, содержащий общее описание создаваемого продукта без учета технологического аспекта реализации решения;
(2) «технический проект» – представляет собой подробный проект, практическая реализация которого на следующем этапе приводит к созданию ПО.

Поскольку программа для ЭВМ согласно ст.1261 ГК РФ включает в себя также «подготовительные материалы, полученные в ходе разработки программы», автор «технического проекта» по праву может считаться соавтором программы. В то время как разработчик «эскиза», остается лишь автором документа под названием «техническое задание».

Общие требования к составу, содержанию и оформлению техзадания (образец техзадания) изложены в ГОСТ 34.602-89 и ГОСТ 19.201-78.

Так, согласно положениям ГОСТ, техзадание, как правило, включает следующие основные разделы:

1) общие сведения о программе (указываются полное/сокращенное наименования ПО и его область применения, также в данном разделе следует указать перечень терминов и сокращений, используемых в ТЗ);
2) назначение, цели и задачи ПО;
3) требования к ПО (в частности, его функциональным характеристикам, надежности, безопасности, условия эксплуатации и т.п.);
4) требования к программной документации (указывается предварительный состав проектной (пояснительная записка к ТЗ, программа испытаний ПО и др.) и эксплуатационной (руководство пользователя, администратора и т.п.) документации);
5) стадии и этапы разработки ПО (поэтапное содержание работ, сроки разработки);
6) порядок контроля и приемки (описание процесса сдачи созданного ПО и требования к приемке работы).

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

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

Максимально детализированное ТЗ может быть выгодно обеим сторонам договора:

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

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

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

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

Вера Лазарева

Готовое решение для вашего бизнеса

Более 18 вариантов договора на разработку ПО. Различные модели тарификации. 100% защита прав на код, дизайн и алгоритмы.

Авторское право Договор разработки

Добавить комментарий