На последнем митапе меня обвинили в излишнем снобизме по отношению к аналитикам. Успех ящитаю. Теперь добавим пафоса.
Например, эту идею анализа решений можно обозвать Trade-offs Analysis Framework - ToAF. Красиво же?
Но почему-то я не слышал про аналоги, хотя есть достаточно форматов для фиксации решений. Пошел гуглить, раскопал ATAM - Architecture Trade-Off Analysis Method.
Тяжеловесный метод для обстоятельной оценки решений, который за 15 лет особой популярности не набрал. Полный процесс анализа пересказывать не буду, выделил интересное.
Метод крутится вокруг измеримых quality attributes (они же НФТ), хотя ничто не мешает смотреть на другие характеристики. Причем работают с ними через Quality Attribute Scenario, которые связывают атрибуты качества и конкретные цифры, что-то в таком духе:
При падении primary DB при пиковой нагрузке (более 5000 заказов в минуту) система должна восстановить обработку заказов не более чем за 30 секунд без потери уже подтверждённых заказов.
Если хочется формальности, то можно использовать шаблон:
- Source: отказ primary DB
- Stimulus: primary DB недоступна
- Environment: нагрузка 5 000 заказов/мин
- Artifact: система обработки заказов / persistence layer
- Response: failover и возобновление обработки
- Response measure: восстановление ≤ 30 с; потерянных подтверждённых заказов = 0
Дальше из таких сценариев собирается Utility Tree (Дерево Полезности?), где для каждого листа указываем важность и степень риска: Low, Medium, High. Фактически, это аналог приоритезированной таблицы. Примеры на картинках.
Отдельно при анализе выделяют:
• sensitivity point - решение или его часть, которое сильно влияет на один из quality attributes
• tradeoff point - решение, которое влияет сразу на несколько quality attributes, причем двигает значения в разные стороны.
Полезные термины, т.к. заставляют думать о последствиях.
Идея идти от сценариев хороша, т.к. помогает ответить на вопрос: а какие quality attributes или характеристики системы в широком смысле нам сейчас важны? Правда на больших задачах там будет 100500 таких сценариев, и придется думать об их полноте.
В целом подход выглядит интересно прикольно, но сложно. Хотя можно для небольших решений адаптировать.
• Если есть желание упороться, вот большое подробное описание метода
• Еще можно посмотреть, как ATAM использовали на реальном проекте, картинки из этой презы утащил.
Мб кто-то пробовал на практике? Как впечатления?

