Примеры технического задания: Как составить техническое задание и получить то, что нужно — СКБ Контур

Содержание

Стандарты и шаблоны для ТЗ на разработку ПО / Хабр

Введение


Недавно ко мне обратились, чтобы я посоветовал стандарты для написания технического задания (ТЗ) на разработку автоматизированных систем (АС) и программного обеспечения (ПО). Вот думаю, сейчас зайду в Яндекс, найду подходящую статейку и отправлю её. Но не тут-то было! Одной статьи, где перечисляются стандарты для ТЗ, включая шаблоны и примеры готовых документов, я не нашел. Придется сделать такую статейку самому…

И так, основные стандарты, методологии и своды знаний, где упоминается ТЗ или SRS (Software (or System) Requirements Specification):

• ГОСТ 34
• ГОСТ 19
• IEEE STD 830-1998
• ISO/IEC/ IEEE 29148-2011
• RUP
• SWEBOK, BABOK и пр.

ГОСТ 34


ГОСТ 34.602-89 Техническое задание на создание автоматизированной системы регламентирует структуру ТЗ на создание именно СИСТЕМЫ, в которую входят ПО, аппаратное обеспечение, люди, которые работают с ПО, и автоматизируемые процессы.

Согласно ГОСТ 34 техническое задание должно включать следующие разделы:

1. Общие сведения
2. Назначение и цели создания (развития) системы
3. Характеристика объектов автоматизации
4. Требования к системе
5. Состав и содержание работ по созданию системы
6. Порядок контроля и приемки системы
7. Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие
8. Требования к документированию
9. Источники разработки

При разработке ТЗ для государственных проектов Заказчики, как правило, требуют соблюдение именно этого стандарта.

ГОСТ 19


“ГОСТ 19.ххх Единая система программной документации (ЕСПД)” — это комплекс государственных стандартов, устанавливающих взаимоувязанные правила разработки, оформления и обращения программ (или ПО) и программной документации. Т.е. этот стандарт относится к разработке именно ПО.
Согласно ГОСТ 19.201-78 Техническое задание, требования к содержанию и оформлению техническое задание должно включать следующие разделы:

1. Введение;
2. Основания для разработки;
3. Назначение разработки;
4. Требования к программе или программному изделию;
5. Требования к программной документации;
6. Технико-экономические показатели;
7. Стадии и этапы разработки;
8. Порядок контроля и приемки;
9. Приложения.

Естественно ГОСТ 34 (и 19) уже устарели, и я не люблю их использовать, но при правильном интерпретации стандартов, можно получить хорошее ТЗ, см. Заключение.

IEEE STD 830-1998


Достаточно хорошее определение стандарта 830-1998 — IEEE Recommended Practice for Software Requirements Specifications дано в самом его описании:

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

Согласно стандарту техническое задание должно включать следующие разделы:

1. Введение

  • 1. Назначение
  • 2. Область действия
  • 3. Определения, акронимы и сокращения
  • 4. Ссылки
  • 5. Краткий обзор

2. Общее описание
  • 1. Взаимодействие продукта (с другими продуктами и компонентами)
  • 2. Функции продукта (краткое описание)
  • 3. Характеристики пользователя
  • 4. Ограничения
  • 5. Допущения и зависимости

3. Детальные требования (могут быть организованы по разному, н-р, так)
  • 1. Требования к внешним интерфейсам
    • 1. Интерфейсы пользователя
    • 2. Интерфейсы аппаратного обеспечения
    • 3. Интерфейсы программного обеспечения
    • 4. Интерфейсы взаимодействия
  • 2. Функциональные требования
  • 3. Требования к производительности
  • 4. Проектные ограничения (и ссылки на стандарты)
  • 5. Нефункциональные требования (надежность, доступность, безопасность и пр.)
  • 6. Другие требования

4. Приложения
5. Алфавитный указатель

На самом деле новичку достаточно трудно понять, что должно содержаться в данных разделах по вышеприведенной структуре (как и в случае с ГОСТом), поэтому нужно читать сам стандарт, который легко найти в Интернете. Как и примеры, правда, на англ. языке.

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

ISO/IEC/ IEEE 29148-2011


Стандарт IEEE 29148-2011 обеспечивает единую трактовку процессов и продуктов, используемых при разработке требований на протяжении всего жизненного цикла систем и программного обеспечения. Он приходит на смену стандартов IEEE 830-1998, IEEE 1233-1998, IEEE 1362-1998.

Данный стандарт содержит два шаблона спецификации требований:

• System requirements specification (SyRS)
• Software requirements specification (SRS)

System Requirements Specification (SyRS) определяет технические требования для выбранной системы и удобства взаимодействия предполагаемой системы и человека. Она определяет высокоуровневые требования к системе с точки зрения предметной области, а также информацию об общей цели системы, ее целевой среде и ограничениях, допущениях и нефункциональных требованиях. Она может включать в себя концептуальные модели, спроектированные для иллюстрации содержания системы, сценариев использования, основных сущностей предметной области, данных, информаций и рабочих процессов. Из определения следует, что это аналог ТЗ, описанного в ГОСТ 34.

SyRS может содержать следующие разделы:

1. Введение

  • 1. Назначение системы
  • 2. Содержание системы (границы системы)
  • 3. Обзор системы
    • 1. Содержание системы
    • 2. Функции системы
    • 3. Характеристики пользователей
  • 4. Термины и определения

2. Ссылки

3. Системные требования

  • 1. Функциональные требования
  • 2. Требования к юзабилити
  • 3. Требования к производительности
  • 4. Интерфейс (взаимодействие) системы
  • 5. Операции системы
  • 6. Состояния системы
  • 7. Физические характеристики
  • 8. Условия окружения
  • 9. Требования к безопасности
  • 10. Управление информацией
  • 11. Политики и правила
  • 12. Требования к обслуживанию системы на протяжении ее жизненного цикла
  • 13. Требования к упаковке, погрузке-разгрузки, доставке и транспортировке

4. Тестирование и проверка (список необходимых приемочных тестов, которые отражают зеркально раздел 3)

5. Приложения

  • 1. Предположения и зависимости
  • 2. Аббревиатуры и сокращений

SRS это спецификация требований для определенного программного изделия, программы или набора программ (продукт), которые выполняют определенные функции в конкретном окружении. Из определения следует, что это аналог ТЗ, описанного в ГОСТ 19, а по структуре очень напоминает SRS из стандарта IEEE 830.

SRS может содержать следующие разделы:

1. Введение

  • 1. Назначение
  • 2. Содержание (границы)
    • 3. Обзор продукта
    • 1. Взаимодействие продукта (с другими продуктами и компонентами)
    • 2. Функции продукта (краткое описание)
    • 3. Характеристики пользователей
    • 4. Ограничения
  • 4. Термины и определения

2. Ссылки

3. Детальные требования

  • 1. Требования к внешним интерфейсам
  • 2. Функции продукта
  • 3. Требования к юзабилити
  • 4. Требования к производительности
  • 5. Требования к логической структуре БД
  • 6. Ограничения проектирования
  • 7. Системные свойства ПО
  • 8. Дополнительные требования

4. Тестирование и проверка (список необходимых приемочных тестов, которые отражают зеркально раздел 3)

5. Приложения

  • 1. Предположения и зависимости
  • 2. Аббревиатуры и сокращений

Данный стандарт достаточно сложно найти в открытом виде в Интернете, но постараться можно, и опять же только на англ.

RUP


Структура SRS в RUP(Rational Unified Process) представляет собой документ, в котором необходимо описать артефакты, полученные в процессе специфицирования требований.

Шаблон SRS в RUP адаптирован из стандарта IEEE STD 830 и содержит два варианта:

• Традиционный шаблон SRS со структурированными функциональными требованиями по функциям Системы, максимально похож на 830 стандарт.

• Упрощенный шаблон SRS со структурированными функциональными требованиями в виде вариантов использования (use cases):

1. Введение.

  • 1. Цель.
  • 2. Краткая сводка возможностей.
  • 3. Определения, акронимы и сокращения.
  • 4. Ссылки.
  • 5. Краткое содержание.

2. Обзор системы
  • 1. Обзор вариантов использований.
  • 2. Предположения и зависимости.

3. Детальные требований
  • 1. Описание вариантов использования.
  • 2. Дополнительные требования.
  • 3. Другие функциональные требования.
  • 4. Нефункциональные требования.

4. Вспомогательная информация.

Естественно, что в Интернете можно найти шаблон и примеры SRS от RUP.

SWEBOK, BABOK и пр.


SWEBOK, BABOK, а также множество других методологий разработки ПО и сводов знаний при упоминании SRS ссылаются на вышеупомянутые зарубежные стандарты.

Также стоит сказать, что для описания требований к АС и ПО используются и другие виды документов, кот каждый называет по разному: FRD (Functional Requirements Document), RD (Requirements Document), ПЗ (Постановка задачи или Пояснительная записка) и пр. Но это все производные документы от вышеупомянутых стандартов, не имеющих отраслевой стандартизации, хотя, в некоторых случаях, уже и с устоявшейся терминологией.

А как же Agile?


Я скажу одной фразой из Манифеста Agile: “Working software over comprehensive documentation”. Поэтому в Agile документации отводится совсем мало места.

Мое же убеждение, что разработать АС без ТЗ можно (используя техники/рекомендации Agile), но вот в дальнейшем сопровождать — невозможно. Поэтому сразу задумайтесь, как вы будете писать ТЗ и другую документацию, при разработке ПО по Agile.

Заключение


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

Но главное, чтобы ТЗ не превращалось в ХЗ, а, именно, содержание (наполнение) в ТЗ — самое главное! Но это уже совсем другая история… Если есть интерес, то можно пройти он-лайн курс Разработка и управление требованиями к ПО.

Ну а кто дочитал до конца — тому бонус: пример ТЗ, который я писал много лет назад (сейчас уже просто аналитиком давно не работаю, да и другие более удачные примеры запрещает открывать на всеобщее обозрение NDA).

Также рекомендую ознакомиться со следующими материалами:

Техническое задание — что это и как составить + примеры ТЗ на сайт и ПО

Техническое задание важно и исполнителю, и клиенту. Исполнителю оно помогает лучше понять, что хочет заказчик, застраховаться от внезапных «хотелок» со стороны клиента, ускорить работу по выполнению задачи. Клиенту — рассказать точно о том, что он хочет, упростить контроль качества, получить точную стоимость услуги. Мы расскажем о том, как правильно составить ТЗ и что с ним потом делать.

Читайте также: Как сделать бриф

Получайте до 18% от расходов на контекст и таргет!

Рекомендуем: Click.ru – маркетплейс рекламных платформ:

  • Более 2000 рекламных агентств и фрилансеров уже работают с сервисом.
  • Подключиться можно самому за 1 день.
  • Зарабатывайте с первого потраченного рубля, без начальных ограничений, без входного барьера.
  • Выплаты на WebMoney, на карту физическому лицу, реинвестирование в рекламу.
  • У вас остаются прямые доступы в рекламные кабинеты, рай для бухгалтерии по документообороту и оплатам.
Попробовать бесплатно >> Реклама

Что такое техническое задание

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

ТЗ используют все разработчики сайтов. Верстальщикам, программистам, дизайнерам оно помогает лучше понять требования клиента и сделать ресурс, соответствующий его ожиданиям. Кроме того, ТЗ используют во всех других сферах, например — в:

  • разработке приложений;
  • проектировании дома;
  • написании текстов и другие.

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

Это интересно: Как составить коммерческое предложение

Как составить техническое задание: структура ТЗ на сайт

Прежде чем приступать к работе:

  • Определитесь, кто будет составлять техническое задание
  • Разъясните термины
  • Откажитесь от субъективных терминов

На первый взгляд кажется, что ТЗ на сайт должен составлять клиент, потому что он заказывает ресурс и выдвигает требования к нему. На самом деле в процессе должны участвовать оба: клиент озвучивает требования, а исполнитель записывает их конкретно, точно и понятно. Например, клиент говорит, что хочет сайт, адаптированный под всех пользователей, а разработчик прописывает требования к адаптивности под 4 доступных размера — ПК, ноутбуки, планшеты, смартфоны.

Разъяснение терминов — очень важный момент. Все узкоспециализированные термины желательно объяснить в самом начале — клиенты не всегда знают, что такое подвал (футер), CMS, рыба. Чем проще и понятнее будут объяснения, тем понятнее будет ТЗ для обеих сторон.

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

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

Опишите сайт

Расскажите, какой тип сайта нужен, кем он будет использоваться, для чего он вообще создается. Например, напишите, что вам нужен интернет-магазин, лендинг для продажи товара или сайт-визитка с 10 страницами. Укажите ориентировочное количество страниц, если не знаете точного числа.

Если у проекта есть конкретная целевая аудитория, опишите ее. Это поможет создать ресурс, который понравится клиентам — например, использовать подходящие выражения в статьях или дизайн, который нравится молодежи или представителям старшего поколения.

Расскажите о структуре

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

  • Схемой
  • Таблицей
  • Списком

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

Пример простейшей структуры в виде блок-схемы

Читайте также: Как составить продающую структуру лендинга

Опишите, что будет на каждой из страниц

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

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

Пример прототипа главной страницы сайта: все просто, удобно, понятно

Выдвините требования к дизайну

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

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

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

Опишите требования к инструментам, коду, хостингу, домену

Это нужно, чтобы заранее знать, с какими инструментами можно работать, а с какими — нет. Опишите отдельным блоком:

  • На какой CMS будет разработан сайт — Вордпресс, Джумла, Модэкс и так далее
  • Какой язык программирования можно использовать — PHP, JavaScript, HTML, другие
  • На каком хостинге и в какой доменной зоне должен располагаться сайт, какое доменное имя можно использовать
  • Какую программную платформу можно использовать — .NET, OpenGL, DirectX
  • И так далее

Если клиент не понимает ничего в используемых терминах — объясните, чем отличается Вордпресс от Модэкса, PHP от HTML, домен в зоне .ru от домена в зоне .com. Вместе составьте требования так, чтобы они устроили клиента.

Это интересно: 10 лучших хостингов для сайта

Уточните требования к работе сайта

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

  • Приемлемую для вас скорость загрузки сайтов или стандартное значение — 1–5 секунд
  • Кроссбраузерность — распишите, в каких браузерах сайт должен открываться
  • Адаптивность — укажите размеры экранов, под которые должен подстраиваться дизайн, и используемые устройства
  • Устойчивость к нагрузкам — сколько человек должно находиться на сайте одновременно, чтобы он не «лег»
  • Устойчивость к хакерским и dDos-атакам: сайт должен выдержать небольшие атаки

Распишите сценарии работы сайта

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

Пример простейшего сценария работы сайта

Уточните, кто занимается контентом.

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

  • Уникальности текста — не меньше 95% по Адвего, Текст.ру, Контент.Вотч
  • Тошноте (заспамленности)— не более 10% по Адвего иди 65% по Текст.ру
  • Баллам по Главреду — не менее 6,5 или 7 баллов

Конечно, разные сервисы — не панацея, но они минимизируют риск того, что он будет «водянистым» или переспамленным. Кроме того, так появляются точные критерии оценки качества текстов.

Укажите сроки

Об этом часто забывают. В большинстве технических заданий должны быть прописаны сроки, иначе разработка может затянуться на несколько месяцев, полугодий, лет. Не используйте некорректные формулировки — например, «через месяц». Пишите точную дату: 1 декабря 2018 года, например.

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

Запомните: в каждом ТЗ должны быть несколько основных блоков:

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

Пример составления ТЗ на программное обеспечение

Нужно создать ПО. Технические требования — ниже.

Описание: программа для поиска статей по ключевому слову на всех авторитетных сайтах, адреса авторитетных сайтов прописывать нужно вручную.

Что должно делать ПО: после ввода ключевого слова находит статьи на сайтах, которые внесены заранее в качестве авторитетных источников, выводит список совпадений в таком формате:

  • Линк
  • Название статьи
  • Лид-абзац

Если больше 10 совпадений, нужно разделить на страницы — по 10 на каждой.

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

Сроки: до 15.09.2018.

Естественно, это ТЗ можно улучшить — мы предоставили его в качестве примера. А как вы считаете, как можно доработать техническое задание, чтобы оно стало еще понятнее, проще, удобнее?

Как написать функциональное техническое задание?

Всё просто: нормальным русским языком описывайте нужные функции в формате сценария использования.

Сценарий проще всего описывать в по схеме: [роль пользователя] может [действие], [описание целей пользователя, а также необходимых шагов и вариантов развития событий]. Оптимально — разбивать описание больших компонентов на маленькие составляющие.

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

Например, вполне адекватные функциональные требования в формате сценария:

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

Субъективные требования — это все требования с оценочными прилагательными типа удобный, красивый, простой и тому подобными. Они некорректны для ТЗ, так как их никак нельзя проверить, а значит принять работу, основываясь на таких критериях просто не получится:

Форма входа в систему должна быть удобной и понятной для пользователя.

Непонятно изложенные требования — это еще один пример того, что не должно попадать в ТЗ. Такие требования формулируются так, что нельзя без должной подготовки понять о чём вообще идёт речь, например:

Пользователь должен иметь возможность реструктуризировать компоненты своего аккаунта путём декомпозиции отдельных сущностей на произвольно задаваемое число взаимно зависимых компонентов.

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

Примеры корректных требований ТЗ

Еще примеры нормальных функциональных требований:

Гость на каждой странице может войти на сайт. По нажатию кнопки «войти» открывается форма для ввода логина и пароля. При корректном вводе логина и пароля пользователь входит на сайт и ему выводится уведомление об этом, дальше он работает с сайтом как аутентифицированный пользователь и ему становятся доступны дополнительные возможности. При некорректном вводе логина и/или пароля отображается уведомление о произошедшем и пользователю предлагается повторно заполнить форму
Зарегистрированный пользователь при посещении сайта должен видеть персональное приветствие «Здравствуйте, [Имя] [Отчество]!» и ссылку для выхода с сайта. При нажатии на своё имя пользователь попадает в личный кабинет, при нажатии на ссылку «выход» — выходит из системы и дальше работает с сайтом как гость.
Администратор может удалить страницу сайта. В списке страниц напротив каждой страницы есть кнопка для удалени, по нажатию на эту кнопку выводится диалог подтверждения удаления. При подтверждении страница удаляется, а при отказе — удаления не происходит.

Как правило, функциональные требования развиваются: уточняются и конкретизируются как в процессе согласования, так и в процессе разработки.

Например, описание процедуры регистрации в конечном итоге может выглядеть так:

Гость должен иметь возможность зарегистрироваться на сайте. Для этого он может с любой страницы сайта по ссылке «зарегистрироваться» перейти на страницу с формой регистрации.
Форма регистрации содержит поля: Фамилия, Имя, Адрес электронной почты, Пароль и его Подтверждение, а также флаг согласия с публичной офертой. Все поля являются обязательными для заполнения. Адрес электронной почты должен быть корректным адресом e-mail, Пароль должен быть не короче 6 символов и содержать буквы и цифры, Пароль и Подтверждение должны совпадать, флаг согласия с публичной офертой должен быть установлен. При некорректном заполнении формы выводится список ошибок при заполнении формы, а поля с ошибками подсвечиваются.
Корректно заполнив и отправив форму регистрации гость создаёт новую учётную запись, а ему на указанный адрес электронной почты отправляется письмо с уведомлением о регистрации и со ссылкой для активаци аккаунта. Для активации аккаункта пользователь должен перейти по полученной ссылке, после чего он будет автоматически аутентифицирован (войдёт на сайт).
Если пользователь не получил ссылку для активации, то он может запросить её повторную отправку, просто указав свой адрес электронной почты, в этом случае ему должно быть также выведено сообщение с рекомендацией поискать письмо в спаме.
Вход при помощи формы входа до активации учётной записи невозможен, в случае попытки входа или регистрации с реквизитами доступа неактивной учетной записи пользователю должно быть выведено уведомление о том, что учетная запись неактивна, а также предложение повторно отправить письмо со ссылкой для активации аккаунта.
Если пользователь не активирует свою учётную запись в течение одной недели, то она будет удалена из базы данных.
В случае перехода по ссылке «зарегистрироваться» уже зарегистрированным и аутентифицированным пользователем форма регистрации не должна показываться, а должна быть осуществлена переадресация на страницу профиля текущего пользователя с уведомлением: «Вы уже зарегистрированы и уже вошли на сайт».

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

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

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

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

Пример технического задания BUSINESS RULES для разработки на laravel

Проведение занятий.

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

TR-2. Каждому академическому часу соответствует урок, который описывается

  • дата проведения урока
  • номер урока по порядку
  • тема урока.
  • детальное описание что будет изучаться

TR-3. Уроку также соответствует домашнее задание, которое вносится в ходе учебного процесса. Это текстовое описание, которое может содержать: текст, списки задач из учебника, прикрепленные файлы, URL

TR-4. Домашнее задание содержит задание, которое должно быть подготовлено к этому уроку.

TR-5. Урок может соответствовать контрольной работе. Контрольные работы в расписании должны выделяться дополнительными признаками.

TR-6. Для класcов с одинаковой часовой нагрузкой, когда соответствует базовая программа и дополнительный пакет, учебный план может быть одинаковый.

TR-7. В ходе учебного года, темы и содержание фактически проводимых уроков могут не соответствовать запланированным.

TR-8. В классном журнале преподаватель фиксирует читаемые предметы, учебный план, оценки, домашнее задание, посещаемость.

TR-9. Преподаватель отмечает посещаемость по каждому предмету в классном журнале. Если ученик отсутствует, это соответствует отметке Н

TR-10. Оценки ставятся числами от 1 до 12.

TR-11. В 1-2 классах никакие оценки или «зачтено» «не зачтено» не ставится. Отмечается только посещаемость.

TR-12. Оценки ставятся в 3-11 классах

TR-13.Есть исключения для предметов. Не ставятся оценки для учеников начальной школы (1-4 классы) по предметам:

  • музыка
  • изобразительное искусство
  • физкультура
  • трудовое обучение
По этим предметам ставится итоговая за семестры, итоговая за год в виде «зараховано», «не зараховано». Для учеников 5-11 классов идет стандартное оценивание по 12-ти бальной системе.

TR-14. Есть исключения для учеников 5-11 классов. Не ставятся оценки для учеников, которые имеют группу по физкультуре «специальная». Для таких учеников в виде «зараховано», «не зараховано». Ученик соответствует одной из групп: основная, подготовительная, специальная.

TR-15. После добавления оценки необходимо фиксировать дату и время когда оценка была внесена в классный журнал.

TR-16. После фиксации оценки, корректировка не допускается. Редактировать может только пользователь с ролью Директор.

TR-17. Добавление оценки в журнал за прошедшую дату НЕ возможно.

TR-18. За урок одному ученику может быть поставлена только одна оценка

TR-19. В журнале могут быть оценки, не привязанные к конкретной дате и уроку, это:

  • Тематическая оценка
  • Оценка за тетрадь
  • Итоговая оценка за семестр
  • Предварительная оценка за год
  • Скорректированная оценка
  • Итоговая оценка за год
TR-20. При расчете средних оценок округление в пользу ученика.

TR-21. Оценки за контрольные работы имеют такой же вес как и остальные.

TR-22. Тематическая оценка — средняя оценка за изученную тему. Рассчитывается автоматически. Округление в пользу ученика. Суммируются все оценки за уроки, проведенные от предыдущей тематической оценки, включая оценки за тетрадь. если предыдущей тематической оценки нет, то с начала учебного года.

TR-23. Тетрадь — оценивается преподавателем. Данный вид оценивания присутствует только у предметов украинский язык, украинская литература, зарубежная литература.

TR-24. Итоговая за семестр — средняя оценка, учитываются только тематические оценки. Рассчитывается автоматически. Округление в пользу ученика.

TR-25. Предварительная за год — средняя оценка, учитываются только оценки за семестр. Рассчитывается автоматически.

TR-26. Скорректированная оценка — может быть поставлена по итогам возражений по предварительной за год.

TR-27. Итоговая за год — средняя оценка, учитываются оценки за семестр и скорректированная оценка.

TR-28. В конце каждого месяца для ученика готовится «Отчет про успеваемость» — краткая характеристика по каждому предмету. Включает в себя список оценок и комментарий по каждому предмету. Включает в себя раздел «персональное развитие ученика».

TR-29. В 1-4 классов «Отчет про успеваемость» — краткую характеристику каждому ученику по каждому предмету пишет закрепленный за классом учитель. По предметам читаемым другими преподавателями характеристики пишут соответствующие преподаватели. пример отчета

TR-30. Для 5-11 классов «Отчет про успеваемость» — пишут учителя предметники. «персональное развитие ученика» — пишет куратор пример отчета

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

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

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

Что собой представляет техзадание

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

Для чего оно необходимо

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

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

Кто должен заниматься составлением ТЗ, написанием технического задания для сайта

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

Так, заказчик в первую очередь пытается сделать следующее:

  • определить, каким он хочет видеть готовый веб-ресурс;
  • зафиксировать размер предстоящих затрат;
  • установить контроль над выполнением задачи.

Разработчик стремится:

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

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

Бриф на разработку ресурса

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

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

Если какие-либо пункты в анкетировании окажутся непонятными — смело спрашивайте и уточняйте. Только так удастся избежать недопонимания. Лучше лишний раз переспросить, заострить внимание на деталях, чем впоследствии получить разочарование.

Четкость формулировок

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

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

Структура техзадачи

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

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

Из чего состоит техническое задание на разработку сайта: образец

Ниже можно рассмотреть пример правильно составленного техзадания:

Пункты ТЗО чем писатьВарианты заполнения
БИЗНЕС-ТРЕБОВАНИЯ
Сведения об организацииНаименование, изделия, услуги, вид деятельности, конкуренты, достижения, дата регистрации.Компания «Молтехникс». Производство оборудования по переработке молока. Основана в 2012 г. Обладатель премии «Товар года». Конкуренцию составляют: «Млечный путь», «Ферм Строй».
Целевая аудиторияКак можно подробнее опишите контингент, который планируете видеть на страницах.

Укажите их предполагаемое место жительства, уровень дохода, возрастные характеристики.

Индивидуальные предприниматели, выпускающие молочную продукцию. Фермерские хозяйства.

Мужчины и женщины в возрасте от 30 до 55 лет.

Занимаются сельскохозяйственной деятельностью, проживают на территории Российской Федерации.

Имеют средний доход и выше.

Цели веб-ресурсаЧто Вы хотите получить от посетителей своей страницы?

Оформить заказ, связаться с сотрудником компании по внутренней связи, подписаться на рассылку.

Когда цель не одна, лучше обозначить все сразу.

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

  1. Пользователи должны активировать подписку.
  2. Заказывать наши товары.
  3. Оставлять отклики об использовании продукции.
Анализ имеющегося сайтаПредоставьте на него ссылку и расскажите о плюсах и минусах по вашему мнению.Имеющиеся сведения на ресурсе нельзя обновлять или редактировать. Интерфейс слишком сложен для пользователей.
НЕФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ
Начальная структураЧто из основного обязано быть в наличии.Домашняя (сведения об организации, место деятельности, проводимые акции).

Каталог; Блог; Новости; Контакты.

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

Сбоку список подразделов каталога, форма для подписки.

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

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

Прилагающиеся наработкиСсылки на образцовые ресурсы, фото, буклеты, журналы.Выделено архивом.
Разрешение и изображениеОбозначьте, с какого устройства должны просматриваться страницы.Мониторы ПК от 19 до 27 дюймов; Ноутбуки от 15,6 до 17,3; Смартфоны от 3,5 до 6; Планшеты от 7 до 12.
Целесообразность мобильной версииНужна.
Приблизительные перечень модулейУкажите, что хотите видеть на своей странице. Фильтры каталога, возможность сделать онлайн-заказ и т.д.Распределение товарных позиций по стоимости, в алфавитном порядке.

Консультация предполагаемым покупателям.

АдминистрированиеОпишите, какие корректировки Вы должны вносить самостоятельно. Выясните как именно это делается.Доступны все действия с товарными карточками, возможность публикации новостей, акционных предложений.
Подключение платежных системУкажите предпочтительные.Необходима консультация разработчика.
Возможности интеграцииИнтегрирование с Мегапланом и 1С.
ИНТЕРНЕТ-РЕСУРСЫ
ОбзорОптимально будет привести примеры в виде ссылок, что нравится, а что категорически нет.adme.ru— меню

tobiafran.com — анимация загрузки

anotherstate.co — шрифты.

ДОПОЛНЕНИЯ
Вопросы к исполнителюЕсли что-то непонятно, сразу спрашивайте в письменной форме. Так удастся избежать недопонимания.
ПожеланияВ эту графу следует внести все, что не было затронуто в предыдущих позициях.

 

Предпроектное проектирование

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

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

Примерное составление (структура)

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

«Домашняя» (главная) страница

  • Отдел «Меню» с основными разделами и всплывающим перечнем подразделов.
  • Логотип и рекламный лозунг (слоган).
  • «Главная».
  • «Проекты».
  • «Каталог изделий» с выдаваемым списком составляющих.
  • «Деятельность».
  • «Об организации».
  • «Клиентам».
  • «Информация».
  • «Контактные данные».
  • Ссылка на скачивание в формате pdf.
  • Телефонный номер компании.
  • Клавиша «Заказ звонка».
  • Отдел «Слайдер» с фото в ширину дисплея и кнопкой обратной связи.
  • Блок «Преимущества».
  • «Товары» с обязательным описанием плюсов.
  • «Организация в цифрах» с указанием достижений, продаваемых объемов и т.д.
  • «Видеоруководства».
  • «Подвал».
  • Контактная информация.
  • Ссылки на соцсети компании.

Лайфхаки как написать, составить тз для сайта

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

Где взять образцовые варианты

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

Параллельно стоит сформировать собственные подборки с понравившимися референсами. Будет очень удобно пользоваться ими в перспективе.

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

Как определить цветовую гамму

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

Не поленитесь изучить позиции восприятия людьми различных оттенков в рекламе.

Как подобрать шрифты

Немаловажный аспект. От их качества (читаемости) и соответствия общему дизайну во многом зависит понимание информации пользователями. Обязательно пропишите в техзадании конкретные пожелания. Коллекцию Word можете смело не рассматривать. Все, что в ней имеется, уже многократно использовано до Вас. Лучше обратите внимание на сетевую библиотеку allfont.ru.

Как писать шаблон ТЗ, составлять техзадание для сайта правильно: основные ошибки

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

Не указано отведенное время

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

Потеряны данные доступа

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

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

Отсутствие наглядности

Проблема обычно заключается в разнице понимания. Клиент вкладывает в определенные слова собственный смысл, а исполнитель представляет сказанное им совершенно иначе. Продемонстрировать это можно на примере техзадания на создание сайта, в котором заказчик попросил изобразить абстракцию. Для одного она выступает в роли полупрозрачных бесформенных фигур, другому представляется в виде радужных волн или кругов (и так до бесконечности). У каждого свое видение — так устроен наш мир. Гораздо правильнее сразу предоставить веб-специалисту образцы конкретно вашей абстрактной мысли. От того, насколько верно он ее увидит, зависит конечный результат.

Качественные прилагательные

При составлении техзадачи старайтесь избегать использования слов, обозначающих неточные характеристики предметов. Например: красивый, умный, сильный, современный и т.д. Помните — только конкретика: «На два оттенка темнее», «Укоротить на 4 см», «Округлые края у кнопки». Опять же, у каждого человека собственное представление о красоте, силе, современности и иных сравнительных параметрах.

«На усмотрение исполнителя» 

Особо опасный момент, о котором нельзя забывать. Не оставляйте незаполненных пунктов в ТЗ, не стоит полагаться на телепатические способности разработчика. Если ему не предоставлены четкие требования, а дана возможность сделать работу по своему разумению — приготовьтесь ловить результат, в корне отличный от того, на что вы рассчитывали. Даже когда веб-специалист выполнит все идеально с технической стороны, итог может не понравится просто субъективно.

Заключение

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

Почему мы пишем ТЗ сами

Первый способ исправить ТЗ

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

С ответом на вопрос: «Для чего?» могут помочь в отделе продаж (и / или маркетинга тоже) заказчика. Скорее всего, там наблюдают за конкурентами уже сейчас и совершенно трезво сравнивают себя с ними, слушают возражения клиентов и могут выявить то самое свойство изделия, которое надо прописать как стержень ТЗ, сделать основной задачей проекта — добавить или усилить именно это свойство нового продукта.

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

С этой картинкой уже можно идти к электронщикам и спрашивать: «Вот такая штука нужна, когда сделаете?» Электронщики вам крылья, конечно, подрежут, но это уже рабочий процесс…

Второй способ

Когда не подходит способ №1, т.е. продавцы не могут сформулировать, что нужно, идите сразу к промышленным дизайнерам. Задача для них получится и сложнее, и проще одновременно. Они должны будут собрать «хотелки» со всех слоёв проекта, а из всего, что соберётся, сделать задачу для себя.

Упоминая «всех», я имею в виду действительно всех — от уборщицы и бухгалтерши до Василь Степановича, который будет коробки грузить на производстве. Промышленный дизайнер должен стать коммуникатором между всеми вами (и руководство — это тоже еще одна точка постановки задач и ограничений) и клиентом вашего продукта. Я не могу судить, должен это быть штатный дизайнер или наемный работник со стороны. Был с обеих сторон баррикад и вижу и там, и там свои плюсы/минусы.

Как составить Техническое задание при заказе индикатора

Содержание

Как алготрейдинг облегчает жизнь трейдера?


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

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

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

Торговый робот работает 24 часа в сутки и не знает ни усталости, ни сомнений. Но написать его может не каждый. В этом случае остается только один вариант — заказать его у программиста-алготрейдера. Для этого необходимо составить Техническое Задание, в котором описываются требования к нужной вам программе — индикатору или торговому роботу. В этой статье мы рассмотрим вопросы, на которые должен ответить заказчик, который хочет обратиться во Фриланс.

Дополняйте текст рисунками и видео


Техническое задание должно быть написано строго, структурировано и содержать всё необходимое для понимания — формулы, логические условия, куски кода, описание алгоритма.

Все проблемы в нашем обществе связаны с недопониманием друг друга. Заказ программы во Фрилансе — не исключение. Спросите любого разработчика, и вы узнаете, что самая трудозатратная часть выполнения заказа — выяснение вопроса «Чего хочет Заказчик?». Даже если обе стороны говорят на одном языке, чаще всего выясняется, что они не понимают друг друга. Обидно бывает обнаружить это при приеме выполненной работы. Досаду испытывают обе стороны — и Заказчик, и Исполнитель. Иногда это доходит до Арбитража.

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

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

Некоторые Заказчики создают огромные текстовые описания, думая, что составили все тщательно и понятно. Но на самом деле чаще всего продраться через сплошной текст сложно. Если какой-то термин или слово Заказчик и Исполнитель могут трактовать по-разному, то с рисунком таких проблем не будет: стрелка и круг будут восприняты именно как стрелка и круг, и никак иначе. Потратив 5 — 10 минут на создание понятных для разработчика иллюстраций, вы не только лучше донесете свои идеи, но и быстрее получите правильно работающую программу.

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

Посмотрите, как можно пользоваться редактором для оформления текста:


И последнее: часто Заказчики пишут «Объясню детали по скайпу — так будет понятнее и быстрее». Не будет! Понятней будет, если вы создадите видео с описанием, и при этом постараетесь сделать его профессиональным — четко, без пауз и запинок. Но для этого нужно составить план видео, а к плану — сценарий и текст, который вы будете произносить. Попробуйте сделать это с первого дубля — у вас гарантированно не получится. И по скайпу будет то же самое. Поэтому готовимся, записываем видео, пока не получится четко и понятно. Выкладываем его в Youtube и после этого вставляем в текст технического задания в Заказе.

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

Полезные программы для составления ТЗ


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

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

Для создания прототипов графических панелей попробуйте программу Pencil. Она позволяет за 5 — 10 минут набросать эскиз нужного вам интерфейса. В ней же можно создавать блок-схемы для визуального объяснения сложных алгоритмов. Если вам нужно больше, почитайте обзоры в Сети, например, Шесть программ для создания диаграмм.

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

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

Формулировка Технического задания в виде Алгоритма


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

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

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

Для описания терминов лучше использовать списки, например:

  1. дневной диапазон — расстояние между максимальной и минимальной ценой в течение дня;
  2. средний диапазон — среднее значение дневного диапазона за N дней;
  3. проторговка — узкий ценовой коридор, внутри которого находятся тела свечей, не выходя за его пределы;

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

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

Примеры Технических заданий


Пример №1

Нужен индикатор  ZigZag, который строится на осцилляторах

Идея индикатора

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

  • CCI
  • Chaikin
  • RSI
  • Stochastic Oscillator

Алгоритм и Термины

Первый этап — строительство Зигзага:

  1. Зоной перекупленности называются свечи, на которых значение индикатора Value > Lmax (Lmax=-20).
  2. Зоной перепроданности называются свечи, на которых значение индикатора меньше Value < Lmin (Lmin=-80).
  3. Значения Lmax и Lmin выносятся в параметры индикатора.
  4. На свечи в зоне перекупленности в точке High ставим желтую точку, это H-точки.
  5. На свечи в зоне перепроданности в точке Low ставим зеленую точку, это L-точки.
  6. Если между двумя H-точками есть хотя бы одна L-точка, то начинаем на интервале между ними искать LL-точку — свеча с минимальной ценой Low и будет LL-точкой. В общем случае LL-точка не обязательно является L-точкой. Нас интересуют свечи с минимальной ценой Low.
  7. Если между двумя L-точками есть хотя бы одна H-точка, то начинаем на интервале между ними искать HH-точку — свеча с максимальной ценой High и будет HH-точкой. В общем случае HH-точка не обязательно является H-точкой. Нас интересуют свечи с минимальной ценой Low.
  8. Соединяем LL и HH точки между собой, чтобы получился индикатор ZigZag. Цвет по умолчанию — желтый. Первый этап закончен.


Второй этап — цвет Зигзага:

  1. Ищем три подряд идущие HH-точки так, чтобы выполнялось условие: каждая последующая HH-точка выше предыдущей.
  2. Если для двух лежащих между ними LL-точек также выполняется условие, что вторая LL-точка выше первой, то все колена Зигзага между 5-ю точками красим синим цветом.
  3. Если после найденной пятерки экстремумов Зигзага найдется еще по одной HH и LL точке, которые находятся выше соответственно предыдущих HH и LL точек, то дополнительно красим еще 2 колена Зигзага синим цветом.
  4. Продолжаем так до тех пор, пока не нарушится условие. Так мы отмечаем восходящий тренд.
  5. Аналогично ищем идущие подряд понижающиеся LL точки и проделываем все операции как в пунктах 1- 4. Красим эти колена красным цветом: так мы отмечаем нисходящий тренд.



Третий этап — добавляем возможность указывать нужный тип осциллятора, по которому будет строиться Зигзаг: CCI, Chaikin, RSI,  Stochastic Oscillator.

  1. Добавляем первым параметром тип, который будет задаваться перечислением. Значением по умолчанию будет WPR.
  2. Для каждого типа добавляем свои параметры Lmax и Lmin со значениями по умолчанию.
  3. Имена максимального и минимального параметров должны содержать имя индикатора, то есть вида WPRmax, CCImax,STOmax и так далее.

Четвертый этап — добавляем графическую панель для управления параметрами индикатора.

  1. На панели должны быть чекбоксы со всеми типами осцилляторов для быстрого переключения типа.
  2. Панель должна уметь сворачиваться и разворачиваться по клику мыши.
  3. Панель можно перемещать по графику.
  4. Индикатор можно снять с графика через панель.

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

Приемка работы производится поэтапно — каждый этап должен быть выполнен по порядку.

Пример №2

Требуется индикатор NRTR с отправкой сообщений на почту и в мобильный терминал

1. Нужно переписать индикатор NRTR c MQL4 на MQL5 . Код находится здесь: https://www.mql5.com/ru/code/7760

2. При смене цвета отправлять Push-уведомление и сообщение на email о смене тренда.

3. Добавить в параметры рабочие часы, в которые разрешено отправлять уведомления — ночью отправлять не нужно. Должно быть два параметра:

  • StartHour — с какого часа утра можно отправлять;
  • EndHour — до какого часа вечера можно отправлять.

4. Добавить параметры на разрешение отправки сообщений:

  • SendPush — разрешить отправку Push-сообщений;
  • SendEmail — разрешить отправку писем на почту.

5. Текст отправляемого сообщения имеет формат:

NRTR на EURUSD h2 развернулся вверх. Up=1.23560, Down=1.23300, Brick=260 pips

   где:

  • имя и таймфрейм берутся с графика, на котором запущен индикатор;
  • Up — верхний уровень канала;
  • Down — нижний уровень канала;
  • Brick — толщина канала в пунктах (размер стопа при открытии позиции).



6. Email и Push отправляются только после того, как закроется свеча, пробившая канал.

7. Разрешается отправлять только один сигнал на один бар.

8. Для контроля работы индикатора на VPS нужно также писать текст отправляемого сообщения в логи.

9. Из индикатора нужно получать значения 3 буферов:

  • Up — верхняя граница;
  • Down — нижняя граница;
  • Trend — направление тренда, -1 или 1.

10. Индикатор должен быть написан оптимально с точки зрения производительности.

Пример №3

Требуется написать индикатор

Входные параметры:
  1. Первая валютная пара
  2. Вторая валютная пара
  3. Расчетная пара
  4. Цена для расчета — Bid/Ask

Пункт 3 не является входным параметром, это  просто результат деления курсов из п.1 и п.2, выводится на график для ознакомления.

Принцип действия:
Суть идеи в том, что если взять две валютные пары с одинаковым знаменателем (желательно какие-нибудь популярные), например EUR/USD и GBP/USD, и поделить друг на друга их курсы, то в результате, по правилам деления дробей и после всех сокращений, мы получим курс пары EUR/GBP.

Индикатор рисуется в отдельном окне. Черная вертикальная линия — это текущий момент времени, начиная от нее влево рисуются две кривые:

  • одна — рассчитанный курс, на рисунке зеленая,
  • другая — реальный курс, на рисунке красная

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

Что можно указать в Техническом Задании на создание индикатора


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

Тип отрисовки индикатора

  1. Линии — самый простой и понятный вид графика.
  2. Гистограмма — чаще всего применяется в осцилляторах.
  3. Стрелки и символы — удобны для обозначения моментов входа/выхода. Иногда на них строятся даже каналы (NRTR) или системы Trailing Stop.
  4. Области и каналы — например, Envelopes.
  5. Отрезки — могут использоваться в составе сложных индикаторов для отрисовки линий.
  6. Стиль Zigzag — например, цветной Зигзаг.
  7. Бары и свечи — для отображения графиков с чужих символов или пользовательских свечей на основе вычислений. Например, Heiken-Ashi.
  8. Комбинация перечисленных стилей.

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

Цвета отрисовки

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

Где рисуется индикатор

  1. На главном окне графика
  2. В подокне графика

Таймфреймы и символы для расчета и показа

  1. Индикатор будет использовать для расчетов только свою пару символ/таймфрейм или же будет обращаться к данным других символов и таймфреймов?
  2. Нужно ли запрещать показ индикатора на каких-то символах/таймфреймах?
  3. Что делать, если для расчетов недостаточно баров с чужого символа/таймфрейма?

Какие цены, объемы и индикаторы используются для расчетов

Классические индикаторы всегда работали только с ценами Open, High, Low и Close родного таймфрейма. Но в наше время возможности технического анализа и языки программирования MQL5/MQL4 позволяют использовать самые разные временные серии данных, включая объемы и значения других индикаторов.

  • Нужна ли возможность в параметрах индикатора указывать тип цены, по которой будут делаться расчеты?
  • Должен ли индикатор уметь работать на данных другого индикатора? Например, можно наложить скользящую среднюю на график RSI. Не все трейдеры знают о такой возможности, возможна, она пригодиться вам.
  • Нужно ли показывать/рисовать уровни в индикаторах, которые строятся в отдельном подокне графика. Например, как уровни 30 и 70 для Stochastic Oscillator.

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

Состав и названия входных параметров

Лучше представить разработчику список параметров и их названия, как они будут выглядеть в терминале. Как правило, программист дает входным переменным имена для удобства чтения кода. Трейдеру же, как пользователю программы, нужны имена параметров, которые раскрывают их суть и назначения. Например, в индикаторе Chaikin Volatility (CHV) есть такие параметры, которые понятны трейдеру:

  1. Период сглаживания — сколько значений берется для усреднения вспомогательного массива.
  2. Период CHV — сколько баров берется для получения вспомогательного массива по методу Чайкина.
  3. Тип сглаживания — какой тип сглаживания будет использоваться для осциллятора.

Разработчик на основе этого пишет в коде:


enum SmoothMethod
  {
   SMA=0,
   EMA=1 
  };

input int          InpSmoothPeriod=10;  
input int          InpCHVPeriod=10;     
input SmoothMethod InpSmoothType=EMA;   

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

Запуск вычислений на каждом тике

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

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

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

Перерисовка индикатора

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

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

Алерты, Push-сообщения, отправка писем, отчетов, скриншотов

Если вам необходимо, чтобы индикатор в определенные моменты времени сообщал вам о текущей ситуации на рынке, то разработчик может добавить в код отправку Push-уведомлений и электронных писем. Кроме того, для привлечения внимания трейдера в индикатор можно добавить функции PlaySound(), Alert() и MessageBox(). Если у вас есть свой сайт или страница блога, возможно вам пригодится SendFTP().

В статье Андрея Войтенко Создание бота для Telegram на языке MQL5 приводятся и другие возможности по автоматизации ручной торговли. Возможно, вы захотите взять некоторые идеи из неё.

Графическая панель управления

Если вы хотите сделать управление индикатором более гибким, то подумайте о добавлении графической панели управления. Статья MQL5, обработка событий: Изменяем период мувинга «на лету» вышла много лет назад, в ней показана сама идея. С тех пор возможности языка MQL5 стали практически безграничными. Посмотрите примеры в статьях Универсальный осциллятор с графическим интерфейсом и Как быстро добавить панель управления к индикатору и советнику. И, конечно же, рекомендуем посмотреть серию статей Графические интерфейсы от Анатолия Кажарского.

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

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

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

Скриншоты для пояснения

Хороша известна пословица «Лучше один раз увидеть, чем сто раз услышать». Поэтому если ваш индикатор должен отрисовывать/визуализировать на графике совершенно определенным образом конкретные ситуации, вам необходимо сделать хорошо понятные иллюстрации. Мы рекомендуем на них показывать только самое необходимое, размер картинок должен быть небольшим, нет смысла делать гигантские скриншоты. Некоторые полезные советы вы найдете в статье Как правильно подать Продукт для продажи в Маркете?

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


Не стоит пытаться в один скриншот втиснуть много мелких деталей. Вот пример того, как не надо делать:


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


Если приложить немного усилий, то можно сделать из него вариант получше:


Здесь выбран более крупный масштаб графика, выставлена стандартная цветовая схема «Black & White», убрана мешающая надпись, название паттерна выполнено другим шрифтом и цветом, места прорыва треугольника дополнительно обозначены красным контуром. Сами стрелки прорыва треугольника тоже раскрашены в привычные для большинства трейдеров цвета. Такой скриншот практически не содержит лишних деталей и показывает только саму основную идею.

Логи и журналы для отладки

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

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

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

Кроме того, при возникновении непредвиденной ситуации предоставьте разработчику дополнительные сведения, как это показано в статье Андрея Хатимлянского Как заказать написание советника и получить желаемый результат:

  • Приложите set-файл с параметрами программы (кнопка «Сохранить» в окне параметров советника)
  • Укажите используемые валютную пару и таймфрейм графика
  • Укажите адрес сервера, к которому был подключен терминал, и тип счета (демо, реал, конкурсный или другой)
  • Укажите версию терминала (меню «Справка» — «О программе»)
  • Если проверка производилась в тестере, дополнительно укажите настройки тестера (интервал дат, режим моделирования, режим торговли, начальный депозит, кредитное плечо)

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

Приемка и проверка индикатора

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

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

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

Задумал, описал, заказал!


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

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

Практическое руководство по написанию технических спецификаций

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

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

В этой статье я расскажу, как написать техническую спецификацию, обеспечивающую надежность продукта.

Что такое техническая спецификация?

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

Почему так важно написать техническую спецификацию?

Технические спецификации

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

Преимущества для инженеров

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

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

Преимущества для команды

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

Преимущества проекта

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

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

Что нужно сделать перед написанием технического задания

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

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

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

Содержание ТУ

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

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

1. Фасад

  • Заголовок
  • Автор (ы)
  • Команда
  • Рецензент (и)
  • Создано на
  • Последнее обновление
  • Ссылка на эпик, тикет, проблему или трекер задач

2.Введение

а. Обзор, описание проблемы, сводка или реферат

  • Краткое изложение проблемы (с точки зрения пользователя), контекст, предлагаемое решение и заинтересованные стороны.

б. Глоссарий или терминология

  • Новые термины, с которыми вы сталкиваетесь, исследуя свой дизайн, или термины, о которых вы можете подозревать, что ваши читатели / заинтересованные стороны не знают.

с. Контекст или фон

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

d.Цели или продукт и технические требования

  • Требования к продукту в форме пользовательских историй
  • Технические требования

e. Нецелевые или выходящие за рамки

  • Требования к продукту и технические требования, которые не будут приняты во внимание

f. Будущие цели

  • Продукт и технические требования на будущее

г. Допущения

  • Условия и ресурсы, которые должны присутствовать и быть доступны для того, чтобы решение работало, как описано.

3. Решения

а. Текущее или существующее решение / проект

  • Описание текущего решения
  • Плюсы и минусы текущего решения

б. Предлагаемое или предлагаемое решение / дизайн

  • Внешние компоненты, с которыми решение будет взаимодействовать и которые оно изменит
  • Зависимости текущего решения
  • Плюсы и минусы предлагаемого решения
  • Изменения модели данных / схемы
    • Определения схемы
    • Новые модели данных
    • Модифицированные модели данных
    • Методы проверки данных
  • Business Logic
    • Изменения API
    • Псевдокод
    • Блок-схемы
    • Состояния ошибок
    • Сценарии сбоев
    • Условия, которые приводят к ошибкам и сбоям
    • Ограничения
  • Уровень презентации
    • Требования пользователя
    • Изменения пользовательского интерфейса
    • Изменения пользовательского интерфейса
    • Каркасы с описаниями
    • Ссылки на работу дизайнера пользовательского интерфейса / пользовательского интерфейса
    • Мобильные проблемы
    • Веб-проблемы
    • Состояния пользовательского интерфейса
    • Обработка ошибок
    900 50
  • Другие вопросы, на которые необходимо ответить
    • Как будет масштабироваться решение?
    • Каковы ограничения решения?
    • Как он восстановится в случае сбоя?
    • Как он будет соответствовать будущим требованиям?

с.План тестирования

  • Объяснение того, как тесты обеспечат выполнение требований пользователя
  • Модульные тесты
  • Интеграционные тесты
  • QA

d. План мониторинга и оповещения

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

e. План выпуска / развертывания и развертывания

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

f. План отката

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

g. Альтернативные решения / конструкции

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

4.Дополнительные соображения

а. Влияние на другие команды

  • Как это увеличит работу других людей?

б. Рекомендации по использованию сторонних сервисов и платформ

  • Стоит ли оно того по сравнению с построением службы собственными силами?
  • Какие проблемы безопасности и конфиденциальности связаны с услугами / платформами?
  • Сколько это будет стоить?
  • Как это будет масштабироваться?
  • Какие возможные проблемы в будущем ожидаются?

с.Анализ затрат

  • Сколько стоит использовать решение в день?
  • Сколько стоит его развертывание?

г. Соображения безопасности

  • Каковы потенциальные угрозы?
  • Как они будут устранены?
  • Как решение повлияет на безопасность других компонентов, служб и систем?

д. Соображения о конфиденциальности

  • Соответствует ли решение местным законам и юридической политике конфиденциальности данных?
  • Как решение защищает конфиденциальность данных пользователей?
  • Каковы компромиссы между персонализацией и конфиденциальностью в решении?

ф.Региональные особенности

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

г. Соображения доступности

  • Насколько доступно решение?
  • Какие инструменты вы будете использовать для оценки доступности?

ч.Рекомендации по эксплуатации

  • Вызывает ли это решение неблагоприятное последействие?
  • Как данные будут восстановлены в случае сбоя?
  • Как решение восстановится в случае сбоя?
  • Как будут сохраняться низкие эксплуатационные расходы при увеличении ценности для пользователей?

i. Риски

  • Какие риски несет это решение?
  • Есть ли риски, от которых нельзя отказаться?
  • Каков анализ затрат и выгод от принятия этих рисков?

Дж.Рекомендации по поддержке

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

5. Оценка успеха

а.Ударная

  • Влияние на безопасность
  • Влияние на производительность
  • Влияние на стоимость
  • Влияние на другие компоненты и услуги

b. Метрики

  • Список показателей для сбора данных
  • Инструменты для сбора и измерения показателей

6. Работа

а. Смета и сроки работ

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

b.Приоритезация

  • Распределение задач по срочности и степени воздействия

c. Вехи

  • Датированные контрольные точки, когда будут завершены значительные объемы работы
  • Метрики, указывающие прохождение контрольной точки

d. Будущая работа

  • Список задач, которые будут выполнены в будущем

7. Обсуждение

а. Обсуждение

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

б. Открытые вопросы

  • Вопросы о вещах, на которые вы не знаете ответов или не уверены, что задаете их команде и заинтересованным сторонам. Это могут быть аспекты проблемы, которые вы еще не знаете, как решить.

8. Конечное дело

а. Сопутствующие работы

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

б. Каталожные номера

  • Ссылки на документы и ресурсы, которые вы использовали при разработке дизайна и хотите отметить.

с. Благодарности

  • Отметьте людей, которые внесли свой вклад в дизайн, который вы хотите отметить.

После того, как вы написали свою техническую спецификацию

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

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

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

Теги: бюллетень, stackoverflow, технические характеристики

Сравнение функциональных и технических характеристик (+ примеры)

СТАТЬЯ СОДЕРЖАНИЕ

Речь идет о функциональном vs.технические характеристики.

Вы узнаете:

  • Что такое функциональная спецификация?
  • Что такое техническая спецификация?
  • Разница между функциональной и технической спецификациями
  • Намного больше

Итак, если вы хотите развенчать этот 101 принцип управления проектами ERP, эта статья для вас!

Приступим!

В чем разница между функциональными и техническими характеристиками?

Давайте посмотрим правде в глаза — бизнес редко проходит хорошо без плана.

Подготовка к написанию программного обеспечения для продукта ничем не отличается.

Итак, очень важно понимать разницу между функциональными и техническими характеристиками.

Вы ведь хотите, чтобы ваше приложение было успешным?

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

Каковы функциональные характеристики?

Функциональные характеристики — это все о пользовательском опыте. Они определяют, насколько легко пользователям ориентироваться в продукте. И поэтому насколько они склонны продолжать его использовать.

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

Вам может быть интересно: что входит в программирование функциональных спецификаций? Ниже приведены некоторые примеры.

  • Меню
  • Диалоги
  • Экраны
  • Функции

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

Что это значит для вас?

Много писали.

Каковы технические характеристики?

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

Какие примеры функциональных спецификаций, спросите вы? Вот несколько:

  • Структуры данных
  • Языки программирования
  • Фреймворки
  • Модели баз данных

Что здесь в итоге?

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

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

Сравнение функциональных характеристик и технических характеристик

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

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

При сравнении функциональных и технических спецификаций непрофессионалам легче понять концепцию функциональных спецификаций:

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

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

Итак, у них есть несколько общих элементов:

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

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

Функциональные и технические характеристики

: в чем преимущества?

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

Тем не менее, это важно; Хорошо написанные функциональные и технические спецификации увеличивают шансы на успех программы или продукта.

К преимуществам функциональных характеристик можно отнести:

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

Преимущества технических характеристик включают:

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

Несмотря на преимущества поощрения успеха продукта, многие компании не пишут спецификации.

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

Что из этого вышло?

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

Кто пишет спецификации?

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

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

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

На этом этапе инженеры-программисты могут приступить к разработке программного кода.

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

Пример функциональной спецификации: как это выглядит

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

Готовы к образцу функциональной спецификации?

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

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

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

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

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

Все эти детали должны быть включены в документ с функциональными характеристиками.

Пример технической спецификации: как это выглядит

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

А как насчет примера технической спецификации?

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

Проблема Unicode сложнее, чем описано здесь, но это должно дать вам суть.

Что в итоге?

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

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

Основные компоненты функциональных и технических характеристик

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

Ниже приведены основные моменты того, что он должен включать:

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

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

Загадка редактирования

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

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

Что может случиться, если пропустить редактирование?

Давайте посмотрим на ошибку НАСА. Считается, что программисты НАСА не обратили внимания на пропущенный дефис, что вынудило их прервать запуск Mariner 1.

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

Итак, сколько раз вам следует редактировать свои спецификации?

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

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

Опасность игнорирования спецификаций

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

Но поскольку спецификации важны, почему люди их игнорируют?

Во многом это зависит от отношения.

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

Проверка реальности: наверное, не могут.

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

Что здесь самое лучшее?

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

6 шагов по написанию технических характеристик продукта (+ примеры)

Если вы новичок в управлении продуктами и вам не приходилось писать спецификации продукта раньше, то вы попали в нужное место.

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

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

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

Каковы технические характеристики продукта?

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

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

3 Пример спецификации продукта s

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

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

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

Для чего используются спецификации продукта?

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

Что должно быть включено в спецификацию проекта?

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

  • Резюме — это общий взгляд на продукт. Он начинается с краткого описания идеи продукта и дает краткое описание продукта и его общей концепции.Это также объясняет, почему создается продукт. Краткое описание продукта объясняет, как будет выглядеть конечный продукт, какие функции он будет иметь и сколько времени потребуется на его разработку.
  • Бизнес-пример — Следующим в вашей спецификации должно быть бизнес-обоснование, лежащее в основе разработки продукта. Он описывает выгоды или преимущества, которые продукт дает компании на рынке. Также рассматривается бюджет и другие ресурсы, необходимые для завершения проекта.
  • Истории пользователей — это короткие сообщения, основанные на точке зрения конечного пользователя продукта. Они объясняют, какие функции пользователи хотят видеть в новом продукте. Также неплохо включить критерии приемлемости в пользовательские истории — это критерии, которые определяют, соответствует ли пользовательская история продукту, например, была ли включена желаемая функция.
  • Персонажи пользователей — Здесь указано, для кого создается этот продукт, и указана целевая аудитория.В нем описаны особенности целевой демографической группы и ее проблемы, которые будут решены с помощью продукта. Знание предполагаемой цели продукта означает, что ваша работа по-прежнему ориентирована на клиента.
  • Функциональная спецификация — это документ, который описывает, как вы видите внешний вид и возможности будущего продукта. Следует также указать, как пользователи будут с ним взаимодействовать. Это ориентир для команды разработчиков продукта, когда они начинают свою работу. Вы также можете добавить сюда гибкую техническую спецификацию для своей команды.

Технические характеристики Дизайн

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

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

Как написать лист технических характеристик продукта

1. Определите проблему.

Какую проблему или проблему поможет решить этот продукт? Нет смысла создавать продукты, не отвечающие конкретным бизнес-потребностям или потребностям потребителей.Убедитесь, что в описании продукта указаны потребности и проблемы, которые решает продукт.

2. Понять мнение клиентов.

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

3. Включите в обсуждение всю свою компанию.

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

4. Выберите, какие спецификации продукта включить.

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

5. Проведите пользовательское тестирование.

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

6. Внесите поправки в зависимости от того, что, по мнению пользователей, работает, а что нет.

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

Если вы хотите больше узнать о мире управления проектами, узнать о спецификациях проектов и продуктах, подпишитесь на рассылку The Product Manager Newsletter.Вы найдете полезные советы и много информации, которую сможете использовать при ознакомлении со спецификациями продуктов и другими областями вашей работы.

Важность и порядок написания технических условий

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

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

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

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

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

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

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

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

4 Важность технических характеристик

  1. Первое и главное преимущество наличия технической спецификации состоит в том, что вы получите подробную схему того, над чем вам следует работать. Таким образом, вы сократите потери на галстуки, а также сократите стоимость проекта.
  2. Это позволяет легко назначить задачу членам команды. Например, если у вас есть четкие технические спецификации, ваша команда может работать без путаницы и в гармонии друг с другом, поскольку все они будут иметь четко определенные должностные роли.
  3. Технические характеристики также помогают масштабировать ваш продукт. Масштабируемость команды и инфраструктуры потребуется, если проект, над которым вы работаете, является большим. Если у вас есть эти спецификации, упомянутые до начала проекта, то внести такие изменения будет несложно.
  4. Четко определенная техническая спецификация снижает вероятность отказа. Это означает, что вы можете очень хорошо планировать, и разработчик проекта будет четко знать, что развивать.

Как написать техническое задание?

Шаг 1. Перечислите все требования

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

Шаг 2. Напишите содержание

Сначала написав оглавление. Оглавление — важная функция, поскольку она дает ориентиры для читателя документа с технической спецификацией.

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

Шаг 3. Запишите спецификации

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

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

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

Шаг 4. Важные особенности

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

Следующие шаги, которые вам необходимо выполнить, — это сделать документ спецификации доступным для чтения и понимания. Для этого необходимо соблюдать следующие правила.

  1. Ваш стиль письма должен быть простым и легко читаемым.
  2. Используйте простые и короткие предложения.
  3. Избегайте использования местоимений. Например, используйте прямое название продукта каждый раз, когда вы обращаетесь к нему, вместо таких местоимений, как «он» и «который». Это снизит вероятность путаницы у читателей технических спецификаций.
  4. Затем определите жаргоны, которые вы используете в конце или лучше в начале документа технической спецификации вашей технической спецификации.Это поможет вам держать всех на одной странице, и вам не придется тратить время на объяснение всего.
  5. Прочтите спецификацию критически, а также дайте ей возможность критически прочитать ее тем, у кого больше опыта. Например, вы можете попросить руководителя проекта или вашего менеджера вычитать техническую спецификацию перед окончательной отправкой. Это снизит вероятность ошибок, а также уменьшит путаницу на более поздней стадии проекта.
  6. Затем присвойте контрольный номер и подходящее название документу с технической спецификацией.
  7. Наконец, добавьте блок подписи для всех полномочий в.

Написание технических спецификаций — видео и стенограмма урока

Открытые спецификации

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

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

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

Закрытые спецификации

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

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

Написание спецификаций

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

Используйте короткие предложения, чтобы сформулировать каждое требование. Кроме того, используйте в предложении «должен» для обозначения требования. Например, можно написать: «Самолет должен быть из алюминия.Слово «должен» говорит компании о том, что требование должно быть выполнено.

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

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

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

Сводка урока

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

  • Используемые материалы
  • Собственные образцы
  • Предлагаемые услуги
  • Создаваемых продуктов
  • Спектакли незавершенные

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

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

Результаты обучения

После того, как вы закончите повторение этого урока, вы сможете:

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

О написании технических спецификаций.Прежде чем писать код, нужно решить все, кроме… | автор: Чак Грум

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

Основные правила

  • Есть только один автор . Может быть много членов команды, которым доверяют большие идеи, но проще всего, если только один человек объединит все в единое предложение.
  • Это не руководство. Техническая спецификация отображает неизведанное, но не требует подробного планирования каждой мелочи.Не вдавайтесь слишком глубоко в кровавые подробности, перечисляя все API и т. Д., Если они действительно не имеют значения.
  • Не надо скучать. Если вы, , думаете, что то, что вы пишете, неинтересно, то я гарантирую, что никто не захочет это читать.
  • Это нормально быть неполным. Вам абсолютно разрешено махать рукой по местам или перечислять разделы как подлежащие уточнению. Просто скажите читателю, что вы делаете, и убедитесь, что у вас все закончилось до начала работы.
  • Предположим, что версии 2 не существует. Распространенное заблуждение — полагать, что можно предложить одноразовое краткосрочное решение, потому что не за горами переписывание. Извините, скорее всего, этого не произойдет; системы, как правило, исправляются и расширяются с течением времени, но редко заменяются. Назовите компоненты и процессы, которые можно улучшить позже, но предположите, что основные проектные решения будут сохраняться в течение длительного времени.

Заголовок

Заголовок должен включать имя проекта; Дата; Автор; и участвующие члены команды.Эти имена и даты на удивление полезны в будущем, когда кому-то нужно знать: «Эй, кто знает, как поддерживать эту грязную старую штуку?»

Обзор

Обобщите проект и сделайте ссылку на внешние документы.

  • Дайте контекст, указав спецификации продукта, маркетинговую и техническую документацию.
  • Обобщите общий подход.
  • Дайте приблизительную оценку общего времени (размер проекта).

Цели и требования к продукту

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

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

Правильный инженерный ответ на проекты без цели.

Допущения

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

Вне области

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

Открытые вопросы

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

Подход

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

Компоненты

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

Изменения схемы

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

Безопасность и конфиденциальность

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

План тестирования

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

Развертывание и развертывание

Рассмотрите логистику и порядок операций для ввода в эксплуатацию; и для последующих выпусков.Обсудите управление конфигурацией, управление секретами, изменения базы данных, миграции и процесс выхода из системы.

План отката

Объясните, что произойдет, если что-то пойдет не так с развертыванием — если произойдет сбой интеграции или если клиенты ненавидят функцию. Какие показатели и оповещения нам следует отслеживать? Можно ли вернуться назад и восстановить прежнюю систему? Как?

Мониторинг и ведение журнала

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

Метрики

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

Долгосрочная поддержка

Обдумайте такие вопросы, как: кому принадлежит поддержка этого программного обеспечения в будущем? Каковы долгосрочные затраты и «подводные камни»? Что произойдет, если ключевые люди уйдут и нам потребуется передать знания?

Временная шкала и компоненты

Дайте приблизительную разбивку задач по владельцам в дневных оценках (например, «Группа инженеров по обеспечению соответствия создает виджет X: ~ 3 человеко-дня»).Быть реалистичным; используйте фактические человеко-календарные дни, а не теоретические оценки «если бы мы были на 100% сосредоточены…» и включать отступы для интеграции, рисков и встреч. Учитывайте задачи, необходимые для всех команд, а не только для своей собственной.

Как написать отличные технические спецификации. Технические характеристики полезнее большинства… | от Black Queen of Tech

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

Хотя все технические спецификации выглядят по-разному, использование шаблона позволяет воспользоваться преимуществами известных передовых практик. Здесь мы представим свободный шаблон технических спецификаций, пройдя через спецификацию гипотетического проекта под названием Spot the Bot — бот Twitter, который будет твитнуть милые фотографии щенков.

Найдите бота (поняли?)

Вот как будет выглядеть раздел заголовка для технической спецификации Найдите бота на Lyft:

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

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

Резюме

Это краткое изложение вашей технической спецификации: краткое описание того, кто / что / когда / где / почему всего вашего предложения.

Spot the bot — это твиттер-бот, который публикует в Твиттере фотографии собак с заданными хронологическими интервалами. Изображения собак извлекаются с помощью вызова GET к Dog API.

Предпосылки

Контекстуализируйте свой проект: зачем его создавать? Какая мотивация? Какие пользовательские проблемы вы пытаетесь решить? Какие предыдущие усилия, если таковые были, были предприняты для решения этой проблемы?

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

Цели

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

— Прервите монотонную ленту Twitter забавными, неожиданными и фирменными изображениями.(субъективно)

— Познакомьте миллениалов с нашим брендом с помощью актуального и увлекательного контента. (субъективно)

— Интеграция с Twitter (для автоматизации твитов) и Dog API (для получения контента с фотографиями щенков) (цель)

Non-Goals

Понятие «нецелевое» может быть не интуитивным и сбивающим с толку. Вот как это определяется во внутреннем руководстве по техническим характеристикам Lyft: «Нецель — это то, что вы намеренно не делаете или не решаете в рамках своего проекта, даже если это может быть связано.Определение нецелей помогает ограничить масштаб вашего проекта и предотвращает расползание функций ». Как и цели, нецели должны быть в высшей степени удобочитаемыми (мы предлагаем маркированный список), чтобы они сразу же переходили к рецензентам. Погружение нецелей глубоко в технические характеристики фактически гарантирует, что случайный читатель попытается расширить масштаб вашего проекта.

— Распространение фотографий собак через другую платформу (например, facebook, instagram)

— Создание или размещение собственной базы данных фотографий собак (вместо этого мы будем использовать Dog API)

— Настраиваемое «время публикации» — в v1, фотографии собак будут публиковаться с жестко заданным хронологическим интервалом.

План

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

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

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

Измерение воздействия

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

— охватите 2 тыс. Подписчиков в Твиттере в течение 2 месяцев с момента запуска с помощью кросс-аккаунта и кросс-платформенного продвижения.

— По крайней мере, 50% подписчиков не являются ботами; по крайней мере 20% — это люди в возрасте 18–35 лет.

Безопасность, конфиденциальность, риски

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

Прочие соображения

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

Найдите бота Электронный бот: электронные письма вместо твитов. Решили не внедрять, потому что он плохо масштабируется, а спрос пользователей невелик.

Вехи

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

— Интеграция Dog API завершена: 14 октября

— Настраиваемый интервал публикации: 17 октября

— Контроль качества завершен: 21 октября

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

Открытые вопросы

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

Мы начнем с твита раз в час, в час.Может ли кто-нибудь из Data Analytics подтвердить, что этот показатель максимизирует нашу аудиторию?

Распространение технических характеристик

Отточенные технические характеристики с большей вероятностью получат своевременные, подробные и полезные отзывы от рецензентов. С этой целью рекомендуется попросить товарища по команде провести предварительную проверку, прежде чем широко распространять вашу техническую спецификацию — они могут выявить любые явные ошибки или упущения. Затем отправьте свою техническую спецификацию более широкой аудитории: сначала вашей команде, затем заинтересованному лицу и, наконец, всем заинтересованным сторонам.С каждым раундом ваша спецификация становится все более точной (и более привлекательной для обозревателей).

Обратная связь

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *