Про архитектора и аналитика
Давайте поговорим о такой роли, как архитектор, точнее о тех, кого принято называть солюшен архитектором (Solution Architrect).
Для начала я расскажу, как я себе понимаю эту роль.
Solution Architrect – это роль, целью которой является проектирование архитектуры информационной системы. Под архитектурой информационной системы я понимаю некоторый артефакт, определяющий разделение информационной системы на компоненты и логику интеграции / взаимодействия этих компонентов между собой. Компоненты обеспечивают реализацию отдельных функций системы. Интеграция компонентов обеспечивает комбинированное функционирование компонентов системы, благодаря которому становится возможным достижение стоящих перед нею бизнес-целей.
В общем случае функции, реализуемые отдельными компонентами системы, не имеют конечного прикладного значения для пользователей. Т.е. речь идет не о бизнес-функциях, а о прикладной логике. Поэтому информационная система и является системой, что представляет собой совокупность программных компонентов, объединенных в такую конфигурацию, которая обеспечивает достижение поставленных целей.
Отсюда вытекает, что:
Давайте вернемся к первому пункту. Из него следует, что архитектура не является артефактом, вытекающим из результатов прямой детализации бизнес-требований (хоть и зависит от них). Но с другой стороны детализация требований неминуемо приводит нас к тому, что мы должны определять системные требования, на основе которых будет разрабатываться / детализироваться архитектура, проектироваться конкретные компоненты и схемы их интеграции. Т.е. решение задачи анализа должно перейти из плоскости бизнеса в системную плоскость, а на передовой проекта бизнес-аналитика сменяет системный аналитик (поскольку архитектор не может этого сделать, не начав системный анализ).
Но как системный аналитик может делать эту работу, не понимая и не принимая во внимание ту концепцию, которую архитектор закладывает в систему? Вот и выходит, что системный аналитик должен владеть базовыми знаниями архитектурного проектирования, иначе он не сможет пропустить бизнес-требования через концепцию архитектуры и привести системный анализ к тому результату, который позволит эту концепцию реализовать. А архитектор должен его на этом пути задрайвить. Т.е. архитектор должен хорошо владеть инструментами бизнес- и системного анализа.
Взаимосвязь разработки требований и проектирования архитектуры показана на рисунке (построенную на основе структуры требований, описанной здесь).
Именно исходя из этого я всегда говорю, что системный аналитик должен иметь хороший бэкграунд разработчика, а хорошего архитектора не вырастить без бэкграунда системного анализа. Но это очевидно – все сложные роли цветут на кроссфункциональности.
Обобщая всё это, напрашивается вывод, что техническое управление системным анализом должен осуществлять архитектор.
Для начала я расскажу, как я себе понимаю эту роль.
Solution Architrect – это роль, целью которой является проектирование архитектуры информационной системы. Под архитектурой информационной системы я понимаю некоторый артефакт, определяющий разделение информационной системы на компоненты и логику интеграции / взаимодействия этих компонентов между собой. Компоненты обеспечивают реализацию отдельных функций системы. Интеграция компонентов обеспечивает комбинированное функционирование компонентов системы, благодаря которому становится возможным достижение стоящих перед нею бизнес-целей.
В общем случае функции, реализуемые отдельными компонентами системы, не имеют конечного прикладного значения для пользователей. Т.е. речь идет не о бизнес-функциях, а о прикладной логике. Поэтому информационная система и является системой, что представляет собой совокупность программных компонентов, объединенных в такую конфигурацию, которая обеспечивает достижение поставленных целей.
Отсюда вытекает, что:
- Архитектура системы является чисто техническим артефактом, не дающим бизнесу ни малейшего понятия о том, как он будет использовать систему в своих целях
- Архитектура системы является отправной точкой технического проектирования и реализации системы
- Признаком наличия архитектуры является наличие спецификации входящих в систему программных компонентов, их интерфейсов и потоков их взаимодействия
- Архитектура системы подразумевает наличие некоторой концепции системы, определяющей базовые принципы ее построения (общая идея архитектуры, разделение бизнес-логики по базовым компонентам, базовый функционал, и т.п.), которым архитектор будет чётко следовать на протяжении жизненного цикла системы.
Давайте вернемся к первому пункту. Из него следует, что архитектура не является артефактом, вытекающим из результатов прямой детализации бизнес-требований (хоть и зависит от них). Но с другой стороны детализация требований неминуемо приводит нас к тому, что мы должны определять системные требования, на основе которых будет разрабатываться / детализироваться архитектура, проектироваться конкретные компоненты и схемы их интеграции. Т.е. решение задачи анализа должно перейти из плоскости бизнеса в системную плоскость, а на передовой проекта бизнес-аналитика сменяет системный аналитик (поскольку архитектор не может этого сделать, не начав системный анализ).
Но как системный аналитик может делать эту работу, не понимая и не принимая во внимание ту концепцию, которую архитектор закладывает в систему? Вот и выходит, что системный аналитик должен владеть базовыми знаниями архитектурного проектирования, иначе он не сможет пропустить бизнес-требования через концепцию архитектуры и привести системный анализ к тому результату, который позволит эту концепцию реализовать. А архитектор должен его на этом пути задрайвить. Т.е. архитектор должен хорошо владеть инструментами бизнес- и системного анализа.
Взаимосвязь разработки требований и проектирования архитектуры показана на рисунке (построенную на основе структуры требований, описанной здесь).
Именно исходя из этого я всегда говорю, что системный аналитик должен иметь хороший бэкграунд разработчика, а хорошего архитектора не вырастить без бэкграунда системного анализа. Но это очевидно – все сложные роли цветут на кроссфункциональности.
Обобщая всё это, напрашивается вывод, что техническое управление системным анализом должен осуществлять архитектор.