Eu não concordo totalmente com a resposta do maple_shaft, mas não havia espaço suficiente no comentário para dizer minha parte inteira! ;-)
Concordo que todo desenvolvedor pode e deve ser um arquiteto, mas isso não significa que todo desenvolvedor deva ser responsável pela arquitetura de um produto ou sistema inteiro. Além disso, acho que você não pode pintar todas as equipes de arquitetura com o mesmo pincel largo e, quando bem feito, as equipes de arquitetura podem agregar muito valor ao processo geral de desenvolvimento de produtos. O equívoco é que os arquitetos devem ditar todos os aspectos do design do sistema. Em vez disso, eles devem se concentrar no design de nível superior e deixar os detalhes da implementação para suas equipes de desenvolvimento. No entanto, isso não quer dizer que os desenvolvedores não devam se envolver no processo de planejamento e design desde o início.
Quanto maior e mais modular e, por fim, mais complexo for um produto, maior a probabilidade de encontrar várias partes do produto manipuladas por diferentes equipes de desenvolvimento. Essas equipes não precisam entender o sistema como um todo, desde que tenham um entendimento completo das partes do sistema pelas quais são responsáveis. Freqüentemente, essas equipes adicionais são contratadas como subcontratadas com o objetivo específico de desenvolver um módulo em uma área específica de tecnologia na qual os arquitetos ou outras equipes talvez não tenham experiência. Meus talentos particulares residem no desenvolvimento de APIs, e ainda tenho que ver uma API bem fatorada que foi desenvolvida inteiramente organicamente sem ser uma bagunça completa em termos de usabilidade, ou que não exigia que alguém se destacasse como a pessoa que garantiu que havia um nível de uniformidade entre os diferentes aspectos da API. Posso continuar listando muitos exemplos e razões, mas não acho que esse tipo de situação seja a torre de marfim que muitos podem pensar que são. Infelizmente, existem muitos lugares, particularmente nas áreas de defesa, medicina e setores financeiros, nos quais a paranóia corporativa resulta em desenvolvimento de produtos mal especificado e ainda mais mal gerenciado, do tipo que tenho certeza de que o maple_shaft estava mais preocupado. Essas são as coisas que acredito que dão aos arquitetos um pouco de um nome ruim merecido (geralmente falando). Infelizmente, existem muitos lugares, particularmente nas áreas de defesa, medicina e setores financeiros, nos quais a paranóia corporativa resulta em desenvolvimento de produtos mal especificado e ainda mais mal gerenciado, do tipo que tenho certeza de que o maple_shaft estava mais preocupado. Essas são as coisas que acredito que dão aos arquitetos um pouco de um nome ruim merecido (geralmente falando). Infelizmente, existem muitos lugares, particularmente nas áreas de defesa, medicina e setores financeiros, onde a paranóia corporativa resulta em desenvolvimento de produtos mal especificado e ainda mais mal gerenciado, do tipo que tenho certeza de que o maple_shaft estava mais preocupado. Essas são as coisas que acredito que dão aos arquitetos um pouco de um nome ruim merecido (geralmente falando).
Então, onde está o meio termo que o OP estava procurando? A resposta tem tudo a ver com a abertura de canais de comunicação. Os arquitetos precisam entregar especificações que descrevam seus projetos com detalhes suficientes, para garantir que as equipes de desenvolvimento entendam onde estão os limites. Histórias e cenários de recurso no sentido mais amplo, onde tudo é considerado uma caixa preta. Os arquitetos precisam garantir que as equipes tenham acesso ao tempo do arquiteto para confirmar quaisquer suposições e responder a perguntas sobre especificações que pareçam muito amplas ou pouco claras. Depois disso, é realmente necessário garantir que as equipes individuais estejam cientes do que as outras equipes estão trabalhando e que elas sabem com quem se relacionar com as outras equipes para garantir que cada parte do sistema funcione bem com as outras partes. Essas equipes se encontram diretamente. Uma vez que o sistema foi projetado no nível mais amplo, os arquitetos devem ser apenas as pessoas para as quais as equipes se voltam quando precisam de uma verificação de sanidade e para garantir que a "visão" do produto seja mantida. Eles também devem levar em consideração qualquer processo de integração necessário e fornecer as coberturas necessárias para as equipes de desenvolvimento dos gerentes, clientes e outras partes interessadas, ao mesmo tempo em que garantem que essas várias pessoas possam se reunir para trabalhar entre eles como as coisas devem funcionar.
Os arquitetos da IMHO devem, antes de tudo, ser facilitadores e comunicadores e designers, em segundo. Quanto ao nível de especificação? Penso que os melhores arquitetos são os que perguntam às equipes sobre o nível de detalhe que uma equipe deseja e, entre eles, encontram um equilíbrio que funcione. Equipes diferentes podem ter requisitos diferentes em termos da quantidade de documentação ou direção necessária. As equipes seniores podem encontrar um diagrama mais elaborado e um bate-papo rápido pode ser suficiente para prosseguir, enquanto as equipes preenchidas com desenvolvedores relativamente jovens podem exigir um pouco mais para fazê-las funcionar. Acima de tudo, o arquiteto precisa incentivar os desenvolvedores a exercitar seus próprios talentos de design para obter o melhor resultado final de cada equipe.