Много раз в отношениях «разработчик-заказчик» со стороны второго возникал вопрос: «А что такое ТЗ, зачем его писать и, самое главное, зачем за него платить?». Попробуем разобраться, что такое техническое задание и зачем оно делается.
Разработка любого мало-мальски сложного софтверного продукта (например – сайт с нестандартным функционалом) требует процесса бизнес-анализа. Бизнес-аналитик собирает с заказчика бизнес-требования и формализует их в техническое задание. Частое заблуждение состоит в иллюзии того, что в проекте и так всё понятно, всё предельно ясно, и нечего тут описывать. На практике, даже к простому и понятному элементу может возникнуть множество вопросов.
Возьмём форму обратной связи. Казалось бы, что может быть проще? Ан, нет. Взгляните на список вопросов, ответы на которые должны быть отражены в ТЗ:
-
Какие поля должны быть в форме?
-
Какие поля должны предзаполняться автоматически?
-
Какие поля обязательные?
-
Какие поля должны содержать маску ввода?
-
Как должны валидироваться поля (проверяться на ввод бреда)?
-
Как должна вести себя форма, если не заполнено обязательное поле?
-
Как должна вести себя форма, если значение в поле не прошло валидацию?
-
Должна ли быть предусмотрена защита от спама (капча)?
-
Куда должна отправляться информация после заполнения формы?
-
Нужно ли сохранять результаты заполнения формы в базе данных?
-
Какой формат письма с результатами заполнения формы (тема, отправитель, содержимое)?
-
Что должен видеть пользователь при успешной отправке формы?
-
И ещё столько же скучных вопросов.
Совокупность ответов на эти вопросы даёт исполнителю максимально полное понимание, что нужно делать и возможность точно оценить трудоёмкость процесса. Для заказчика грамотное техническое задание даёт понимание ожидаемого результата и уже гарантирует определённый уровень качества. Становится понятно, что именно проверять при сдаче проекта, на что обратить внимание, за что именно платятся деньги.
Техническое задание - это неотъемлемая часть договора на разработку сайта. Чем качественнее и подробнее оно сделано, тем лучше для обеих сторон процесса.
Что обязательно должно быть в ТЗ (Техническом задании).
Для успешной разработки веб-сайта с нестандартным функционалом в ТЗ, как-минимум, должны быть:
-
Общие сведения о проекте.
Цель разработки.
Глоссарий, чтобы все термины понимались одинаково.
Общие требования ко всем описываемым в ТЗ модулям системы.
Допущения (что исполнитель решает сам, что он должен согласовать, а что должен сделать так, как написано и никак иначе).
-
Описание общего бизнес-процесса в виде схемы (как должна работать система от начала до конца крупными мазками, в каком месте идёт обмен какими-то данными, если есть интеграции с внешними системами, то как они встроены в процесс, какую функцию на каком этапе выполняют, какие данные получают).
-
Описание работы каждого модуля системы (каждого раздела сайта, включая админку, если необходимо) с прототипами интерфейсов, с описанием объектов, сущностей и ролевой моделью (например, если есть администратор и обычный пользователь, то что в этом модуле может делать администратор, а что обычный пользователь).
-
При этом должна быть описана логика поведения всех элементов, которые указаны на прототипах. К слову, прототип – это схематичное изображение пользовательского интерфейса, на котором показано, где и какие именно элементы размещаются на странице. По прототипам создаётся дизайн-макет.
-
Описание системы уведомлений и нотификаций (что, кому посылать, куда, в каком формате).
-
Описание протоколов (правил) взаимодействия с внешними системами.