А нужен ли архитектор в современной разработке?

Я давно размышляю на тему архитектуры и роли архитектора в современной разработке. Если следовать Agile принципам и подходам, то лучшая архитектура получается синергией усилий всех вовлеченных в процесс разработки людей, включая разработчиков, тестировщиков, менеджеров и т.д. Я всегда считал, что выделенный архитектор – это скорее надуманная роль, для того чтобы “дуть щеки” и претендовать на большую зарплату. Недавно посмотрел видео доклада от Martin Fowler и Erik Dörnenburg под названием “Architecture without architects”:

В этом докладе также звучит посыл, что основная роль архитектора должна распределяться по командам за счет разделения системы на сервисы. Тогда он принимает минимум глобальных решений и всего лишь формулирует некие общие правила и принципы, которые будут использоваться всеми командами в разработке. Он также может отвечать за представление общей картины на проекте, но не более чем. Но ни в коем случае архитектор не должен быть нянькой для разработчиков, которая все придумала за них, расписала в деталях, позаботилась об отсутствии противоречий и проблем, а разработчикам остается это все реализовать. Это недопустимый сценарий. До работы в большой компании я был на 200% согласен с авторами доклада.

НО! Во всех этих размышлениях делается предположение, что разработчики имеют достаточно опыта в технологическом стеке и современных архитектурных/дизайн подходах, понимают что такое нефункциональные требования, мыслят всегда скептически по поводу любой реализации и подвергают ее сомнению, разбираются в хранилищах данных и способны сделать гибридное решение под определенную проблему, умеют погружаться в бизнес проблемы заказчика и формулировать решения на базе своего опыта и знаний. К сожалению, в наших реалиях такие разработчики – большая редкость. В основном “погонщики”, “гребцы” и “младшие гребцы”. Именно поэтому в большинстве проектов нужен тот самый архитектор, который придет и разработает целостное решение для проблем бизнеса, оставив разработчикам поле для деятельности на уровне дизайна компонент, сервисов, кода.

Так что не все так однозначно. С одной стороны, ко мне вернулась вера в архитектора и его пользу на проекте. С другой стороны, печально наблюдать такой колоссальный разрыв в развитии IT индустрии в Штатах, Европе и у нас тут. Но мы будем стараться, правда? 😉

Обсуждение (6)

Так я ровно это и сказал: в наших реалиях невысокой квалификации самих разработчиков зачастую без архитектора нереально ничего сделать.

Поставлю под серьезное сомненье высказывания высказывания Николая и про бум и про ненадобность архитекторов в виду многих причин. Пару примеров из крайних проектов:
1. Под RFP была разработана и продана архитектура. После чего заказчик отдал проект на выплнение, будучи полностью уверенным, что у исполниителя есть 100% четкое понимание нужд заказчика, как их решать, и что проект будет ваполнен в срок и рамках бюджета.
2. Одна из команд у меня сначала кричала – “Мы agile, мы agile !!!”, после нескольких спринтов – “Дайте спецификацию, ибо все agility привело не очень веселым результатам.”

С многими зарубежными общался на эту тему на конфах. Трансформируются. А у нас наоборот бум на солюшен архитекторов. 🙁

А почему ты думаешь, что колоссальный разрыв?
Два продвинутых чувака рассказали своё видение того, как это должно быть. Это же не значит, что оно уже сейчас у всех так.

Я смотрел его доклады и общался лично. Книжка, к сожалению, еще в списке на прочтение. 🙁

Наверняка ты читал Ньюмана “Building Microservices”. Мне очень понравилось его видение по этому вопросу, в главе “Evolutionary architect”.

Leave a Reply

Your email address will not be published. Required fields are marked *