Кто такой solution architect
2019-08-28 14:51:12 +0600 +0600
This is meta description
Кто такой архитектор и для чего он нужен?
Я постараюсь описать только свое видение того, кто это то. Что он или она должны делать. Очевидно, что архитектор это тот кто как-то связан с архитектурой. А что такое архитектура ? Микросервисы это архитектура ? Диаграмма классов это архитектура? Вот что говорит википедия про архитектуру:
Software architecture refers to the fundamental structures of a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.[1] The architecture of a software system is a metaphor, analogous to the architecture of a building.[2] It functions as a blueprint for the system and the developing project, laying out the tasks necessary to be executed by the design teams.[3]
https://en.wikipedia.org/wiki/Software_architecture
В то же время немного погуглив можно найти описание от Microsoft
Software application architecture is the process of defining a structured solution that meets all of the technical and operational requirements, while optimizing common quality attributes such as performance, security, and manageability. It involves a series of decisions based on a wide range of factors and each of these decisions can have considerable impact on the quality, performance, maintainability, and overall success of the application.
Если еще погуглить, то можно узнать, что существует стандарт ISO/IEC/IEEE 42010 (Systems and software engineering — Architecture description ) эти ребята придумали свое описание. Ссылку не привожу так как у меня книжка в бумаге распечатывать или скачивать ее довольно долго. Гуглить можно долго и определений самого термина можно найти много.
Кстати есть таки парни SEI они на архитектуре собаку скушали - они нашли более 200 определений того, что такое архитектура
Я думаю, что ты дорогой читатель, наверное из технической сферы или около технической сферы. (Если нет то что ты тут делаешь? Вот тебе ссылка на котиков
Так вот, все определение, которые вы найдете говорят примерно про одно и тоже, но совсем по-разному. Давай думать чем занимаются все айти сыроеды, они занимаются только одной вещью -
Решают проблемы бизнеса или конечного потребителя.
Конечный продукт который получается на выходе из-под команды разработки, это решенная проблема бизнеса или заказчика. Каждая проблема имеет описание и видение того, как ее решать. Определение которое я предлагаю в дальнейшем использовать ну или просто держать в голове.
Архитектура это задокументированный способ(виденье) решения глобальной проблемы бизнеса.
Многие взрослые дядьки со мной могут не согласится, ну что ж попробуйте меня убедить в обратном. Перед дальнейшем описанием кто такой архитектор и для чего он нужен надо ввести три координатных определения которые мы будем часто использовать в блоге (View, Viewpoint, Structure)
View - визуальное отображение конкретной проблемы в общедоступной нотации.
Если просто view это документ, который описывает решение проблемы. Его задача перенести решение которое у вас голове на бумагу
Viewpoint - это способ или набор инструментов для создания View.
Если кратко, то между архитектором и разработчиком должна быть терминология и инструментарий который позволит им говорить на одном языке. Заказчики всегда далеки от It программисты не знают о бизнесе.
Например : знаешь ли ты дорогой товарищ что такое сальдо? (не гугли) - а вот бухгалтера знают. Но бухгалтера не знают что такое полиморфизм
Structure - созданное (запрограммированное) view.
Пример: описание табличек в базе - это database view , созданные таблички в базе или в SQL - это databse structure
Описанных выше терминов будет вполне достаточно для формирования моего видения кто такой solution architect
Solution architect - это человек который на вход получает требования, и информацию которую можно конвертировать в дизайн проекта, на выходе производит дизайн проекта(views), После того как дизайн проекта создан, архитектор вовлечен в имплементацию структуры описанной в дизайне
Выше приведена картинка которая схематично отображает зачем нужен архитектор что он делает
Важно обратить внимание на слово вовлечен в названии и слово influence на диаграмме. Дело в том что архитектор может управлять командой разработки а может и не управлять. Так же архитектор может заниматься программированием а может и не заниматься программированием. Степень вовлеченности архитектора полностью определяется нуждами проекта.
ВИДЫ архитекторов:
После того как мы поняли кто такой архитектор. Затем узнали за что он отвечает (помните про слово вовлечен в названии и слово influence). Остается ответить на последний вопрос: что он реально делает? Для этого надо узнать виды архитекторов. Я разделяю три вида архитекторов (enterprise architect, solution architect, software architect ). Бывают много других видов архитекторов: Business architect, QA Architect, Presales architect, Infrastructure architect, но они или не технические люди или редко встречаются в дикой природе энтерпрайза.
Enterprise architect - высокоуровневый архитектор который размышляет о бизнес целях, бизнес задачах, стратегиях и о том, как действительно принести выгоду бизнесу.
Создает задачи вида: надо уменьшить стоимость содержания клауд энвайромента.
Solution architect - Работает в контексте который формирует Enterprise architect. Решает проблему, которую определил бизнес. Создает задачи вида: надо уменьшить стоимость содержания клауд энвайромента в aws. Решать будем так - переписываем 10 сервисов на aws лямбду.
Software architect - Технический архитект, (Тех лид в обычных реалиях). Является техническим экспертом который пытается решать проблемы поставленные SA архитектором.
Software architect ставит задачи разработчикам. отрефакторите бизнес логику так, чтобы 10 сервисов заменились лямбдами
В следующей статье я более детально поговорю, бизнес архитектуре и входных данных для архитектора
ВИДОСИКИ
ЧТО МОЖНО ПОСМОТРЕТЬ
ЧТО МОЖНО почитать
- https://www.amazon.com/Software-Architecture-Practice-3rd-Engineering/dp/0321815734
- https://www.amazon.com/Documenting-Software-Architectures-Views-Beyond/dp/0321552687/ref=sr_1_1
- https://www.amazon.com/Software-Systems-Architecture-Stakeholders-Perspectives/dp/032171833X/ref=sr_1_1
- https://dou.ua/lenta/articles/how-to-become-solution-architect/