Содержание

    Просто о сложном: как написать спецификацию за 5 шагов

    Представим, что вы планируете разработать большой проект: сайт, блог или приложение. Чего вы боитесь как заказчик? Что подрядчик пообещает золотые горы, возьмёт деньги, но не сделает, что вы хотели. А как подрядчик? Что в начале работы вас попросят сделать одно, а в процессе — всё переделать (причём раз десять), в итоге вы потратите кучу времени и уйдёте в минус.

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

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

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

    Спека похожа на список продуктов перед походом в магазин. Запишите и структурируйте всё, чтобы не забыть «купить». Это по сути договор между вами и заказчиком, который регулирует объём будущих выполненных работ.

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

    1. Закрытая или открытая?

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

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

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

    2. Содержание

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

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

    пример спецификации

    Ну и какая дипломная работа спецификация без титульного листа! Добавьте на него заголовок и дату публикации.

    3. Разделы

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

    1. Введение
      1. Обзор: цель спецификации.
      2. Объём проекта: краткое описание проекта.
      3. Глоссарий: расшифровка терминов.
      4. Ссылки: список источников.
      5. Обзор продукта: краткое описание каждого раздела
    2. Общее описание
      1. Системная среда: общее описание, при помощи каких инструментов будет реализован функционал продукта.
      2. Спецификация функциональных требований: подробное описание, из чего состоит продукт. Если вы создаёте сайт, здесь будет подробное описание всех его страниц, хедера, футера и так далее.
    3. Технические требования
      1. Требования к интерфейсу: общее описание требований к возможностям интерфейса проекта. Если продолжать пример с сайтом, то в этом разделе можно указать домен, на котором он будет размещаться, место хранения базы данных и используемые API.
      2. Функциональные требования: описание того, как должна работать система со стороны пользователя. Здесь, например, можно описать карту сайта, работу пагинации, RSS и счётчики аналитики.
      3. Нефункциональные требования: описание того, что нужно сделать, чтобы реализовать функциональные требования. Так сказать, начинка продукта. К примеру, описание страниц ошибок, навигации по сайту, требования к производительности и безопасности данных.

    О последних двух подпунктах расскажу подробнее.

    4. Функциональные и нефункциональные требования

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

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

    пример спецификации

    Ещё один пример: описание работы комментариев на сайте

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

    пример спецификации

    Другой пример нефункционального требования — безопасности

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

    5. Согласование

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

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

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

    В сухом остатке

    Информации было много, давайте закрепим:

    1. Открытая или закрытая спека? Первая даёт больше свободы подрядчику, вторая понятнее заказчику, но возможен и компромиссный полузакрытый вариант.
    2. Титульный лист и содержание. Готовим драфт, чтобы было куда накидать «мясо».
    3. Описание всех разделов. Заполняем каждый раздел из содержания.
    4. Требования клиента. Делятся на функциональные (что система должна делать) и нефункциональные (как она должна это делать).
    5. Согласование. Перед отправкой заказчику прочитайте спецификацию его глазами: всё ли понятно?

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

    Дарим шаблон спецификации
    Пришлём на почту
    Имя
    Email *
    Array
    (
        [0] => WP_Term Object
            (
                [term_id] => 1425
                [name] => Статьи
                [slug] => articles
                [term_group] => 0
                [term_taxonomy_id] => 1907
                [taxonomy] => category
                [description] => 
                [parent] => 0
                [count] => 689
                [filter] => raw
                [cat_ID] => 1425
                [category_count] => 689
                [category_description] => 
                [cat_name] => Статьи
                [category_nicename] => articles
                [category_parent] => 0
            )
    
    )
    
    Поделиться статьёй
    Подписаться на рассылку