Но я тут опять про архитектурное моделирование, ибо накипело.
"А что мы вообще тут делаем?" или почему архитектор - лучший друг менеджера
Я ненавижу ремонт. Терпеть не могу всю эту грязь, пыль, торчащие трубы и обломки плитки. Но куда деваться. Иногда все-таки надо и обои поменять, и плитку в ванной переложить.
Мой самый страшный сон - начинать ремонт без плана...
Закупили обои. Начали клеить - не хватило одной полосы. Надо еще целый кусок покупать, а в магазине эта серия уже распродана, новый рулон не попадает по цвету... Положили красивый керамогранит на "глаз", и теперь дверь стандартного размера не входит в проем - надо делать на заказ, это и время, и деньги. И оно всё тянется, тянется и тянется...
Примерно то же самое происходит в IT-проектах без предварительного архитектурного моделирования. Команда работает, старается, но что-то постоянно не стыкуется, результата нет, заказчик нервничает.
Архитектурная модель — это как чертёж дома перед стройкой. Она чётко определяет:
- ЧТО мы строим и из ЧЕГО, каких элементов оно состоит (микросервисы, модули, компоненты)
- КАК эти элементы взаимодействуют между собой (API, очереди сообщений)
- КАКИМИ свойствами должны обладать эти элементы (реализуемые функции, отказоустойчивость, производительность)
Когда есть такая модель, задачи на разработку формулируются не абстрактно ("доработать функционал оплаты"), а конкретно: "реализовать сервис платежного шлюза с поддержкой отмены транзакций и временем отклика до 200мс".
При тестировании мы проверяем не "работает/не работает", а соответствие элементов модели заявленным характеристикам.
Без архитектуры вы как прораб, который не знает, сколько этажей в строящемся здании и где будет вход. Можно ли в такой ситуации сказать, на каком этапе находится стройка? 🤔
Архитектурная модель — это общий язык для всех участников. Когда разработчик, тестировщик и менеджер говорят о "сервисе аутентификации", они имеют в виду одно и то же, а не три разные вещи.
Архитектура - это не просто квадратики и стрелочки, она определяет разбиение системы на части и задаёт названия этих частей, задаёт словарь, с помощью которого формулируются задачи на изготовление или доработку частей. Архитектура разбивает большую задачу на множество задач попроще, которые можно выполнять и отслеживать по отдельности. Это сильно упрощает и разработку, и отслеживание хода работ.
Так что если хотите знать, где вы находитесь в проекте и куда движетесь — начните с создания архитектурной модели. Иначе рискуете построить вместо дома что-то среднее между сараем и космическим кораблём. Причем сарай почему-то получается чаще...