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

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

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

Свойства
Несколько вхождений
Необязательный
ЗапланированныйYes
Персонал
Квалификация

"Идеальный архитектор - книгочей, математик, знаток истории, прилежный последователь философии, знаком с музыкой, не игнорирует медицину, обучен праву, знает астрономию и разбирается в астрономических вычислениях." - Vitruvius, circa 25 г. до н. э.

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

  • Опыт как в области решаемой задачи, что влияет на полноту понимания требований, так и в области создания программного обеспечения. Если в разработке архитектуры принимает участие несколько сотрудников, эти качества могут быть распределены между ними, но как минимум один проектировщик должен обладать полным видением проекта.
  • Навыки лидера - требуются для направления усилий коллектива, для принятия критических решений под давлением и для обеспечения их выполнения. Разработка будет эффективной в том случае, если разработчик архитектуры и руководитель проекта работают вместе, причем в ведении разработчика архитектуры находятся технические вопросы, а в ведении руководителя проекта - административные. Разработчик архитектуры должен обладать правами, достаточными для самостоятельного принятия технических решений.
  • Коммуникабельность - необходима для установления доверительных отношений, убеждения, мотивировки и наставления других участников проекта. Решения архитектора программного обеспечения будут эффективно выполняться лишь в том случае, если с ним согласен весь коллектив проекта. Эффективная работа разработчика архитектуры возможна только в том случае, если он заслужил уважение со стороны коллектива разработчиков, руководителя проекта, заказчика и сообщества пользователей, а также управляющего коллектива.
  • Целеустремленность и активность с жесткой нацеленностью на результат. Разработчик архитектуры должен направлять техническую сторону разработки, а не изобретать призрачные проекты. Успешная карьера разработчика архитектуры представляет собой длинную цепочку условно оптимальных решений, сделанных без уверенности и под давлением. При работе над проектом успеха могут достигнуть только люди, способные сконцентрироваться на задачах.

Что касается необходимого опыта, разработчик архитектуры должен обладать способностями Проектировщика. Однако разработчик архитектуры, в отличие от проектировщика:

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

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

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

Дополнительные сведения