Техническое задание на программное обеспечение оказалось поверхностным?

Техническое задание на программное обеспечение оказалось поверхностным?

10 июля 2014

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

01Флаг гоночныйТехнического задания на разработку программного обеспечения должно быть достаточно для того, чтобы приложить к контракту и начать работу.
02ДекомпозицияИнформация должна быть хорошо структурирована. Сплошной текст сложно воспринимать и оценивать.
03Равенство сведенийРазделы ТЗ не должны содержать противоречивых сведений.
04КистьДокумент не должен содержать посторонней информации, не относящейся к разработке системы и не проливающей свет на тот или иной аспект ее функционирования: пометки, вопросы, разноцветные выделения и т.п.
05Конь шахматыОтсутствие в тексте обтекаемых формулировок и общих фраз: чем больше конкретики, тем лучше.
06Нумерованный списокБудущая система должна быть описана полностью. В случае поэтапной разработки должен быть полностью описан функционал соответствующего этапа.

Примеры

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

Структура

  • Стоит зарисовать архитектуру (скелет) системы, а также охарактеризовать взаимосвязи между подсистемами.
  • Техническое задание должно описывать структуру системы: интерфейс пользователя, интерфейс администратора, серверная часть, вычислительная часть, инсталлятор, вспомогательные утилиты и так далее.
  • Техническое задание на разработку программного обеспечения должно включать следующие разделы.
01Инфо-страницаОбщие сведения о проекте.
02Назначение целей создания системыНазначение и цели создания (развития) системы.
03Описание объекта автоматизацииХарактеристика объектов автоматизации.
04Требования к системеОбщие требования к системе.
05Цикл разработкиСостав и содержание работ по созданию системы.
06Проверка требованийПорядок контроля и приемки системы.
07Ввод списка в действиеТребования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие.
08Документрирование и кодТребования к документированию, включая требования к исходному коду.

Детали

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

Оформление

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

Производительность и надежность

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