Melhor resposta
Acho que o título de arquiteto de software é um pouco usado em demasia e muitas vezes confundido com designer de software ( que é outro termo confuso, porque não tem nada a ver com design como um esforço artístico.)
Minhas definições seriam:
Arquiteto de software – essa pessoa lida com os blocos de alto nível. Conectividade entre sistemas, escolhendo as melhores tecnologias para os próprios sistemas e mapeando os requisitos de negócios em requisitos de engenharia. Ele tem experiência suficiente para entender quando push / pull deve ser usado em vez de pub / sub, por exemplo, ou quando um banco de dados NoSQL é aceitável no lugar de um banco de dados SQL. Ele também entende os custos da tecnologia resultante (em termos de desempenho e despesas operacionais reais). Por fim, um arquiteto deve entender o negócio, não apenas a tecnologia.
Designer de software – uma vez que a arquitetura é estabelecida, um designer é responsável por criar o design de software real. Ele pode criar um projeto para cada bloco arquitetônico modelando as classes ou relações de banco de dados apropriadas. Ele também pode definir protocolos de conexão, formatos de arquivo, etc.
Programador de software – uma vez que um projeto é estabelecido, o desenvolvedor de software implementa o projeto .
Em ordem de importância, as decisões tomadas no nível arquitetônico são críticas e frequentemente muito difíceis e caras de mudar se um erro for cometido. Um erro de arquitetura pode custar anos em sistemas complexos. Um erro de projeto pode custar alguns sprints. Um erro de programação pode ser corrigido assim que identificado.
Além disso, lembre-se de que não há nenhum requisito de que uma pessoa não possa cumprir mais de uma função. Em organizações formais, você pode ter o arquiteto de software como uma pessoa sênior (ou mesmo um executivo), com o designer sendo um líder de equipe de alguns tipos e o programador um colaborador individual dessa equipe. No entanto, na prática, o arquiteto de software geralmente não sai de um projeto quando o trabalho de arquitetura está concluído e, quando o trabalho de arquitetura fica lento, ele geralmente se envolve no design e na programação.
A ressalva é no entanto, o arquiteto é responsável pela escolha dos blocos de tecnologia com base em seus méritos, e não em sua familiaridade, caso em que ele pode acabar com uma escolha na qual ele pode contribuir pouco no nível de código. Nesses casos, ele deve saber melhor e sair a implementação para os especialistas do domínio.
Essa é apenas minha opinião, no entanto, tenho certeza de que há muitas outras interpretações. Além disso, quanto mais simples for o aplicativo, mais supérfluas algumas funções se tornam. Para um aplicativo simples, você não precisa de um arquiteto. Se o aplicativo for simples o suficiente, você pode nem ter um designer. Mas você sempre precisa de alguém para implementá-lo.
Resposta
Eu sei que é rude e sinto muito, mas não posso acreditar que outras pessoas (além de Edward Guy Capriolo) escreveram respostas longas explicando a diferença entre dois títulos. “Arquitetos de software” existem apenas em filmes de ficção científica como Matrix.
O título foi inventado por burocratas corporativos para estabelecer a nova faixa salarial de não gestão, onde alguém sem um MBA poderia ganhar seis dígitos. Foi útil durante a “terceirização”, uma vez que os poucos restantes não “offshore” ou Desenvolvedores H1B / L1 poderiam ser promovidos a “arquitetos” para manter seu salário, uma vez que todos os engenheiros “regulares” deveriam ser “recursos com desconto”.
Outra coisa a ter em mente: posições inúteis de consultor como essa são preenchidos por parentes e amigos, portanto, não há um conjunto oficial de habilidades para aprender. O valor do “arquiteto” é vago e subjetivo para diga o mínimo. TOGAF é talvez a descrição final das responsabilidades do “arquiteto”. Estudei bem essa porcaria para exibi-la em entrevistas “arquitetônicas”. Na vida normal, porém, minha especialidade é iniciar projetos multimilionários. E revivendo falhas multimilionárias. Isso me torna um “arquiteto”? Envolve muita codificação, sabe. E zero “frameworks” de “arquitetura empresarial”.
Basta editar seu currículo substituindo todos os cargos anteriores para mostrar os “anos de experiência”. Em seguida, polvilhe generosamente o jargão de “arquitetura corporativa” em todo o currículo. Deixe-me dar uma olhada na versão do arquiteto do meu currículo (caso contrário, do desenvolvedor). Aqui. Copie literalmente:
“Visão de tecnologia avançada desenvolvida e recursos de arquitetura corporativa robustos dentro de TI. Conteúdo de roteiro comum definido. Desenvolveu e implementou a estratégia para arquitetura corporativa consistindo em princípios, arquiteturas de referência, glossários e taxonomias. Análise contínua da indústria, tecnologia e tendências de mercado para determinar impactos potenciais na empresa. ”
Parabéns! Você foi oficialmente promovido a “Arquiteto Corporativo”.A única coisa que resta a fazer é enviar seu currículo recém-digno para os empregadores que formam a Grande Cadeia Alimentar de Consultoria de TI – para “pós-venda” tudo o que estão vendendo: Oracle, IBM, Microsoft, etc. através de “diagramas de arquitetura”: blocos coloridos de os pacotes de fornecedores conectados por “integração” imaginária. Não se preocupe com o “mumbo-jumbo técnico”. Você é um arquiteto de alto nível que apresenta a visão estratégica para “stakeholders de nível C” igualmente dignos e altamente não técnicos.