Техническое задание – дорожная карта любого специалиста, особенно программистов. Вы можете бесконечно долго рассказывать о том, что сайт должен быть красивым, быстрым или адаптивным, но если это не будет зафиксировано в ТЗ, то специалист ничего не сможет воплотить в жизнь. Многие программисты пользуются некорректными техническими заданиями, чтобы не выполнять доработки, затягивать сроки и т. д. Рассказываем, как составить техническое задание для программиста, чтобы получить качественный продукт и предупредить хитрости со стороны специалиста.
Когда требуется четкое техническое задание
К услугам программистов приходится прибегать в нескольких случаях:
- сайт существует в форме идеи, требуется разработка с нуля;
- нужно доработать или расширить имеющуюся площадку. Например, добавить онлайн-калькуляторы, создать блог, реализовать анализатор статистики;
- требуются доработки после выполненной разработки. Такой сценарий возможен, если вы заказали услугу у неопытного программиста, который не смог довести начатое до конца.
До начала сотрудничества со специалистом нужно проверить его портфолио, отзывы заказчиков и уровень профессионализма. Проводятся технические консультации, честный специалист не обещает сделать «за неделю на 60% дешевле, чем в агентстве». Поиск начинается с вакансии, рассмотрим этапы ее составления.
Составление вакансии для программиста
При формировании описания вакансии необходимо максимально сузить круг поиска. Конкретизируйте резюме: «Нужен программист для добавления функции А на готовый сайт на движке WordPress». Программисты сразу поймут, смогут ли они выполнить подобную задачу, учитывая свои профессиональные компетенции. Однако такие формулировки дают поверхностное видение объема работ, после выбора исполнителя заказчик должен предоставить ему техническое задание:
- сроки на выполнение (согласовываются с исполнителем), ситуации, при которых дедлайн можно сдвинуть без репутационных и коммерческих потерь;
- варианты оплаты и способы перевода средств. Например, электронными деньгами после приема готовой работы. В ТЗ можно зафиксировать моменты с авансом, хотя незнакомым специалистам, особенно при дистанционном сотрудничестве, предоплату лучше не давать;
- правки и штрафные санкции, например, за просрочку дедлайна;
- детализованное описание результата работы;
- техническую информацию, условия тестирования.
Многие пункты – типичные, их включают во все договоры подряда. Вторая половина списка относится именно к разработке, поэтому ей нужно уделить особое внимание.
Как оформить ТЗ и сформулировать цели
Результат
Для предупреждения разногласий клиент должен уточнить, что хочет получить в результате. Например, цель – создание сервиса по проверке орфографии. Сформулируйте и в столбик запишите требования:
- оформление поля для вставки текста;
- проверка в режиме реального времени;
- выделение ошибок, комментарии к ним;
- лимиты на объем текста, количество проверок без регистрации;
- способы оплаты дополнительного объема или проверок;
- наличие измерения грамотности в процентах, звездах, баллах;
- возможность сохранить/скачать текст.
Кажется, что длинный список – это чересчур скрупулезно, однако такие ТЗ программисты ценят. Им не нужно придумывать все самостоятельно, а потом вносить миллион правок из-за того, что заказчик видит сервис по-другому. Чем точнее все описано, тем лучше.
Техническая информация
Заказчик обязан предоставить техническую информацию, необходимую для выполнения поставленной задачи. Это легко реализовать, если сайт создан на популярном движке: достаточно указать название движка и перечень плагинов, с которыми новый продукт будет взаимодействовать.
Если сайт самописный, то все сложнее. В этом случае нужно предоставить данные о языке, чтобы программист подготовил сам продукт. После этого вы сами добавите его на сайт, если умеете это делать: все достаточно сложно, на финише можно получить криво работающую программу.
Идентификация ресурсов – первый шаг на пути подготовки ко взлому. Например, хакер получил данные о том, что портал функционирует под управлением IIS 7 под управлением Windows Server 2008. В перспективе он начнет искать уязвимости, характерные для этих продуктов, используя специальные базы. Если поиск не увенчается успехом, то мошенник начнет искать лазейки самостоятельно. В результате для владельца сайта ситуация может разворачиваться плачевно.
Если вы хотите сразу добавить сервис на сайт, то можно предоставить данные о базе данных, используемых файлах, библиотеках, функциях и языке. Можно дать сведения о функциях, которые использовать нельзя во избежание конфликта.
Оформление кода
Разные программисты используют индивидуальный подход к написанию кода. Здесь все как с текстами: каждый автор имеет свой стиль, он не является плохим или хорошим, он индивидуальный. Многие программисты откровенно не любят чужие коды, замедляющие выполнение поставленных задач. В некоторых случаях – делают проекты невыполнимыми, поэтому от работы приходится отказываться. Лучше составить стандарты для оформления кода, особенно если в проекте принимают участие несколько человек. Стандарт формируется по аналогии с редакционной политикой, но позволяет получить программу, которую при необходимости быстро исправит или масштабирует другой программист. Создание стандартов лучше доверить первому программисту: он задаст «стиль», его будут придерживаться следующие специалисты.
Тестирование
До подключения нового продукта нужно провести поиск лазеек в коде, они могут быть как предумышленными, так и полученными из-за невнимательности, неопытности. Если проблем нет – можно выполнять подключение, тестирование, открытие доступа для обычных юзеров.
В заключение
Составление ТЗ – основа получения качественного, безопасного, функционального продукта. Оно предупреждает недопонимание, ошибки, дальнейшие проблемы. Техническое задание – страховка для каждой стороны сделки: программист знает свои обязанности и задачи, клиент – уверен в сроках и имеет «визуальный образ», по которому будет проверять готовую работу. ТЗ предупреждает изменение вектора разработки на разных этапах, формируя гармоничную среду для комфортного сотрудничества.
Часто задаваемые вопросы
-
Зачем вообще нужно техническое задание (ТЗ) программисту?Хорошо проработанное ТЗ предупреждает разногласия и задержки, позволяет заранее прописать санкции за срыв дедлайна и количество правок. ТЗ четко фиксирует все требования и сроки, служит «дорожной картой» для исполнителя и защищает заказчика от недобросовестного выполнения.
-
В каких случаях особенно важно составлять ТЗ?
1. Нужно разработать сайт с нуля.
2. Необходимо доработать существующую площадку (например, добавить онлайн‑калькулятор, блог или модуль статистики).
3. Требуется исправить ошибки после работы другого подрядчика.
Во всех этих случаях ТЗ помогает подробно зафиксировать задачи и избежать недопонимания.
-
Как правильно сформулировать желаемый результат в ТЗ?
Цель и ожидаемый результат описывают максимально детально. Например, если заказываете программисту разработать сервис проверки орфографии, то в ТЗ надо перечислить все его функции: наличие поля для ввода текста, проверка в реальном времени, выделение ошибок и комментарии, лимит на объём проверяемого текста, способы оплаты расширенных проверок, система оценки грамотности, возможность скачивать результат.
Программисты ценят подробные списки, так как им не приходится додумывать детали и вносить многочисленные правки. Важно максимально подробно расписывать все ваши «хотелки». Помните, что другие люди не умеют читать ваши мысли, а также, что для других неочевидно то, что очевидно для вас.
