Архитектрута в айтишном проэкте – это особая тема. Как правило порождается нуждами бизнеса и желанием специально выделенного человека “отжаться” в новом фрейворке или технологии, чтобы тиснуть себе новый скил в CV. Со вторым фактром вроде как понятно, а вот первый, как правило, сводится к тому, чтобы получить рабочий продукт быстро и желательно дёшево. В результате бизнес получает гемморойный проэкт (хорошо если в срок), а тысячи других (или тех же) программистов пытаются это всё потом стабилизировать и улучшать. Второй фактор, кстати, не может не радовать. Так что польза от сего подхода вроде как и присутствует.
Был у меня проэкт. Его суть заключалась в том, чтобы конвертировать xml-ки с одной телефонной системы в xml-ки другой телефонной системы. Основная сложность (без архитектора) заключалась в том, чтобы выяснять как xml-ка выглядит на входе и какой должна быть на выходе. Всё. Но это всё без архитектора. В нашем случае, этот, так называемый архитектор, засунул палец себе в жопу и решил, что писать будем по TDD на Groovy. Ну а чтоб не расслаблялись ещё прикрутим XSLT. Для бизнеса проэкт закнчился факапом. Вроде всё сделали, но с опозданием на год и нежеланием с нашей стороны исправлять дефекты бесплатно. Ну а программисты очень лихо оттачивали своё ЧСВ друг перед другом. На TDD естессно никто не писал – там бы выяснить, что писать нужно – уже радость. Архитектор, кстати, через пол-года сделал лыжи гоняться за новыми оппортьюнитами. Но кризис-менеджер, правда, радовался. Такое.
Второй проэкт. Тут уж больше бизнес нидс. Решил бизнес быстро запилить для множества своих продуктов SSO решение. Подобрали падающий OpenAM и начали франкенштейнить. Почему франкенштейнить? А потому как нихрена оно не работало толком. Может быть для готового окружения его настроить и можно, но вот для множества продуктов, которые используют множество пользователей настройка OpenAM фактически требовала тюнинга на месте с последующим сопровождением. Ярким примером являлось периодическое падение сего творения с OutOfMem. Попытки воспроизвести локально заканчивались ничем. А падало оно потому как был туда грубо запихан ActiveMQ для горизонтальной синхронизации токенов, которая работала как у телеги пятое квадратное колесо. Криво, туго и, что самое главное, непонятно зачем, потому как пользователь стикался на ноду в мандатным требованием в настройках продукта.
Этот проэкт продолжает существовать в немалой степени благодаря тому, что заказчик через три года сделал неимоверное усилие и вложился в разработку собственного SSO решения с нуля. Помню я тогда изо всех сил убеждал коллег отказаться от горизонтальной синхронизации в пользу вертикальной через базу. В результате проблем с синхронизацией мы больше не имели.