Вы знаете этого парня. Он «самый умный парень» в комнате, и ему всегда есть что сказать, когда идет горячая дискуссия о новой архитектуре системы.

Его мнения суперсильны и основаны на «фактах» и личных анекдотах, полученных за годы плавания в этой области. Он всегда может найти пример финансовой системы, которую он разработал с помощью C #, или игрушечного проекта, который он построил с помощью Ruby. Он утверждает, что Node.js предназначен для детей, а Erlang слишком экзотичен.

И да, у него 15-летний опыт работы, так что остерегайтесь его экстремальных знаний. Он дерзок, так как несколько лет назад построил «отличную» систему.

Вот Анекдотический Архитектор.

Проблема в том, что у этого парня очень мало информации на бумаге. Никакие факты и измерения, подтверждающие, что его технология, не подходят для контекста. Никаких данных, кроме одного-двух анекдотов, но он умеет продавать и озвучивать свои мысли.

Он Дональд Трамп из отдела архитектуры программного обеспечения, который с серьезным видом продает ложь и личные предубеждения. Диаграммы, данные и измерения недостаточно гибки. Иногда ему везет, и он выстраивает систему выигрышей, как пьяному парню везет в субботу вечером.

Что противоположно анекдотическому архитектору? научный архитектор.

Архитектор научного программного обеспечения соблюдает принцип показывать и не рассказывать. Вместо того, чтобы просто озвучивать свои мысли, он подкрепляет свою гипотезу прототипами (кодом), диаграммами, документами, данными, измерениями и инсайтами. Все четко и задокументировано.

Научный архитектор много читает, использует силу исследования и ставит под сомнение все, включая свой «здравый смысл» и опыт. Его здравый смысл может заставить его проглотить «синюю таблетку», поэтому он очень осторожен.

Ему не нужно говорить чушь, чтобы убедить Тебя. Достаточно взглянуть на код, диаграммы и его числа, основанные на его экспериментах.

Визуальный архитектор покажет вам функцию пригодности, которая желательна для системы, и измерения, которые доказывают, что архитектурное решение является хорошим выбором, но все же что-то, что со временем нужно улучшать и развивать.

Визуальному архитектору всегда есть что показать. У него интересная история, и он избавляется от эгоизма и предубеждений в пользу надежных данных.

Визуальный архитектор идет на компромисс только для того, чтобы принять правильное решение. Он знает, что не знает всего, поэтому использует дивергентное мышление, прототипирование и измерения, чтобы прийти к решению.

Его архитектурный выбор - отличное решение проблемы, и он доказывает это, сравнивая его с X различными технологиями и измеряя лучший вариант с инструментами производительности, нагрузочного тестирования и безопасности.

Он решает не использовать свой любимый язык, поскольку он не подходит для высокопроизводительной системы, которую строит команда. Он решает использовать GoLang вместо Ruby, потому что он понимает мощь AsyncIO, соответствующее потребление аппаратных ресурсов и измерил превосходную пропускную способность под нагрузкой, которая удовлетворяет нефункциональным требованиям и желательной функции пригодности для конкретной системы, которую необходимо построить. . Он ценит простоту и лаконичность языка для облегчения обслуживания. Он отказался от других прототипов, поскольку они не могли соответствовать требованиям, основанным на его измерениях, но он готов пересмотреть это решение позже.

У него есть четкое представление о том, как предлагаемое решение влияет на ремонтопригодность, производительность, масштабируемость, надежность, отказоустойчивость и другие важные параметры. Он знает цель архитектуры и почему предложенное решение подходит, но он знает, что все сделано на ставку.

Последний вопрос: Какой вы архитектор?