Пример технического задания. Как грамотно составить ТЗ для программиста. Основы взаимопонимания Как написать тех задание программистам

Техническое задание (ТЗ) или как правильно озадачить программиста!

В данной статье мы с Вами рассмотрим составление правильного технического задания для программиста работающего на финансовых рынках. Современные технологии позволяют полностью автоматизировать любую торговую стратегию и освободить трейдера от утомительных:

  • Наблюдений за графиком
  • Сложных вычислений
  • Психологических нагрузок
  • Эмоциональных переживаний
  • Ошибочных действий

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

Найти программиста это пол "беды", основная сложность заключается в том как объяснить программисту что вы хотите. Казалось бы ничего сложного нет, индикатор показывает BUY советник покупает, индикатор показывает SELL советник продает, но на самом деле для этих простых действий, программа должна выполнить массу предварительных шагов.

Вот только несколько простых:

  1. Проверить есть ли уже ордера. (Может на прошлом тике мы уже открыли ордер по сигналу)
  2. Проверить разрешено ли торговать. (Разрешена ли торговля по выбранной валюте)
  3. Проверить доступность интернет соединения.
  4. Проверить и рассчитать объём для торговли. (Хватит ли денег)
  5. Проверить и произвести вычисления из индикатора. (Получить сигнал)
  6. ......

Большинство этих показателей должен учесть именно заказчик, ведь программист не знает нужна ли проверка на разрешенные лоты или нет. Заказчик должен понимать что масса лишних проверок сильно замедляет работу программы, по этому заказчик должен максимально подробно описать и продумать торговую стратегию для автоматизации.

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

Техническое задание или (ТЗ) - это полное описание торговой стратегии с учетом точного состояния времени, цены, индикаторов или иных дополнительных математических объектов, а так же с точным указанием действий и поведения программы в реальных, тестовых условиях.

Техническое задание обязательно должно содержать три блока:

Блок открытия позиции - условия при которых программа открывает или устанавливает ордера в рынке. Сигналы индикатора с учетом по времени, номеру бара, состоянию бара, размеру бара и другие условия...

Блок удержания позиции в рынке - описываются все условия модификации ордеров, это может быть и трейлинг стоп, и стоп лосс, и тейк профит. Описывается все то, что программа должна делать с позицией которая находится в рынке.

Блок закрытия позиции - условия при которых позиция должна быть полностью или частично закрытой.

По мимо основных блоков могут быть еще дополнительные блоки:

  • Блок настроек программы.
  • Блок ММ (Мани менеджмента) в котором рассчитываются объемы для торговли (Лоты).
  • Информационный блок, задача которого выводить на экран текущую информацию.
  • Блок отправки сообщений на смартфон, почту или фтп сервер.
  • И другие....

Важно четкие условия в техническом задании!!!

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


Рассмотрим пример правильного технического задания:

Торговая стратегия на двух скользящих средних.

Открытие ордеров:

Быстрая скользящая средняя пересекает медленную и при появлении нового бара открывается ордер не зависимо от того есть уже ордера в рынке или нет. Открытому ордеру устанавливается Тейк Профит согласно настройкам и Стоп Лосс. Период бара зависит от графика на который установлен советник.

Модификация ордеров:

Стоп Лосс савиться ниже локального минимума для баев и выше локального максимума для селов за последние 24 бара. Для всех ордеров применяется трейлинг стоп согласно настройкам советника.

Закрытие ордеров:

По тейк профиту, по стоп лоссу, по обратному сигналу.

Блок расчета лота:

Если последний ордер закрылся с убытком то для нового ордера лот будет увеличен в два раза.

Если последний ордер закрылся с прибылью то для нового ордера лот будет сброшен до начального из настроек

Блок настроек советника:

  • По индикаторам - Период мувинга, Тип мувинга, Цены расчетов мувинга.
  • Тейк профит
  • Стоп лосс
  • Меджик номер
  • Проскальзывание

Пример плохого т/з:

нужен калькулятор стоимости кухни под заказ как у site.ru

В моем варианте:

Задание: разместить калькулятор для расчета стоимости кухни под заказ.

Формула расчета кухни s*(a+b)+c=x, где s - цена погонного метра, a и b - длина стен вдоль которых стоит кухня, с - стоимость доп. услуг.

Каждый параметр калькулятора в скрипте отметить комментарием.

  1. Если вы обращаетесь к программисту а в ответ - молчание,
  2. если никто не хочет браться за ваш сайт, хотя вы считаете, что в работе нет ничего сложного,
  3. если на простую задачу вам называют космическую цену на выполнение.

Значит у вас нет четкого и понятного технического задания (т/з).

Я помогу вам изложить все ваши сумбурные пожелания в т/з которое поймет любой исполнитель.

Пример плохого т/з:

нужен калькулятор стоимости кухни под заказ как у site.ru

В моем варианте:

Задание: разместить калькулятор для расчета стоимости кухни под заказ.

Формула расчета кухни s*(a+b)+c=x, где s - цена погонного метра, a и b - длина стен вдоль которых стоит кухня, с - стоимость доп. услуг.

Каждый параметр калькулятора в скрипте отметить комментарием.

В результате расчета пользователь видит 5 цен для кухонь из различных материалов, напротив каждой цены - кнопка "заказать".

При нажатии на кнопку "заказать" всплывает форма заказа с 1 полем "телефон" в формате +7 (...) ... -. . -. . и кнопка "отправить".

При нажатии на кнопку "отправить" проверяем корректно заполненный телефон, если телефон заполнен некорректно - делаем подсветку поля красным цветом, рядом добавляем сообщение "Проверьте телефон", если проверка прошла успешно, отправляется письмо на почту и показываем всплывающее окно с уведомлением "Спасибо, заказ принят!" , которое исчезает через 5 сек после появления.

Общие положения. Это нужно для того, чтобы исполнитель понимал, что он делает. В общих положениях могут быть прописаны характеристики оборудования, на котором должна выполняться работа, разъяснения спорных моментов, глоссарий и т.п.

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

Третий пункт - это требования, которые заказчик предъявляет к выполнению задания. Без этого пункта не обходится ни одно техническое задание. В нем должно быть четко прописано, что именно, и в какой срок хочет получить заказчик. Не нужно думать, что опуская сроки выполнения задания вы даете "свободу" исполнителю. Работать в условиях неизвестности очень сложно.

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

Видео по теме

Источники:

  • как написать тз

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

Вам понадобится

  • Вам будет нужно продумать тематику сайта, сервисы, которые он будет предоставлять и его функциональность.

Инструкция

Цели . Это очень важный раздел, посвятите его обдумыванию для того, чтобы четко сформулировать цели вашего ресурса. Например, если вы задумали создать интернет-магазин, объясните будущему исполнителю, с помощью чего вы собираетесь прибыль. Это поможет исполнителю предложить вам решения, которые смогут по максимуму претворить в жизнь поставленные вами цели.

Целевая аудитория. Опишите в этом разделе аудиторию, которую вы рассчитываете привлечь. Это может не только помочь с выбором сервисов, но и в разработке дизайна.

Функциональные требования. Требования принципиально можно разделить на функциональные и не функциональные/специальные. Функциональные требования лучше описать в виде примеров их использования.

Стандарты. Опишите стандарты возможностей использования, например стандарты серии WAI, удобства использования, например, ISO/TR 16982:2002, а также другие стандарты общего назначения.

Системные требования. Перечислите системные требования, какие операционные системы должны поддерживаться, требования к памяти. Также сюда могут войти требования по отказоустойчивости, например, возможность восстановления системы после сбоя.

Производительность. В данном разделе опишите, какое количество пользователей может одновременно работать на сайте, или в определенный отрезок времени. Также, стоит отметить, каким именно инструментом будет производиться определение производительности.

Безопасность. В данном разделе опишите необходимые методы шифрования данных, способы их передачи и хранения.

Пользовательский интерфейс. Опишите способ отображения элементов пользовательского интерфейса.

Видео по теме

Обратите внимание

Техническое задание обязательно должно быть детализированным. Между представлением (идеей) проекта и техзаданием очень большая разница.

Полезный совет

Перед началом работы с исполнителем оговорите терминологию – иначе, вы можете одним и тем же словом называть разные вещи. Подобная несогласованность может привести к путанице и повредить работе над проектом.

Источники:

  • E2E4, сайт

Ни одна работа или проект, выполняемые по заказу, не могут производиться без технического задания на данные конкретные разработки. В этом документе заказчик ставит перед исполнителем задачи по созданию или разработке продукта и указывает технические характеристики, которым должен соответствовать продукт, порядок и сроки выполнения данной работы. Любое техническое задание, независимо от предмета разработки, должно иметь общие компоненты или подразделы.

Инструкция

В структуру обязательно включите раздел «Общие положения». В них оговорите используемые в техническом задании и дайте их смысловую расшифровку – приведите глоссарий. Это позволит исполнителю и заказчику разговаривать на одном и исключит двоякое толкование основных понятий и определений.

Включите в техническое задание раздел «Цели », в котором четко сформулируйте цели и задачи проекта. Грамотно изложенные цели проекта помогут исполнителю понять, что именно требуется Заказчику и выбрать те пути и методы решения поставленной задачи, которые приведут к поиску самого оптимального решения.

Изложите функциональные к разработке. Здесь же можно отразить и специальные требования. Функциональные требования целесообразно изложить в виде вариантов использования или применения результатов данного проекта. В специальных требованиях укажите стандарты, которым должна соответствовать разработка, требования по отказоустойчивости, производительности или безопасности. Если речь идет о программном продукте, укажите системные требования, и требования к пользовательскому интерфейсу.

В разделе «Допущения и ограничения», который, обычно, заполняется исполнителем, оговариваются конечные параметры и характеристики, что позволяет не увеличивать стоимость работ по проектированию до бесконечности и довести его до логического завершения. В этом разделе перечислите функциональные возможности и задачи, которые выходят за рамки проекта, технические ограничения, зависимости от непредсказуемых обстоятельств и внешних условий, которые могут изменить принятые обязательства.

В разделе «Риски» отразите факторы, которые могут повлиять на сроки исполнения работы или ее стоимость.

Видео по теме

Если в рабочей деятельности вам часто приходится иметь дело со сторонними специалистами или поручать выполнение заданий другим сотрудникам, то для успеха дела вам необходимо научиться грамотно составлять техническое задание. Конечно, в каждой сфере могут быть свои особенности, но существуют общие рекомендации для составления технического задания.

Инструкция

Написание ТЗ – начало любого , ведь результат напрямую зависит от поставленных целей. Техническое может быть как основным документом, регламентирующим отношения между заказчиком и подрядчиком, так и приложением к . В любом случае, максимально подробно опишите, что вы хотите получить в результате выполнения работы. Это может быть цель, продукция, услуга, задача. Напишите, какие задачи решает или выполняет заказываемый продукт.

Чтобы представление о достигаемой цели заказчика совпадало с видением исполнителя, необходимо детально, буквально по пунктам, описать ход выполнения работ. Указывайте все, что считаете важным и необходимым для понимания процесса. Избегайте двусмысленностей и неоднозначных трактовок. Для обеих сторон перечень и ход работ должен быть ясным и понятным.

Пропишите исходные материалы, которые потребуются для выполнения работы, их формат, а также каким образом и в какие сроки эти «исходники» будут переданы исполнителю. Все эти данные необходимо прописать до подписания , чтобы проект «не буксовал» из-за нехватки нужных материалов со стороны заказчика.

Обозначьте четкие сроки выполнения заданий. Это необходимо для того, чтобы обе стороны могли планировать свою деятельность, согласно своим возможностям и ожиданиям второй стороны. При написании технического задания держите в уме некий запас времени, ведь в процессе выполнения сроки могут сдвинуться из-за дополнительных согласований или обсуждений.

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

Видео по теме

Обратите внимание

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

Полезный совет

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

Источники:

  • написание тз в 2018

Архитектурное проектирование – важный этап любого строительства, в том числе и ремонта жилой квартиры. Если вы хотите, чтобы работа архитектора максимально соответствовала ожидаемым и желаемым результатам, уделите время грамотному и вдумчивому составлению проектного задания, которое должно включать полный список требований к архитектору и его работе.

Инструкция

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

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

В любом случае, согласовать проект необходимо своевременно – в противном случае в будущем, при различных операциях с недвижимостью, вы столкнетесь с проблемой, вызванной незаконной перепланировкой, не согласованной с БТИ. Кроме того, при незаконной перепланировке вы рискуете нарушить определенные строительные нормы – в том числе, нормы пожарной безопасности.

В задание для будущего проекта должны быть включены все нюансы, которые вы хотите видеть в ремонте, а также важные параметры, касающиеся вашего помещения – жилая площадь, электроснабжение и размещение розеток и выключателей, система освещения, которую вы хотите получить, наличие телевидения и радио, стилизация интерьера, его концепция и желаемые элементы, цветовая гамма оформления квартиры, предпочтения по мебели и аксессуарам, и так далее. Чем больше пунктов будет указано в задании, и чем подробнее оно будет составлено, тем более полученный интерьер будет соответствовать вашим ожиданиям.

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

Инструкция

Сначала составьте полный список составляющих технического задания, и начинайте его заполнять – так будет проще свести воедино все важные пункты и не пропустить ни одного.

Начинается оформление ТЗ с наименования Заказчика. Внесите в этот пункт полную информацию о фирме.

Затем внесите полные данные о компании-Исполнителе.

Следующий пункт очень важен: укажите четкие сроки выполнения заказа - дату начала и дату его завершения.

Затем укажите, каков бюджет проекта, его смета.

После этого распишите техническую сторону сайта. Если у вас есть познания в программировании это сделать будет достаточно просто, если нет – распишите основные параметры, а об остальных посоветуйтесь со специалистами компании – Исполнителя. Затронем некоторые из них.

Цели сайта. От этого будет зависеть дальнейшая разработка структуры, сервисы и услуги сайта.

На какую аудиторию он рассчитан. В этом пункте опишите, какого рода посетителей вы хотите привлечь на свой ресурс – возрастную категорию, социальный статус, финансовый порог. Это повлияет на дизайн ресурса и его сервисы. Например, если вы открываете интернет-магазин, это поможет определиться с порядком расчетов за приобретенный товар.

Функциональные и специальные требования. Функциональные удобнее привести в виде примеров того, как их будут использовать, а специальные оформить списком – это могут быть возможности подписки, специальных рассылок и др.

Стандарты. Этот пункт лучше обсудить с исполнителем или продвинутым другом-программистом.

Системные требования. Сюда войдут сведения о том, к каким операционным системам ваш сайт должен быть дружественным, насколько велики будут ресурсы его памяти, учесть возможность быстрого восстановления после сбоев.

Производительность. Этот пункт о том, сколько посетителей одновременно сможет принять ваш сайт и каким образом их будут «пересчитывать».

Безопасность. Очень важный раздел. Опишите, как потребуется шифровать данные, как они будут передаваться и храниться.

Полезный совет

Техническое задание обязательно должно расписано очень подробно. Иначе это будет не ТЗ, а просто описание общей идеи.

Источники:

  • E2E4, сайт

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

Инструкция

Общие положенияВводный раздел, в котором определите основные положения, опишите используемую терминологию, он необходим для того, чтобы заказчик и не испытывали трудностей в понимании технического задания. Укажите информацию о заказчике и исполнителе, опишите документы, на основании которых принято решение о разработке программы.

ЦелиВ этом разделе укажите основные задачи, на выполнение которых направлен проект. Важно четко определить цели, которые реализует разрабатываемый продукт. Опишите предполагаемую аудиторию, которая будет работать с программой.

Функциональные требованияОсновной компонент технического задания. В этом разделе опишите функционал разрабатываемого программного обеспечения, варианты его использования, пользовательский интерфейс. Опишите структуру программы в функциональных требованиях.

Специальные требованияПеречислите все специальные требования и стандарты. Укажите технические требования: версию операционной системы, объем памяти и т.д. Требования по производительности, требования к защите информации от несанкционированного доступа, отказоустойчивости, надежности, эргономике опишите в этом разделе.

Видео по теме

Полезный совет

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

Будьте предельно внимательны при составлении технического задания - в дальнейшем это поможет решить спорные моменты с заказчиком.

Техническое задание, или ТЗ, – это документ, подробно описывающий все пожелания и требования заказчика к проекту. Составление его позволяет избежать недомолвок и разногласий в процессе взаимодействия клиента и исполнителя. Кроме того, нередко грамотно составленное ТЗ сокращает сроки, необходимые для выполнения задачи.

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

В правильное ТЗ должны входить следующие пункты:

  1. Сроки, все нюансы по смещению дедлайна.
  2. Формы и реквизиты оплаты.
  3. Возможные штрафы и информация о внесении правок после финального показа.
  4. Подробное описание функционала и его работы в вашем представлении.
  5. Техническая информация.
  6. Тестирование.
Первые 3 пункта – это золотой стандарт договоров с любым подрядчиком, мы же поговорим от 3 последних этапах ТЗ, актуальных именно в сфере IT- индустрии.

Подробное описание –> больше деталей –> лучшее понимание –> правильно реализованный проект.

Технические подробности

Немаловажен момент с описанием того, на чём будет работать новый модуль, который вы заказываете у программиста. В настоящее время предпочтение отдается готовым решениям, поэтому проблем интеграции в Битрикс, OpenCart, Wordpress или любую другую систему, обычно не возникает, так как исполнителю сообщают все данные конфигурации сборки.

Дело обстоит сложнее с самописными движками и системами, где подчас очень сложно разобраться, если создавший его кодер забыл должным образом закомментировать функции.

В этом случае может быть проще создавать все с нуля, с новым модулем или интегрировать на отдельной платформе, минимально связанной с основной системой.

Тестирование

Один из самых ответственных этапов, баги ведь никто не отменял. Чем лучше проведён данный этап, тем меньше проблем будет у вас и ваших пользователей (клиентов). Так же на этом этапе выявляются возможные уязвимости системы, которыми могут воспользоваться хакеры. Для крупных проектов нанимается отдельная команда тестировщиков, поскольку этот этап разработки является очень важным. В общем, готовый проект любого масштаба, требует проверки и перепроверки.

Подводя итог

Программирование – наука точная, и чем яснее изложена задача, тем легче её решить в рамках создания алгоритмов, поэтому от качества написанного вами технического задания, или составленного брифа, напрямую зависит качество конечного программного продукта.

Вступление
Компьютерные игры - относительно молодая отрасль, которая в перспективе сменит киноиндустрию, так-же как кинофильмы заменили театр. Создание игры - это коллективное творчество , во многом напоминающее создание кинофильма. Кроме того, создание компьютерных игр - одна из самых сложных IT задач, поскольку она включает все себя практические все IT области.

Все слышали про pre poduction , но мало кто знает как именно это происходит. И если про стадию разработки написано много, а про стадию издания - еще больше, то про стадию планирования известно очень мало. В лучшем случае вам посчастливится ознакомится с результатами планирования . А вот как были достигнуты эти результаты? - загадка во тьме .

Этот документ является результатом «разбора полетов» после написания игры Звездная арена для социальных сетей. В этом документе я попытался упорядочить список проблем и решений к которым я и Александр пришли в процессе совместной работы над игрою. Кроме того этот документ является частью большой работы по выстраиванию рабочего процесса создания компьютерных игр.

Я намеренно оставил за кадром другие документы: концепцию, экономическое обоснование и ТЗ для других исполнителей. Это позволило сфокусироваться на одной теме и осветить ее и только ее достаточно подробно.

Самое важное:
  1. Четкое понимание конечного результата. (Контроль качества.)
  2. Сроки исполнения.
Зачем нужна документация:
  1. Экономия времени на коммуникациях. (Один раз написать, вместо того чтобы 100 раз пересказывать, путаясь в показаниях.)
  2. Способ увидеть, как будет выглядеть готовый проект.
  3. Анализ и выявление проблем еще на стадии планирования. (Чем раньше будет выявленна архитектурная ошибка - тем дешевле ее исправить)
  4. Фиксирование принятых решений. (Точные данные, вместо разрозненных слухов разной степени свежести.)
  5. Планирование работ.
Какие бывают документы:
  1. Концепция («Про че игра?»)
  2. Спецификация (Что мы хотим получить?)
  3. Техническое задание (Как это устроено - именно о нем будет идти речь.)
  4. План работ (Как мы это будем делать.)
Кто участвует в обсуждении ТЗ:
Чем раньше будет получена обратная связь от заинтересованных специалистов - тем меньше будет сделано лишней работы.
  1. Геймдизайнер (Написание документации)
  2. Архитектор (Отслеживание полноты и подробности описания, декомпозиция.)
  3. Программист (Оценка объемов работ.)
Требования к оформлению документации:
Чем более неряшливо будет оформление - тем меньше людей вообще начнет это читать . Читатели проявляют невероятную изобретательность , чтобы избежать неприятной для них работы. Поэтому так важно прилагать усилия к тому чтобы чтение документации было легким и приятным настолько, насколько это вообще возможно.
  1. Форматирование. (Легко напечатать и приятно читать/держать в руках)
  2. Выделение ключевых фраз. (Для чтения документа по диагонали)
  3. Составление списков. (Вместо сплошного текста)
  4. Разбиение длинных списков по группам. (По три пункта в группе)
  5. Многократные повторения. (Избегать ссылок по документу)
  6. Дата, номер страницы, количество страниц, нумерация пунктов. (Для точных ссылок при обсуждении прочитанного)
  7. Оглавление, список документов, история изменений. (Для поиска по документации/версиям)
Требования к содержанию ТЗ
Нет четкого списка требований , которому должна удовлетворять документация. Поэтому разработка ТЗ приостанавливается задолго до приближения к ее полноте. В итоге следующий этап разработки начинается без ТЗ, в надежде, что ТЗ будет дописана по ходу, или даже по итогам разработки.
  1. Русский язык. (Никаких мемов, искаженных аглийских терминов, албанского языка и прочего мусора. Даже внутреннюю документацию читают очень многие.)
  2. Никаких общих слов типа:
    • все возможные варианты
    • карта придумывается компьютером
    • взаимодействие различных объектов
    • после всех действий и т.д.
  3. Все названия видов сущностей(классов) должны иметь:
    • русское название (для игрока)
    • английское (для кода)
    • краткое описание (расшифровка/подсказка/комментарий)
  4. Сущность должна иметь только одно название. (Чтобы “броня” не превращалась на другой странице в “армор” или “щит”).
  5. Предложения должны быть полными и понятными читателю без пристального изучения контекста. (Не надо подразумевать, что читатель сам догадается до того, что подразумевал автор)
  6. Все что можно измерить, должно быть измерено.
    • размеры картинки в пикселях и байтах
    • количество столбцов и клеток в таблице
    • количество символов в текстовом поле
    • количество оружия на уровень
    • время сессии и т.д.
Главные требования к результату работы программиста:
Эти важные требования подразумеваются, но никогда никем не озвучиваются.
  1. Гибкость системы к изменениям. (Динамические требования.)
  2. Автоматический сбор данных об ошибках. (Обратная связь.)
  3. Простота запуска и настройки заказчиком. (Демонстрация результата.)
Первый этап написания ТЗ:
Описание предметной области, ее формализация в понятных программистам терминах.
  1. База данных (метаданные)
    • список типов объектов
    • характеристики объектов
    • связь/зависимость между объектами
  2. Бизнес-процессы (полный игровой цикл)
    • список процессов (сценарии работы)
    • список функционала (что должен уметь)
    • список ожидаемых изменений (что вообще может быть)
Второй этап написания ТЗ:
Как должен выглядеть/работать продукт для всех типов пользователей (игроки и администраторы).
  1. Интерфейс (визуальная часть)
    • список экранов игры с названиями (или группы элементов)
    • список элементов на каждом экране с названиями и текстом подсказок
    • описание поведения элементов (подмигивание, подсказка, блокирование, всплывающие диалоги и т. д.)
  2. Админка (управление)
    • сервер (жизненные/системные показатели)
    • игровой контент(распродажи, квесты, монстры, вещи, магазины, дроп, локации и т.д.)
    • игровые данные(контент генерируемый игроками)
    • статистика и отчеты (какую статистику нужно собирать?)
Третий этап написания ТЗ:
Как мы собираемся это все делать.
  1. Исследование необходимых технологий
    • Список требований к каждой технологии
    • Описание тестов/демонстрации работы каждой технологии
    • Список будущих требований/возможных проблем (что дальше?)
  2. Список требований к разным видам контента(ресурсов) для игры (размеры картинки мечей, длинна названий квестов, разновидности спецэффектов, размеры видеороликов и т.д.).
  3. Список небходимых инструментов для работы с контентом (редактор карт, админка квестов,).
  4. Расстановка приоритетов по задачам.
  5. Требования к первой работающей сборке (что должен уметь первый прототип).
  6. Список остальных итераций разработки проекта с требованиями к их результатам. (Что нужно показать в конце каждого этапа, чтобы закончить его)
Сопровождение документации
  1. Большая часть того, что написано на первых этапах – устареет и будет нуждаться в переписке заново задолго до окончания планирования.
  2. Главный принцип первых этапов планирования: расставить список разделов и составить список вопросов по каждому разделу.
  3. Чем ниже детализация на начальных этапах – тем лучше. (количество типов оружия, вместо полного списка с названиями, количество квестов по уровням, вместо их подробного перечня и т.п.)
  4. Чем легче найти нужный пункт в документации и изменить его, не затрагивая остальное – тем лучше. Поэтому нужно избегать графических схем и сплошного текста из сложноподчиненных предложений. Оставьте графические презентации и эмоциональные описания для финальной отчетности.
  5. После каждого цикла планирования - проверять и тестировать полноту документации и равномерность уровня ее детализации. (Если в доме из 5 комнат описана только одна – нужно описать остальные четыре, или выкинуть подробное описание одной комнаты, чтобы все комнаты были описаны одинаково подробно .)
  6. Составить список неудобных вопросов . Темные пятна всегда есть, и их стараются обойти и замолчать, не осознавая этого.
  7. Предоставлять краткие инструкции конечным исполнителям . Конечные исполнители не должны сталкиваться с полной документацией, и мучительными поисками нужного упоминания по всему объему.
  8. Признак мастерства : каждый следующий уровень планирования уточняет, но не изменяет результаты описания более абстрактных уровней. Именно хороший навык перемещения по уровням абстрагирования/детализации позволяет перейти от припадочного описания деталей к планомерному перечислению сущностей.
Срезание углов
Любая технология будет упрощена до абсурда, чтобы уменьшить количество работы и расходов. Хлеб из химических дрожжей, вино из спирта, разработка без документации.
Многие считают что документация не нужна, если:
  1. Проект в 2-3 месяца.
  2. Команда из 2-3 человек.
  3. Ограниченный бюджет. (Он всегда ограничен)
  4. Нет требований к документации. (Никто не знает как надо делать)
  5. От нее нет никакой пользы. (Никогда не использовали документацию)
Однако следует помнить: разработка документации занимает 40% всех усилий. И определяет на 90% вероятность успешного завершения разработки проекта.
Первые шаги
Настоятельно рекомендуется новичкам выбирать в качестве первых проектов «клоны» классических игр. Пока нет успешного опыта такой игры - нет виденья всего цикла разработки продукта. А значит нет понимания того, как дойти до финиша .
Не стоит начинать разработку игры, не написав хотя бы двух полноценных ТЗ в качестве упражнения . Это может быть ТЗ по арканоиду. Но это обязательно должен быть ТЗ по которому разработчики смогут написать полноценный арканоид, даже если они никогда не видели этой игры прежде.