Найти тему

Пост про функциональные спецификации (ФС)

Вы сами этого просили. Готовьтесь зевать.

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

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

ФС может пригодиться во многих случаях:

— Объяснить разработчикам, как должен работать тот или иной элемент системы;
— Напомнить участникам проекта, как должен работать тот или иной элемент системы, когда уже прошло много времени с проектирования и все забыли, что там было задумано (т.н. проблема легаси);
— Формализовать, как должен работать тот или иной элемент системы при заключении договора на разработку;

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

Самое страшное в ФС — это то, что никто не любит её писать. Поставьте себя на место проектировщика интерфейсов или дизайнера. Нарисовал за месяц сто макетов, с горем пополам отстрелялся со всеми этими правками. И тут возникает выбор. Распрощаться с клиентом и идти рисовать следующий проект, либо взять все свои сто макетов и детально описать текстом, рассматривая их при этом под другим углом и внося в них новые и новые правки (некоторые мои прототипы получали до 50% изменений в результате описания в ФС и иногда разрастались чуть ли не в два раза).

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

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

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

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

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

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

Продолжение следует?