Здравствуй, ЛОР. Предлагаю обсудить профессию, по-английски называемую «Enterprise Architect», а по-русски — как придется, чаще всего «системный архитектор» или просто «архитектор».
Пожалуй, больше нигде я не встречал столь неоднозначного отношения к этой профессии, как на ЛОРе. Иногда в это слово вкладывается чуть ли не ругательный смысл. Я думаю, если есть критика, то есть и ее причины — а мне особенно интересно понять, как обстоят дела с этой профессией в России и странах СНГ.
И вот почему. Многие мои друзья и коллеги, оставшиеся в России (особенно молодежь), часто спрашивают меня: какими я вижу перспективы развития молодого талантливого программиста? Вопрос закономерный — всю жизнь работать программером не будешь. У этой профессии есть весьма ощутимый потолок, как в смысле финансов, так и в смысле развития. (К тому же, в последние годы профессия стремительно теряет престиж, но это тема для отдельного обсуждения.) Общепринятое мнение на эту тему таково, что для программиста есть два карьерных пути: управленческий и экспертно-технический. Иными словами, либо идти в проджект-менеджеры и выше, либо — в архитекторы. Но насколько это актуально для реалий российского IT XXI века? Если с управленцами все более-менее понятно, то какова роль архитектора? Давайте выясним.
Начну с себя. По многолетнему опыту работы им самым, могу сказать, что «архитектором» эта профессия называется не зря. Параллелей со строительством очень много. Только обычный архитектор делает чертежи зданий, а enterprise architect — «чертежи» программных систем, в общепринятой нотации (чаще всего UML), понятной всем IT-специалистам. «Строительные материалы» (технологии) выбирает архитектор, в соответствии с требованиями. В задачи enterprise architect также входит работа с аналитиками и постановщиками (чтобы понять, что именно чертить), с проджект-менеджером и разработчиками («прорабом» и «строителями»). В процессе разработки — непрерывный контроль за тем, чтобы «строители» клали «кирпичи» в четком соответствии с чертежами. В некоторых случаях архитектор берет на себя реализацию исключительно сложных частей программы. Определение требований к аппаратному обеспечению, планирование развертывания, контроль за его осуществлением, планирование нагрузочных и функциональных тестов — все это архитекторские задачи. В последнее время стали востребованы freelance architects, т.е. архитекторы по контракту, на один проект. По своему опыту могу сказать, что эта схема является выигрышной для обеих сторон. Работодателя избавляет от необходимости содержать дорогостоящего специалиста в промежутках между проектами (ведь такие промежутки могут составлять месяцы и годы). А архитектора освобождает от корпоративного рабства и позволяет ему работать в режиме полгода на проект — полгода на хорошую жизнь (отдохнуть, попутешествовать, заняться творчеством, наукой, преподаванием и т.п.)
Но, оговорюсь, это все сугубо европейский опыт. А как дела обстоят в России и СНГ? Как ты считаешь, ЛОР? Действительно ли архитектор — это необходимая профессия, вершина развития программиста по техническому пути, ключевая позиция при разработке крупных систем? Или же это бездельник, обвешанный фантиками-сертификатами, сыплющий баззвордами и получающий деньги ни за что?