Демистификация ИТ-архитектуры
В рамках одного корпоративного курса по ИТ-архитектуре началось обсуждение, которое мне хочется вынести на более широкую аудиторию
В ИТ-архитектуре есть много практик, которые при внешнем сходстве довольно сильно различаются между собой. Например, описание текущей архитектуры вещь более-менее формализуемая. Здесь подходят строгие нотации, всякие UML, archimate, формальные языки описания aka ADL, да и вызывающее все больший интерес architecture-as-a-code – тоже сюда. А вот проектирование, особенно верхнеуровневое и концептуальное, решительно восстает против всех этих скучных вещей. Здесь нужны эскизы, быстрые наброски для обсуждений и непрерывной переделки. Нотация здесь: boxes and arrow. Все это как-то более или менее понимают, ну или воспринимают на уровне ощущений.
Таких противопоставлений можно насобирать десяток, может больше. Кроме fact-decision (он же as is против to be), есть еще противопоставление контекста и внутренней структуры, анализа и проектирования и т.д.
Но самое интересное происходит дальше. В какой-то момент противоречивые практики начинают сливаться в единое целое. Так в архитектуре решений (solution architecture) мы делаем карандашные наброски, элементами которых является вполне себе реальные приложения из CMDB, документированные вдоль и поперек API и описанные источники данных. Если делать не так, а просто рисовать произвольные фигурки со стрелочками, то архитектура решения не сложится. Нельзя так делать. Архитектура решения - это набросок изменения, нарисованный от руки поверх строгих, актуальных и выверенных as-is диаграмм. При этом, специфицировать решение с точностью до последнего гвоздя, да еще в правильных нотациях тоже никто не будет…
Не это ли в ИТ-архитектуре самое интересное?