Как написать техническое задание на разработку — личный опыт
Доброго времени друзья! Сегодня я хочу поговорить о том, как написать техническое задание на разработку сайта, программного обеспечения или любого другого веб-проекта, и обратить ваше внимание на несколько основных моментов, которые следуют при этом учесть. Более того, так как в большинстве случаев, принципы написания технического задания, одинаковы, как для IT сферы, так и для любой другой — я думаю описанные мною правила, буду полезны также специалистом из других областей. Я решил поделиться ими, потому что ко мне часто обращаются люди с просьбами оценить стоимость работы или с предложением о сотрудничестве, ограничиваясь при этом, кратким описанием сути проекта или вовсе ссылкой на какой либо сайт, со словами: — «хотим такой же». Разумеется с такими исходными данными, произвести оценку, а уж тем более осуществить проект, не представляется возможным. Для этого нужно техническое задание(сокращенно — ТЗ), хотя бы его первичный, черновой набросок. Как его написать, читайте далее.
Что стоит учесть
Любое техническое задание, следует оформлять в письменном виде, варианты передачи информации голосом, аудио или видео сообщениями, не подходят, подробнее об этом можно прочитать тут. При написании технического задания, учитывайте следующие правила:
1. Укажите цель проекта
Вначале документа, опишите цель проекта, это то, чего вы хотите достичь, а также для кого создается проект и кто им будет пользоваться. Расскажите о проекте, но не вдавайтесь в его технические детали, их вы сможете перечислить потом. Описание цели проекта служит для того, что бы любой человек, который впервые знакомиться с техническим заданием, смог сразу понять его суть и суть проекта. Описание цели проекта, должно отвечать на следующие вопросы: Какую проблему решать проект? Какой результат должен быть достигнут?
2. Разбейте на этапы и пункты
Если проект крупный разбейте его на этапы, далее в каждом этапе перечислите задачи, пронумеровав их. Одна задача — один пункт. Если требуется — можно сделать подпункты. Нумерация задач, позволит вам и исполнителю, сократить уйму времени при общении друг с другом, называя номер задачи вместо цитирования её описания.
3. Сначала важное, потом все остальное
Сделайте первую версию ТЗ как можно проще, не стоит стараться описать весь возможный функционал и все задачи сразу, выделите основные функции будущего проекта, позвольте разработчику сначала оценить их, не отвлекаясь на второстепенные задачи. Дополнительный, необязательный функционал лучше вынести в отдельный этап работ или в новое ТЗ.
4. Дополнительные материалы разместите отдельно
Если техническое задание требует наличие дополнительных, поясняющих материалов(изображения, видео, прочие документы), то лучше их вынести в отдельную папку. Не стоит включать в тело документа технического задания множество изображений, они будут лишь отвлекать от основной сути, лучше просто сослаться на них, указав названия их файлов. Гораздо удобнее если дополнительные материалы, находятся в отдельной папке и имеют название файлов, кратко описывающих их содержимое.
5. Укажите срок и бюджет
Несмотря на то, что исполнитель будет производить оценку стоимости и сроков самостоятельно, с последующим согласованием с вами, стоит заранее указать желаемые вами условия. Исполнитель наверняка сможет под них подстроится, например если сроки горят, то исполнитель заранее будет настроен на работу в ускоренном режиме, и заложит это в стоимость работ, что позволит в дальнейшем избежать непредвиденных трат. Указав бюджет, вы также дадите возможность исполнителю скорректировать ТЗ и сделать вам встречное предложение, если бюджета окажется недостаточно. Или напротив, он сможет взяться за работу с особым приоритетом, если бюджет будет превосходить его ожидания.
6. Прочие характеристики проекта
Иногда проект подразумевает наличие прочих характеристик, очевидных для вас, но не всегда очевидных для исполнителя. Например возможность будущего масштабирования, наличие мобильной или специальной версии сайта, определенной скорости работы, соответствие каким либо стандартам, хорошие показатели по Google PageSpeed Insights, требований к безопасности и т.д. Некоторые характеристики являются очевидными для всех, некоторые только для вас, поэтому желательно включить их в ТЗ, отдельным пунктом.
Чего стоит избегать
Отдельно стоит обратить внимание на моменты, которых стоит избегать при написании технического задания или хотя бы ограничиваться какими-то разумными рамками. Я не раз сталкивался с такого рода нюансами, которые вводили исполнителя в заблуждение, отнимали время и тем самым тормозили ход всей работы над проектом.
1. Не пишите много и не по делу
Краткость сестра таланта. Часто в ТЗ можно встретить описание каких-то процессов не относящихся к задаче, например размышления о будущих перспективах проекта или упоминание о каком-то прежнем опыте заказчика, что не имеет прямого отношения к задаче. Более того, зачастую исполнителю многое знать и не нужно, достаточно лишь четкого описания задачи, без лишней философии. Большой текст сложно читать, из него сложно выделить основную суть. А если задача не простая, возможно текст придется перечитывать несколько раз, то его размер и наличие «воды», могут стать большой проблемой, вплоть до срыва всей работы.
Мне попадались задания, описание которых занимало две страницы формата А4, хотя всю суть можно было выразить в одном предложении.
2. Не ограничивайтесь ссылками и картинками
Иногда сложно заставить себя, или просто нет времени, написать хороший текст ТЗ, особенно если речь идет о технических деталях, и велик соблазн, просто скинуть ссылку со словами: — «нужно также». Но такой подход непродуктивен, во первых исполнителю сложно будет понять, что вы имели ввиду: такой же дизайн, такую же логику или может речь о достижении такой же цели но другим путем, что вы подразумевали? Вопросов возникнет гораздо больше, что в свою очередь приведет к длительному обсуждению, порой самых малозначимых моментов и вам все равно придется писать ТЗ, только предварительно затратив уйму времени на пустые разговоры. Если же вы рассчитываете, что за составление ТЗ возьмется сам исполнитель, то также учитывайте, что эта работа будет включена в стоимость проекта. Это же касается и картинок, они хороши как дополнительный материал, но плохи как основной источник информации о задачах.
Ссылки со словами «нужно также», недостаточно.
3. Не переделывайте 100 раз
Этот пункт назван так не спроста, на практике я реально встречал такое, когда заказчик переделывает и переписывает ТЗ по несколько раз в день, причем правки могут быть как незначительные, так и весьма существенные. Даже не смотря на то, что я всегда учитываю возможность изменения ТЗ в ходе работы — ведь это нормально, все же лучше работать по принципу, когда зафиксированные задачи меняться не могут или меняются редко и в крайнем случае. Если же проект и ТЗ требуют правок, то лучше взять паузу, на столько сколько потребуется для этого времени, продумать все возможные нюансы, зафиксировать изменения и снова продолжить работу.
Однажды я работал над функционалом, который как оказалось, несколько раз исключали и снова включали в ТЗ, на протяжении периода работы над ним.
4. Не работайте над ТЗ всем коллективом
Если в вашем проекте задействовано сразу несколько человек, то для написание ТЗ лучше всего назначить одного ответственного человека, который в свою очередь, при необходимости, будет общаться с другими участниками, аккумулировать полученную информацию, и после тщательного анализа включать те или иные задачи в него. Также он должен быть наделен правом, принимать окончательное решение, по включаемым задачам в ТЗ. Если ТЗ будут составлять сразу несколько человек, то споры, противоречия и потеря драгоценного времени — обеспечена. И самое страшное, что в таком случае исполнитель не будет понимать, кого слушать и за кем последнее слово.
Как то меня пригласили принять участие в обсуждении ТЗ, где и без меня уже было пять человек, без явного лидера. К единому решению прийти так и не удалось.
5. Не используете абстракции
Не используйте для описания желаемого результата такие слова как: хорошо, плохо, красиво, не как у всех, не обычно, особенно и т.д. Все эти слова ни о чем не говорят. Такого рода оценка, всегда субъективна и исполнитель в лучшем случае будет следовать своему мнению, в худшем вообще делать наугад. Замените абстрактные понятия на конкретные значения, пусть они будут продиктованы вашим собственным представлением о хорошем, главное, что исполнитель будет работать с конкретными, точными данными и сможет реализовать поставленную вами задачу, максимально точно, как вы того хотите. Возможно при отрисовке дизайна такие абстракции допустимы, но в таком случае позвольте исполнителю самому принимать решение о красоте, на основе своего творческого видения.
Абстрактные критерии не позволяют оценить работу объективно.
Заключение
От правильно составленного технического задания, зависит успех реализации проекта, поэтому лучше уделить время на его проработку перед началом работы. Ведь расписать все задачи по пунктам, четко, без лишней, не относящейся к делу информации, не такая уж сложная задача, решив которую вы избежите множества ненужных проблем, которые могут возникнуть из-за плохого ТЗ, в процессе работы.
Если же с написанием ТЗ возникнут сложности, то буду рад помочь вам составить его. Обращайтесь!
Похожие записи
Оставить комментарий
Full Stack
Senior, Architect
предложить оффер
- jQuery: как получить значение атрибута?
- PHP работа с изображением, класс SimpleImage
- Интеграция с API ОСАГО сайта sravni.ru
- Комментарии на PHP, Ajax, mySQL
- PHP: Категории бесконечного уровня вложенности.
- Nginx редирект на другой сервис с сохранением URL спросил (а) Сергей
- Исполнитель пропал, почему такое случается и понять с кем работать? спросил (а) Артем
- Можно ли WordPress считать универсальным движком? спросил (а) Андрей
- Что такое самописный скрипт или CMS? спросил (а) Антон
- Как при поиске в linux используя grep, добавить исключения? спросил (а) Алексей
- Консольный скрипт(JavaScript) для автоматических заказов на OZON к записи
- Консольный скрипт(JavaScript) для автоматических заказов на OZON к записи
- Как создать Telegram-бота с авторизацией через сайт к записи
- PHP скрипт: каталог закладок на сайты к записи
- Валидация на PHP к записи
- Сколько зарабатывают в бизнесе на совместных покупках к записи
- Сколько зарабатывают в бизнесе на совместных покупках к записи
Archive
- +2024 (25)
- Ноябрь 2024 (10)
- Октябрь 2024 (8)
- Сентябрь 2024 (1)
- Август 2024 (5)
- Май 2024 (1)
- +2023 (27)
- Ноябрь 2023 (1)
- Октябрь 2023 (13)
- Сентябрь 2023 (10)
- Апрель 2023 (1)
- Март 2023 (1)
- Февраль 2023 (1)
- +2022 (21)
- Декабрь 2022 (11)
- Ноябрь 2022 (1)
- Май 2022 (2)
- Апрель 2022 (2)
- Март 2022 (3)
- Февраль 2022 (1)
- Январь 2022 (1)
- +2021 (17)
- Декабрь 2021 (5)
- Ноябрь 2021 (2)
- Июль 2021 (1)
- Июнь 2021 (2)
- Май 2021 (5)
- Апрель 2021 (1)
- Март 2021 (1)
- +2020 (20)
- Декабрь 2020 (6)
- Сентябрь 2020 (2)
- Август 2020 (1)
- Июль 2020 (2)
- Май 2020 (2)
- Апрель 2020 (2)
- Март 2020 (2)
- Февраль 2020 (1)
- Январь 2020 (2)
- +2019 (18)
- Декабрь 2019 (3)
- Ноябрь 2019 (2)
- Октябрь 2019 (2)
- Сентябрь 2019 (1)
- Август 2019 (2)
- Июль 2019 (1)
- Июнь 2019 (1)
- Апрель 2019 (2)
- Март 2019 (1)
- Февраль 2019 (3)
- +2018 (44)
- Декабрь 2018 (4)
- Ноябрь 2018 (7)
- Октябрь 2018 (8)
- Сентябрь 2018 (1)
- Август 2018 (4)
- Июль 2018 (5)
- Май 2018 (3)
- Апрель 2018 (7)
- Март 2018 (1)
- Февраль 2018 (2)
- Январь 2018 (2)
- +2017 (19)
- Декабрь 2017 (2)
- Ноябрь 2017 (1)
- Октябрь 2017 (1)
- Сентябрь 2017 (2)
- Июль 2017 (1)
- Июнь 2017 (1)
- Май 2017 (2)
- Апрель 2017 (3)
- Март 2017 (2)
- Февраль 2017 (1)
- Январь 2017 (3)
- +2016 (36)
- Декабрь 2016 (3)
- Ноябрь 2016 (3)
- Октябрь 2016 (2)
- Сентябрь 2016 (3)
- Август 2016 (7)
- Июнь 2016 (3)
- Май 2016 (3)
- Апрель 2016 (3)
- Февраль 2016 (1)
- Январь 2016 (8)
- +2015 (36)
- Ноябрь 2015 (5)
- Октябрь 2015 (4)
- Сентябрь 2015 (1)
- Август 2015 (8)
- Июнь 2015 (1)
- Май 2015 (4)
- Апрель 2015 (8)
- Март 2015 (3)
- Февраль 2015 (2)
- +2014 (26)
- Ноябрь 2014 (2)
- Октябрь 2014 (5)
- Сентябрь 2014 (6)
- Июль 2014 (1)
- Июнь 2014 (2)
- Май 2014 (3)
- Апрель 2014 (6)
- Февраль 2014 (1)
- +2013 (27)
- Декабрь 2013 (2)
- Ноябрь 2013 (1)
- Октябрь 2013 (1)
- Август 2013 (1)
- Июль 2013 (3)
- Июнь 2013 (10)
- Май 2013 (1)
- Апрель 2013 (2)
- Февраль 2013 (3)
- Январь 2013 (3)
- +2012 (41)
- Декабрь 2012 (2)
- Ноябрь 2012 (3)
- Октябрь 2012 (7)
- Сентябрь 2012 (2)
- Август 2012 (1)
- Июль 2012 (3)
- Июнь 2012 (2)
- Май 2012 (6)
- Апрель 2012 (2)
- Март 2012 (7)
- Февраль 2012 (5)
- Январь 2012 (1)
- +2011 (57)
- Декабрь 2011 (6)
- Ноябрь 2011 (2)
- Октябрь 2011 (3)
- Сентябрь 2011 (5)
- Август 2011 (4)
- Июль 2011 (3)
- Июнь 2011 (3)
- Май 2011 (3)
- Апрель 2011 (4)
- Март 2011 (10)
- Февраль 2011 (5)
- Январь 2011 (9)
- +2010 (43)
- Декабрь 2010 (7)
- Ноябрь 2010 (21)
- Октябрь 2010 (14)
- Сентябрь 2010 (1)
Свежие записи
- Интеграция платежной системы MoonPay на сайт по API 10.11.2024
- Парсер товаров с Taobao 08.11.2024
- Упаковка и минификация кода JavaScript онлайн 07.11.2024
- Как эффективно анализировать логи при DDOS атаке 07.11.2024
- Бот для автоматических заказов на OZON (плагин для Chrome) 07.11.2024