Как подготовить ТЗ на разработку программного обеспечения. Часть 3.


Введение

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

Краткое содержание 3 части

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Постоянная ссылка