Я не повністю згоден з відповіддю maple_shaft, але в коментарі не вистачило місця, щоб сказати весь мій біт! ;-)
Я погоджуюся, що кожен розробник може і повинен бути архітектором, але це не означає, що кожен розробник повинен відповідати за архітектуру цілого продукту чи системи. Крім того, я не думаю, що ви можете пофарбувати кожну архітектурну команду одним і тим же широким пензлем, і коли правильно виконані архітектурні команди можуть принести велику цінність загальному процесу розробки продукту. Неправильне уявлення полягає в тому, що архітектори повинні диктувати всі аспекти дизайну системи. Натомість вони повинні зосередитись на проекті вищого рівня та деталі впровадження залишити командам розробників. Однак це не означає, що розробники не повинні брати участь у процесі планування та проектування з самого початку.
Чим більший і більш модульний і в кінцевому рахунку складніший продукт, тим більше шансів на те, що ви знайдете різні частини продукту, якими керуються різні команди розробників. Таким командам не потрібно розуміти систему в цілому за умови повного розуміння частин системи, за які вони відповідають. Часто ці додаткові команди приводяться в якості субпідрядників для конкретних цілей розробки модуля в певній галузі технології, для якої архітектори чи інші команди можуть не мати досвіду. Мої власні особливі таланти полягають у розробці API, і я ще не бачу добре розроблений API, який був розроблений повністю органічно, не будучи повною мірою в застосуванні, або це не вимагало, щоб хтось виділявся як людина, яка переконалася, що існує рівень рівномірності між різними аспектами API. Я можу продовжувати перелічувати багато прикладів та причин, але я не думаю, що подібні ситуації - це башта слонової кістки, яку багато хто може подумати. На жаль, є багато місць, особливо в галузі оборони, медицини та фінансового сектору, де корпоративна параноїя призводить до погано визначених і ще більш поганих керованих розробок продуктів, що, напевно, найбільше турбувало maple_shaft. Це те, що, на мою думку, дає архітекторам трохи погано заслужену погану назву (взагалі кажучи). На жаль, є багато місць, особливо в галузі оборони, медицини та фінансового сектору, де корпоративна параноїя призводить до погано визначених і ще більш поганих керованих розробок продуктів, що, напевно, найбільше турбувало maple_shaft. Це те, що, на мою думку, дає архітекторам трохи погано заслужену погану назву (взагалі кажучи). На жаль, є багато місць, особливо в галузі оборони, медицини та фінансового сектору, де корпоративна параноїя призводить до погано визначених і ще більш поганих керованих розробок продуктів, що, напевно, найбільше турбувало maple_shaft. Це те, що, на мою думку, дає архітекторам трохи погано заслужену погану назву (взагалі кажучи).
То де ж середина, яку шукала ОП? Відповідь - це все, що стосується відкриття каналів зв'язку. Архітекторам потрібно передати технічні характеристики, які описують їхні проекти досить детально, щоб гарантувати, що команди розробників зрозуміють, де є межі. Історії та сценарії сюжетів у найширшому розумінні, де все вважається чорною скринькою. Тоді архітекторам потрібно забезпечити доступ команд до часу архітектора для підтвердження будь-яких припущень та відповіді на будь-які запитання щодо технічних характеристик, які здаються занадто широкими або незрозумілими. Після цього мова йде саме про те, щоб окремі команди були обізнані над тим, над чим працюють інші команди, і щоб вони знали, з ким слід зв’язатися з іншими командами, щоб кожна частина системи чудово грала з іншими частинами. Ці команди безпосередньо зустрічаються між собою. Після того, як система була розроблена на найширшому рівні, архітектори дійсно повинні бути лише людьми, до яких звертаються команди, коли їм потрібна перевірка обґрунтованості, та забезпечити збереження «бачення» продукту. Вони також повинні брати на борт будь-який необхідний процес інтеграції та забезпечувати необхідний "повітряний прикриття" для команд розробників від менеджерів, клієнтів та будь-яких інших зацікавлених сторін, при цьому все одно забезпечуючи, щоб ці різні люди могли зібратися, щоб працювати між їм, як все має працювати.
Архітектори ІМХО повинні передусім бути фасилітаторами та комунікаторами, а друге - дизайнерами. Щодо рівня специфікації? Я думаю, що найкращі архітектори - це ті, хто розпитує свої команди про рівень деталізації, якого хоче команда, і між ними знаходять баланс, який працює. У різних колективів можуть бути різні вимоги щодо кількості необхідної документації чи напряму. Старші команди можуть знайти орієнтовно складену схему, і для швидкого спілкування може бути достатньо швидкого чату, тоді як командам, заповненим відносно молодшими розробниками, може знадобитися трохи більше, щоб їх розпочати. Перш за все, архітектору потрібно заохочувати розробників проявляти власні дизайнерські таланти, щоб отримати найкращий кінцевий результат від кожної команди.