Quando falamos de um projeto desenvolvimento de software que se utilize Java como linguagem de programação é comum ouvir de alguém que você precisa de um arquiteto de software. Na verdade esta necessidade não é única de projeto Java, independente da tecnologia de implementação dependendo da magnitudede seu projeto você vai precisar tanto de um arquitetocomo você precisaria de um analista ou gerente de projetos.
Diferente do que muitos pensam arquitetura não significa escolher frameworks, a arquitetura de software vai muito além do que meramente decidir se no projeto vão utilizar Spring ou Hibernate, Struts ou JSF.
Em poucas palavras é dar suporte e participar de todas as decisões técnicas significativas em termos de design e implementação. Em outros termos estamos falando de riscos, a arquitetura serve para mitigar os principais riscos técnicos de um projeto, veja que eu disse os principais ao invés de todos.
Se você trabalha com riscos no seu projeto e trabalha com priorizarão de requisitos essa é uma tarefa relativamente simples, pois a arquitetura já sabe com o que deve se preocupar e com o que não deve dar muita atenção e deixar os desenvolvedores resolver.