В проектах по разработке программного обеспечения необходимы люди, которые играют в построении продукта ту же роль, что и традиционные архитекторы при строительстве или реконструкции зданий. Но в программных системах никогда не существовало полной ясности по поводу того, какие решения являются прерогативой архитектора, а какие можно оставить людям, занимающимся реализацией. Сложности с определением функций архитектора в программном проекте обусловлены тремя факторами: отсутствием традиций, нематериальной природой продукта и сложностью системы. (Панорама выполнения архитектором своих функций в крупной организации, занимающейся разработкой ПО, представлена у Гринтера [Grinter 1999].)
В частности:
• Архитектор-строитель может обратиться к тысячелетней истории и посмотреть, как работали архитекторы прошлого. Он может посещать и изучать здания, которые стоят сотни, а иногда и более тысячи лет, и все еще используются. История программной отрасли насчитывает всего несколько десятков лет, а наши разработки часто не предназначены для публики. Кроме того, у архитекторов-строителей давно существуют стандарты для описания чертежей и спецификаций, благодаря чему современные архитекторы могут пользоваться документированной историей архитектуры.
• Здания являются материальными продуктами; существуют принципиальные различия между планами, созданными архитектором, и зданием, построенным рабочими.
В крупных программных проектах часто участвует много архитекторов. Некоторые архитекторы обладают узкой специализацией (скажем, базы данных или сети) и обычно работают в составе групп, но в тексте книги мы будем предполагать, что архитектор только один.
Related posts:
- Роль архитектора
- Функции архитектора
- Сочинение музыки и программные архитектуры
- Какую функциональность продукт предложит своим пользователям?