Hugo,
Muito boa dúvida.
Eu particularmente acho que todas as metodologias baseadas em projeto, pregam documentos "de projeto", mas existe muito pouca discussão sobre como criar e manter uma documentação técnica que seja "viva" junto com o software. Wikis são muito boas pra isso pois são formas colaborativas de documentar, mas vale criar a prática no time. Por exemplo, em metodologias "prescritivas" de software, ou seja, caso de uso, diagrama de classe em tempo de projeto, dificilmente conseguimos observar essas documentações sendo atualizadas depois que o projeto termina.
Desenvolve-se um novo projeto, uma nova documentação e a vida segue. Pra quem mantém produto isso é péssimo. Alguém precisa pegar esses pedaços de documentação e consolidar numa documentação do produto ou do software que seja gerida em conjunto com o ciclo de vida da aplicação.
Sobre o "como" documentar.... em arquitetura de soluções acho que diagrama de componentes ajuda muito. Basicamente representar quais são os componentes: web services, windows services, fila MQ, processo windows service, aplicação web, quais bases de dados acessam o que precisa ter deploy na mesma máquina o que pode ter deploy em máquina diferente. Onde trabalho usamos um diagrama proprietário pra isso. Gosto de diagrama de sequencia pra solução também, principalmente no nível funcional. É interessante pra representar a troca de mensagens (falo de integrações mesmo) entre diferentes sistemas, deixar claro o que é síncrono o que é assíncrono e como a conversa entre os sistemas será estabelecida.
Sobre arquitetura "de software" pra mim acho que o ideal está em diagramas de classes e seqüência. Como documentar todo o sistema, todas as implementações é algo bastante complexo, coloco uma documentação no estilo de principais abstrações utilizadas na arquitetura como um bom meio termo. Segui essa idéia baseado no livro do GoF num projeto que trabalhei e gostei do resultado. Documentávamos em wikis as principais abstrações do software em diagramas de seqüência e classes junto com um descritivo de como o developer deve pensar quando for implementar algo baseado naquela abstração.
Mas além disso, acho que é meio complexo essa coisa do arquiteto de software pensar na arquitetura "fora" do projeto. Acho que a arquitetura de software é bem mais produtiva num processo de imersão mesmo, troca de conhecimento. É muito difícil "ditar" ou "impor" um estilo arquitetural numa equipe. Fica aquela coisa do comentarista de futebol. O cara fica na tribuna de honra dizendo como o técnico e os jogadores tem que jogar o jogo, mas nunca entre em campo pra levar vaia da torcida.
Aliás acho que o grande desafio de arquitetura está nisso. Eu vejo o arquiteto como um grande influenciador. A grande maioria das coisas que ele concebe, não será ele quem implementará em sua totalidade, por isso é importante sempre manter o contexto em mente e ter o skill da equipe como um balisador, além do processo de vender idéia, disseminar conhecimento e aprender com a equipe. Pior do que uma arquitetura simples ou tosca bem implementada é uma arquitetura extremamente rebuscada mal implementada.
Abraço,