Очень часто бывало так, что ко мне обращался потенциальный заказчик и хотел услышать от меня оценку какого-то проекта (сроки и стоимость), но при этом ТЗ у заказчика не было. Обычно такая ситуация складывается по разным причинам и в данном посте я хотел бы поделиться некоторыми простыми советами, которые помогут заказчику, даже далекому от ИТ области написать вполне пригодное для оценки ТЗ.
Немного лирики
1. Первое и самое главное, что необходимо понять — ТЗ необходимо для любого проекта, который сложнее сайта визитки. ТЗ это как архитектурный проект дома, без него вам никто вразумительно смету не посчитает и нормальный дом не построит.
2. Еще одно немаловажное замечание — показать аналог сайта, который вы хотите сделать не значит предоставить ТЗ и не значит, что разработчик сможет оценить сложность проекта. В сложных системах больше половины функционала может быть скрыто от обычного пользователя в том же административном интерфейсе, а даже если это не так, то предоставленный сайт нужно детально изучить, чем бесплатно заниматься вряд-ли кто-то будет. Скорее всего в таком случае вам просто назовут цену и сроки с потолка, естественно порядком завышенные.
Теперь непосредственно к советам
3. Разбейте ваше ТЗ на блоки функциональные блоки или модули. Например, модуль по управлению пользователями это один блок, модуль для добавления товаров другой, а для отображения этих товаров пользователям (с поиском или без) третий. Вам совершенно не нужны глубокие познания в ИТ области для того, чтобы это сделать.
4. Разбейте каждый модуль на страницы. Например, модуль для управления пользователями будет состоять как минимум из трех страницы: страница со списком пользователей, страница для добавления и страница для редактирования пользователей. В некоторых случаях последние две страницы можно будет объединить в одну.
5. Определитесь со списком основных блоков каждой страницы модуля, их расположением и назначением. Например, на странице со списком пользователей будет располагаться естественно сам список, который может быть оформлен в виде таблицы и форма для фильтрации данного списка, а на странице редактирования соответственно форма для редактирования. Полезно будет указать, если блоки должны изменяться без перезагрузки страницы, например обновление списка пользователей в зависимости от параметров фильтрации или сохранение данных пользователя через форму.
6. Составьте список основных сущностей, их атрибутов и связей между ними. Например, сущность «пользователь» может иметь следующие стандартные атрибуты: логин, пароль, ФИО и email. Этот список поможет разработчику лучше понять и прикинуть как будет работать ваша система.
7. Укажите полный список систем оплат, которые хотите внедрить в своем проекте.
8. Укажите полный список социальных сетей, через которые хотите иметь возможность для авторизации пользователей.
9. Не обязательный, но желательный пункт, это предоставление набросков интерфейса страниц. Это можно сделать даже нарисовав их от руки и отсканировав или сфотографировав получившиеся наброски, но намного проще и аккуратнее будет сделать это в каком-нибудь из множества онлайн сервисов, например: http://lumzy.com/app/ или https://moqups.com/.
ТЗ. Как много в этом слове. Ну хотя, какое этож слово, так пара букв. Но когда этих двух букв нет, начинается Содом и Гоморра.
К: А почему вы нам не сделали то-то и то-то?
Я: Потому что этого не было в ТЗ. Мы его с Вами месяц обсуждали, в итоге под ним стоит Ваша подпись.
К: Ну сложно было догадаться что-ли?
К: Знаете, я как-то по другому себе это представлял.
Я: Ну давайте проверим. Вот тут у Вас схема работы.... В итоге все по Вашей схеме?
К: Да, но вы же лучше знаете как мне нужно было делать. Я думал будет не так.
К: Мы хотим вот это и вот это, без этого нам невозможно нормально работать!
Я: В первоначальные планы этот функционал не входил. По договору все доработки за отдельную плату. Вечером скажу сколько это будет стоить.
Вечером...
Я: Вышло N-тысяч рублей.
К: Знаете, и так хорошо.
К: Вы что наделали?? Это вообще не так должно работать!
Я: Ну Вы же отказались схему составлять. Мы с Ваших слов записали, получилось вот так.
К: А зачем с моих слов? Я чё самый умный что ли??
P.S. Наличие грамотно составленного ТЗ, наверное 30% процентов успеха предприятия.
P.S.S. Пользуясь случаем, прошу прощения у всех за прошлый пост.
Взять с собой побольше вкусняшек, запасное колесо и знак аварийной остановки. А что сделать еще — посмотрите в нашем чек-листе. Бонусом — маршруты для отдыха, которые можно проехать даже в плохую погоду.
На собеседовании у меня спросили, чем ТЗ отличается от ЧТЗ?
Я ответил, что ТЗ это десять библейских заповедей, а ЧТЗ это Уголовный кодекс. Не поверите, но меня взяли..