Arquitetura de SistemasCarreira de programador

O que faz um Arquiteto de Sistemas?

O que faz um Arquiteto de Sistemas?

O que faz um Arquiteto de Sistemas? Você já é uma pessoa desenvolvedora e agora quer saber porque tem tanta gente interessada em passar de dev para arquiteto de sistemas? Vem com a gente que a Café Codificado explica tim tim por tim tim.

O que é o arquiteto de sistemas e a arquitetura de um sistema?

Arquitetura de sistemas é uma função complexa e difícil de descrever, pois está em constante evolução (por conta da velocidade com a qual novas tecnologias são desenvolvidas em TI) e talvez por isso tantas pessoas se sintam confusas sobre ela.

Então vamos destrinchar o termo: arquiteto(a) é a pessoa que planeja uma obra, certo? Ele(a) não a constrói, mas dá as orientações para quem vai trabalhar com a mão na massa.

O(a) arquiteto(a) tem que pensar em uma variedade enorme de interações e possibilidades, como iluminação, circulação de pessoas, fluxo, distribuição dos cômodos, onde precisa haver saída de água, etc, e colocar tudo isso numa estrutura segura, preparada para emergências e que suporte aquilo que o cliente precisa, afinal, o prédio tem que ser funcional e não pode cair.

E planejar um hospital é diferente de um banco, uma escola ou uma residência, pois as necessidades e o dia a dia desses ambientes são muito diferentes, o que significa que o arquiteto precisa procurar entender também do negócio para o qual ele vai criar uma estrutura.

Então a arquitetura de um sistema é o planejamento da construção dessa classe de softwares que faz o intermédio entre o hardware e as aplicações, de maneira que o arquiteto precisa conhecer quais são as tecnologias disponíveis e onde elas se encaixam melhor.

Quanto ganha um arquiteto de sistemas

(O que faz um Arquiteto de Sistemas?)

O que faz um Arquiteto de Sistemas?

A oferta de vagas para arquiteto de sistemas tem crescido muito nos últimos cinco anos. A maioria deles ganha hoje entre R$9.000 e R$11.000, ficando com uma média salarial de aproximadamente R$10.000.

Salário de programador: descubra quais são cargos mais bem pagos

O que preciso fazer para ser arquiteto de sistemas?

Cerca de 40% dos(as) arquitetos(as) de sistemas foram analistas de sistemas antes, e as principais graduações das pessoas que estão hoje trabalhando. Eles (as) são Arquitetos(as) de sistemas são Sistemas de Informação (Análise de sistemas), Ciência da Computação ou Engenharia de Computação (Engenharia de Software).

O(a) arquiteto(a) de sistemas é alguém que está sempre se atualizando, então você precisa estudar muito e ter conhecimento sobre mais de uma linguagem de programação. Como grande parte da literatura sobre o tema está em inglês, é importante dominar a língua.

Como já falamos em outros artigos, é muito importante encontrar um mentor para te ajudar a subir de cargo.

Mas além da experiência como dev, é importante demonstrar que você é um ótimo comunicador, pois a função de um arquiteto de sistemas é basicamente guiar os desenvolvedores.
Então peça feedback de seus colegas e gestores sobre sua capacidade de comunicação e sobre como melhorá-la. Ter experiência ou uma certificação em Gerenciamento de Projetos e/ou Gerenciamento de Pessoas com certeza vai te ajudar.

Separamos para você uma lista com muitos materiais sobre como se tornar um arquiteto de sistemas.

Hard skills (O que faz um Arquiteto de Sistemas?)

A Unified Modeling Language (UML) costuma ser listada como um requisito essencial. Mas o que realmente é imprescindível é a familiaridade com a diagramação de arquiteturas complexas.
Capacidade de trabalhar com frameworks para o desenvolvimento de arquiteturas de software como TOGAF, DODAF, Zachman.

Conhecimento de bases de dados MySQL, PL/SQL, Oracle.

É importante ter profundo conhecimento de uma ou mais das linguagens de programação essenciais para a área em que vai trabalhar. Isto para apoiar estrategicamente os objetivos da empresa a longo prazo: Java, JavaScript, Python, Ruby, Rust, Go, C ou mesmo COBOL.
Conhecimento de arquitetura LAMP e arquitetura orientada a serviços (SOA). Além de GIT, APSIS e ferramentas de ticketing.

Conseguir gerenciar práticas de desenvolvimento de software de forma colaborativa e ágil. Isso geralmente significa ter uma profunda familiaridade com as práticas dos devs assim como requerer habilidades básicas, como a criação de um ambiente de desenvolvimento eficiente, e soft skills, para manter alinhadas as equipes de desenvolvimento e de operações.

Soft skills

  • Liderança
  • Solução de problemas e resolução de conflitos
  • Comunicação
  • Organização
  • Capacidade de priorizar
  • Pensamento detalhista
  • Criatividade
  • Capacidade de negociação

Qual é o papel do arquiteto de sistemas?

Organizações de vários setores sobretudo contratam arquitetos de sistemas para ajudá-las a entregar melhores produtos e serviços. Para isso, ele(a) precisa identificar quais são as partes interessadas e as suas necessidades. Alguns arquitetos(as) de sistemas são autônomos(as) ou têm seus próprios negócios, enquanto outros trabalham em tempo integral ou por contrato.

Como arquiteto(a) de sistemas você vai planejar o sistema, e para isso precisa avaliar quais são os requisitos operacionais dele e os requisitos não-funcionais, desenhar o sistema com base nesses requisitos, escolher a arquitetura dos componentes do sistema, etc, garantindo a qualidade do projeto e melhorando a arquitetura continuamente.

Para isso, você deverá guiar a equipe de desenvolvedores pelo planejamento que foi feito, pelos imprevistos que podem surgir, pelas dúvidas e dificuldades que cada membro pode ter.

Então um arquiteto(a) de sistemas é um desenvolvedor muito sênior? Não. É mais que isso, é uma pessoa com habilidades extra, como descrevemos acima, muito além das capacidades técnicas, que está assumindo um cargo diferente, não apenas recebendo uma promoção.

Outra habilidade essencial – mas muitas vezes subestimada – é a de negociação. Conforme os projetos evoluem, os(as) arquitetos(as) de sistemas precisam negociar o tempo todo, fazendo o meio de campo entre os devs e a gerência (negociar cronogramas ou necessidade da troca entre conjuntos de recursos, custo e tempo, por exemplo).

Um grande arquiteto é um grande negociador.

Qual a diferença entre arquitetura de sistemas, engenharia de software e arquitetura de software?

Existem basicamente três tipos de Arquitetos de Software:

  • Arquiteto de Solução – geralmente destina-se ao profissional com foco em resolver um problema específico de negócio, o que gera a necessidade de interação entre aplicações diferentes. Também pode se referir a um arquiteto de aplicação.
  • Arquiteto de Sistema (singular) – Usado como sinônimo para arquiteto de aplicação.
  • Arquiteto de Sistemas (plural) – Usado como sinônimo para arquiteto organizacional ou arquiteto de solução.

De forma bem resumida, o(a) Arquiteto(a) de Sistemas está dentro do guarda-chuva do Arquiteto(a) de Software, sendo o profissional de tecnologia responsável pela concepção, desenho e desenvolvimento da arquitetura de sistemas computacionais.

O(a) arquiteto(a), como descrevemos, é aquele(a) que cria o projeto do sistema desejado, como num exercício de planejamento urbano, oferecendo ao engenheiro(a) de software um plano que contenha disposições para diferentes requisitos técnicos e de negócios.

Já um(a) engenheiro(a) de software lê o projeto criado pelo(a) arquiteto(a) e começa a implementar na linguagem mais adequada, que já foi definida no projeto. Um(a) engenheiro(a) mais sênior pode acabar se concentrando mais na resolução de problemas e em garantir a qualidade do trabalho da equipe do que fazer o grosso da codificação do sistema. É um cargo mais técnico que o de arquiteto(a) de software ou de sistemas.

O que é arquitetura de micros serviços (O que faz um Arquiteto de Sistemas?)

A arquitetura de microsserviços, em oposição à arquitetura monolítica, é aquela que decompõe um sistema em vários serviços menores e autônomos. Cada um deles é independente, sendo implementado e operado por uma equipe pequena.

Um microsserviço deve realizar apenas uma funcionalidade, e seu contexto deve ser limitado. Isso facilita a sua substituição, pois os microsserviços são pequenos e alterá-los gera muito pouco impacto.

Algumas das vantagens desse tipo de arquitetura são a agilidade, a escalabilidade, o isolamento de falhas (evitando que uma falha em um serviço derrube toda a aplicação) e o isolamento de dados.

Como implementar micros serviços

A arquitetura de microsserviços não é só flores. Existem muitas vantagens mas também muitos desafios para poder implementar esse tipo de arquitetura no seu projeto, então fique atento para as dicas a seguir.

Microsserviços são simples parte a parte, mas seu conjunto é mais complexo que o de uma arquitetura monolítica, então seu planejamento precisa ser muito mais cuidadoso. O desenvolvimento e os testes também podem ficar mais difíceis, pois as ferramentas precisam ser construídas com uma lógica diferente, uma lógica de serviço.

Usar muitos serviços pequenos pode gerar mais comunicação entre eles, e se essa sequência de comunicação não for muito bem planejada, poderá gerar congestionamento na rede. Além disso, é preciso lembrar que as atualizações de um serviço não podem interromper os outros serviços ligados a ele.

Tudo isso mostra que para desenvolver e aplicar uma arquitetura de microsserviços com sucesso, uma empresa precisa de bastante experiência em desenvolvimento e de uma equipe qualificada

Leia também nosso artigo “Desenvolvimento Ágil