Кто-то сказал “Аналитик разрабатывает требования”. За ним повторили. Много-много раз. Тысячу раз. Но это не так.
Он выявляет потребности, выявляет/проектирует требования и разрабатывает модели решения.
А есть разница ? Давайте разберемся (истиной мы будем считать то, что работает).
Определяем понятия
Требованием (requirement) мы будем называть некоторое утверждение о (атомарном) свойстве системы, реализация которого должна помочь достижению цели.
Моделью системы мы будем называть упрощенное представление о системе для ее изучения или проектирования.
В некоторых книгах, модели также называют требованиями (после проектирования модели мы требуем, чтобы будущая система была построена по этой модели/удовлетворяла модели), давайте поймем, удобно ли это. Чтобы разобраться давайте вначале будем их отличать.
Разрабатываем требования
Жил-был дядя Вася. Однажды пришел он к вам, как к аналитику-проектировщику и говорит: “Вот мои требования”.
Я, как дядя Вася, хочу открыть магазин:
На в Охотном ряду (модель решения), потому что там очень высокая проходимость, более 100 чел/час людей с средним доходом более 100к, в 30% случаев готовых купить сувенир стоимостью более 1000 руб (требование к системе), что позволит продавать им эти сувениры (модель надсистемы) и иметь оборот более 100*10*0.3*1000 руб в день (ценность = требование качества к надсистеме);
Магазин нужен мне завтра (требование к проекту системы), потому что я не хочу ждать (личностная потребность),
Стоимость проекта должна быть не выше 1000 руб (требование к проекту системы), потому что это все деньги которые у меня есть (контекст), а кредиты мне больше не дают (модель обеспечивающей системы);
Жена дяди Васи говорит:
Я не готова подвергать никакому риску мужа, себя, своих близких и свое имущество и не готова, чтобы кто-то из нас нарушал закон (требование к проекту и к системе), потому что страшно (личностная потребность).
Вы записали все требования. Они обоснованы ? Вполне. Каждое обоснование вполне обосновывает требование.
Вы говорите дяде Васе и его жене : “Я закончил свою работу, требования разработаны”.
Но дядя Васе не нужно, чтобы вы просто записали его требования.
Он спрашивает: “Так как это сделать ? Ты же умный, придумай!”. Он ждет от вас решения этой задачи (и убеждает вас заняться решением). Или, точнее, ему нужна модель создаваемой системы и проекта ее создания.
Делаем модель решения
Держась за пострадавшее от убеждения ухо, вы садитесь и с помощью интернета и смекалки создаете варианты моделей системы:
Продавать семечки на вокзале в Тамбове,
Дяде Васе пройти обучение, устроится на высокооплачиваемую работу, заработать денег, открыть свою компанию, заработать еще больше денег и открыть магазин на Охотном ряду,
Открыть магазин на Охотном ряду за 100 млн руб,
Ограбить банк, открыть магазин на Охотном ряду на полученные деньги,
Поработать год на автомойке и на вырученные деньги открыть ларек на Черкизовском рынке по продаже беляшей, которые будет делать его жена.
Ничего другого вы не придумали (может вы мало старались?). Но время на проектирование закончилось и нужно либо выбрать одно из решений, либо заходить на следующий круг проектирования (после получения новых ц.у.).
Каждое из этих решений в чем-то не удовлетворяет требованиям. Более точно, для каждой модели можно рассмотреть степень удовлетворения требований.
Итак, вы делаете матрицу сравнения решений и вам вместе с дядей Васей и его женой нужно:
Оценить степень удовлетворения требованию,
Создать метод сравнения, например, просуммировать все оценки и выбрать модель с наибольшей оценкой, а может быть, просто откидывать решения с наихудшими оценками по какому-то требованию.
Итак, вы договорились и смотрите на решение с лучшей оценкой и выигрывает решение номер пять.
Дядя Вася скрепя сердцем соглашается на него.
Насколько это решение удовлетворяет требованиям:
Проходимость, будет в среднем 10 чел/час людей с средним доходом более 10к, в 10% случаев готовых купить беляш стоимостью 100 руб, это позволит получать оборот =10*10*0.1*50 руб в день;
Срок проекта - год,
Стоимость проекта 50 000 руб;
Риск нарушения закона есть, придется отдавать половину на взятки.
И вот тут внимание !!! То что описано - это требования? Нет. Это атрибуты качества модели решения.
Почему так? Эти атрибуты нельзя менять независимо, за ними стоит созданная вами модель решения, которая содержит некоторый баланс возможностей. Этот баланс основан на какой-то объективной закономерности. Закономерность нельзя нарушить, изменение одних атрибутов качества влечет изменение других.
Дядя Вася может сказать “Хочу за месяц”, но он не заработает за месяц 50к. А за 5к его не пустят в злачное место с хорошей проходимостью, поэтому оборот упадет в десять раз (вы же провели исследование рынка, а не просто так нарисовали эту модель, правда?).
Требования Васи остались теми же самыми и если кто-то (поумнее вас) предложит ему модель решения лучше вашей (по методу оценки), то он на нее согласится (хотя нельзя забывать, что этот кто-то мог и продавить другой метод оценки).
Никогда за 20 лет не встречал бизнес-заказчика, который не хотел бы получить все вчера, забесплатно и все, что ему нужно сегодня и в следующие 10 лет.
Какую ценность вы создали? Мы построили модель системы и пути ее достижения. Дядя Вася не дурак, когда трезвый, и он говорит вам спасибо за работу.
Итого
Аналитик или, более точно, аналитик-проектировщик:
Выявляет требования на систему и проект создания (и на другие обеспечивающие системы),
Разбирается с причинами этих требований, чтобы, в том числе, возможно было создать правильный способ сравнения разных вариантов,
Проектирует несколько вариантов моделей решения (а лучше один, если сразу возможно отсечь лишние - тогда проектирование будет быстрее),
Добивается оценки атрибутов качества - степени соответствия требованиям,
Сравнивает варианты вместе с заказчиком, выбирая один,
Производит детализацию выбранного варианта решения, пока разработчики/строители/те, кто реализуют вариант не поймут что им делать (с минимальным риском непонимания).
Атрибуты качества модели решения - не требования к решению, это оценки или описания модели решения, которые не могут изменяться независимо друг от друга.
Попытка потребовать соблюдения улучшения одного атрибута качества влечет усилия по перепроектированию модели. Поэтому правильный ответ на “дайте скидку в 5%” - это “дайте деньги на перепроектирование” (если вы не заложили это в финансовых рисках или если вам нечего допродать).
Если требования, модель решения и атрибуты качества модели называть “требованиями”, то это только запутает аналитика (что автор и наблюдает).
P.S. Попробуйте в комментариях статьи написать алгоритм действий аналитика-проектировщика, не упоминая модель решения, используя только термины бизнес-требование, пользовательское требование, функциональное требование, системное требование и пр. Давайте же сравним )
Комментарии (7)
Apoheliy
31.10.2022 23:11Честно говоря, сумбурное впечатление от статьи. Как будто накидали в неё всяко-разного...
Итак:
... реализация которого должна помочь достижению цели ... - так может и начать с цели. Тогда и со всем остальным будет немножко проще. Однако про цель Васи аналитик не спрашивает, должен догадаться сам (если неправильно догадался - есть второе ухо);
- если Вася сказал о магазине на Охотном и завтра, как о требовании (по лору: ... записали все требования ...), тогда почему модель решения их не учитывает. Заказчик приходят с запросом на проектирование условного магазина, а в ответ получает предложение "взаимодействовать" с банком: зачем(?) если магазин должен стоить 1000 руб, которая у Васи уже есть (это всё к вопросу о требованиях - может поговорить об изменении требований?);
... 30% случаев готовых купить сувенир стоимостью более 1000 руб (требование к системе) ... - если это требование к системе, то ... в общем странное требование. Но если это требование, то почему не учтено в модели решения? Так и планируем поиск места для магазина: по чёткому требованию/критерию.
... получать оборот =10*10*0.1*50 ... - откуда взялась цифра? Как минимум желательно указать сколько часов продаём (очень важный параметр, нет?). Вообще расчёты немного непонятны.
В общем, по моему скромному мнению:
либо вы очень крутой аналитик, поэтому читателей пытаетесь научить с букваря, сами себя поправляя и готовя ловушки для читателя;
я к тому, что может начать с примеров по-проще и ближе к реальности.
Myclass
02.11.2022 11:58+1Вот что за фигня такая? Человек берёт время и прорабатывает кои-какие высказывания из статьи, конструктивно указывает на погрехи или неточности, а ему кто-то слепо минусует.
EugeneSkorikov Автор
02.11.2022 19:24Жаль, что вам не зашло. Цель статьи - показать на простом жизненном примере чем требования отличаются от модели. Цель Васи (goal) - обеспечить себе достойную прибыль (подразумевается, хотя вы правы, стоило указать), цель Васи (objective) - сделать магазин на Охотном ряду.
Смысл примера в том, что требования заказчика могут (и чаще всего так и бывает, особенно по расходам и срокам) быть не выполнимы. И это нормально. Пока требования не связаны, невозможно проверить выполнимость. Задача аналитика зачастую - выявить функцию штрафа, "на сколько сроки можно нарушить" - или более точно "к каким последствиям для бизнеса приведет какое нарушение этого требования". И создать решение с наименьшим штрафом.
Расчеты в статье, разумеется, взяты с потолка. В реальности, модель анализа рынка в конкретной точке - предмет отдельной статьи (или книги). Смысл - показать, что требование по обороту не выполнено и насколько не выполнено. Или более точно стоит говорить, каким качеством "оборот" обладает спроектированное решение (и не нужно путать оценку качества модели решения с требованием к модели решения)
Grigorenkovic
02.11.2022 13:05"Проектирует несколько вариантов моделей решения" - это задачи для методолога, который на основании полученных от аналитика требований и изученных на опыте ограничений и возможностей начнет проектировать.
EugeneSkorikov Автор
02.11.2022 19:27Почему вы так решили? Методолог, судя по названию, разрабатывает методику реализации каких-то работ. Вероятно, вы имели в виду "архитектора". Но в жизни проектированием моделей (функциональных моделей) занимается именно аналитик. Иначе он не может сопоставить различные требования к решению (и проекту решения) и понять что выполнимо, а что нет. Вариативность возникает из-за того, что требования/потребности не всегда определяют решение однозначно
Myclass
Не согласен с вами. Аналитик - это специалист, который конечно-же может кое-что предложить, как решить проблему, за что взяться в начале, а за что потом. Но в первую очередь он анализирует. Данные, процессы, условия итд. Да, он должен находить закономерности, но чтобы сразу - в деталях ход и способы достижения требований! Это чересчур. Уже составить правильный каталог с требованиями как фукциональными так и не-функциональными - уже это создать - немалый талант нужен.
EugeneSkorikov Автор
Да, вы правы. Я намерено указал в статье то, как советует Вигерс и Ко, как будто аналитик после цели начинает с требований. В реальности, он разумеется, начинает с моделей использующих систем. Цель статьи - показать различие моделей проектируемой системы и требований к ней.