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

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

Я решаю эту проблему, двигаясь сверху вниз. Строю своеобразный план артефакта. Какие аспекты важно покрыть в среднем по больнице? 🔹 Критические важные decisionы. Их обычно бывает максимум 3 штуки и они формируют основу solutionа. 🔹 Whiteboard. Верхнеуровневое описание решения в виде диаграммы компонентов или процесса. 🔹 Внешние интерфейсы. Как изменяемая система взаимодействует с внешними системами. Здесь диаграмма, протоколы интеграции и ADR. 🔹 Внутренние интерфейсы. Как компоненты или шаги (в случае процесса) взаимодействуют друг с другом. Здесь диаграмма, протоколы интеграции и ADR. 🔹 Схема данных. ER диаграмма с crow's foot нотацией, которая покрывает только самые значимые поля (id и timestamp здесь упускаются), остальные поля есть кому доработать. Юз кейсы работы с данными на чтение и запись с акторами (кто и что запрашивает и записывает). Ну и конечно ADR. 🔹 Топики. Это бизнесовая область разбитая на под области.

Как выявить эти подобласти? Помните как мы определяли Inputы и Outputы у системы? А теперь мы опредляем Core Functions. Это действия (глаголы), которые описывают как Input превращается в Output. Например "Сформировать профиль сотрудника" для Inputа "Данные сотрудников" и Outputа "Профиль работника" из примера в прошлом посте. Core Functions и есть наши топики.

⚡Итого мы имеем каркас решения, с которым сложно упустить важные решения (decision).

Вот примеры готовых архитектурных спек с описанным планом.

А как вы боретесь с тем, чтобы не упустить важные аспекты решения?


В этом посте были ссылки, но мы их удалили по правилам Сетки

Как покрыть все важные аспекты архитектуры?
Часто ли у вас случалось закончить архитектурный артефакт и потом понять, что один важный аспект вы забыли покрыть? Это реворк и это печаль | Сетка — социальная сеть от hh.ru