Квалификация |
"Идеальный архитектор - книгочей, математик, знаток истории, прилежный последователь философии, знаком с музыкой,
не игнорирует медицину, обучен праву, знает астрономию и разбирается в астрономических вычислениях." - Vitruvius,
circa 25 г. до н. э.
В общем и целом, разработчик архитектуры должен обладать широким кругозором, мощным интеллектом, проницательностью и
опытом, позволяющими быстро усваивать новое и выносить обоснованные, критические суждения в отсутствие полной
информации. Говоря более конкретно разработчик или участник коллектива разработки архитектуры должен обладать
следующими навыками:
-
Опыт как в области решаемой задачи, что влияет на полноту понимания требований, так и в области создания
программного обеспечения. Если в разработке архитектуры принимает участие несколько сотрудников, эти качества могут
быть распределены между ними, но как минимум один проектировщик должен обладать полным видением проекта.
-
Навыки лидера - требуются для направления усилий коллектива, для принятия критических решений под давлением
и для обеспечения их выполнения. Разработка будет эффективной в том случае, если разработчик архитектуры и
руководитель проекта работают вместе, причем в ведении разработчика архитектуры находятся технические вопросы, а в
ведении руководителя проекта - административные. Разработчик архитектуры должен обладать правами, достаточными для
самостоятельного принятия технических решений.
-
Коммуникабельность - необходима для установления доверительных отношений, убеждения, мотивировки и
наставления других участников проекта. Решения архитектора программного обеспечения будут эффективно выполняться
лишь в том случае, если с ним согласен весь коллектив проекта. Эффективная работа разработчика архитектуры возможна
только в том случае, если он заслужил уважение со стороны коллектива разработчиков, руководителя проекта, заказчика
и сообщества пользователей, а также управляющего коллектива.
-
Целеустремленность и активность с жесткой нацеленностью на результат. Разработчик архитектуры должен
направлять техническую сторону разработки, а не изобретать призрачные проекты. Успешная карьера разработчика
архитектуры представляет собой длинную цепочку условно оптимальных решений, сделанных без уверенности и под
давлением. При работе над проектом успеха могут достигнуть только люди, способные сконцентрироваться на задачах.
Что касается необходимого опыта, разработчик архитектуры должен обладать способностями Проектировщика. Однако разработчик архитектуры, в отличие от
проектировщика:
-
специализируется на общих, а не на конкретных задачах, обладая общим пониманием многих технологий, а не подробным
знанием нескольких;
-
принимает более общие технические решения, поэтому ключевыми для него являются широкий охват знаний и опыта, а
также коммуникабельность и навыки лидера.
|
Подходы к назначению |
Если размер проекта требует формирования коллектива разработчиков архитектуры, необходимо обеспечить многообразие их
способностей и опыта при одинаковом общем понимании процесса разработки. Коллектив разработчиков архитектуры не должен
быть комитетом представителей различных рабочих групп или сторон, заключивших контракт. Разработка архитектуры
программного обеспечения требует полной отдачи.
В небольших проектах роль разработчика архитектуры и руководителя проекта может выполнять один и тот же человек. Это
допустимо, однако лучше, чтобы эти роли выполняли различные сотрудники - это гарантирует, что в случае недостатка
времени и перегрузки задачами одного рода другие задачи также будут учтены.
|