Arquiteto de Software

Atualização 01/02/2015 – Li esta semana uma nota, publicada na CNN Money, na coluna Best Jobs in America, falando sobre a subida do Arquiteto de Software no ranking de salários e de carreira prestigiada dentro da TI. Sobre o que faz um Arquiteto, a postagem abaixo publicada originalmente em Julho de 2012 aqui no blog esclarece tudo, talvez mereça incluir mais alguma coisa sobre Cloud Computing, que hoje é uma solução tecnológica obrigatória em algumas aplicações. O salário do Arquiteto, no mercado estadunidense, teve uma boa valorização, a média  hoje é de US$124.000 anuais, atingindo um máximo de US$169.000, que devem ser acrescidos das vantagens tradicionais, como plano de saúde familiar, recebimento de ações da empresa (depende da empresa e do setor da economia), ajuda de custo para escola dos filhos (não é pouca coisa), e outras menores. Reafirmo que são raros os profissionais que podem se candidatar a Arquiteto, a experiência e a bagagem de conhecimento necessários são grandes, não é um cargo para iniciantes que não tenham uma base excelente nos fundamentos da computação. Atualização profissional continua sendo obrigatória na área.

POSTAGEM ORIGINAL, 01/07/2012

Continuando nossa conversa sobre arquitetura de software, iniciada com a postagem anterior Arquitetando o software, vou comentar um pouco sobre o papel principal da estória toda, o Arquiteto de Software. Quem é essa figura, que conhecimento e experiência ele deve ter, como deve se preparar?  Pensando de uma forma mais organizada, a Arquitetura de Software deve ser obtida segundo uma sequência de passos que definem um processo (disciplina, workflow), que podemos chamar de Processo de arquitetura (Architecting). O responsável por executar o processo é o Arquiteto de Software, gerando ao final a Arquitetura do Software, que define a estrutura e o comportamento do software a ser produzido. Dependendo do porte do sistema a ser construido, o papel do Arquiteto pode ser desdobrado, indo desde um único profissional até uma equipe com vários arquitetos: de software, de banco de dados, de segurança, de tecnologia, etc.

images Nosso herói Arquiteto de Software deve, antes de mais nada, ter experiência de mercado, e muita. Não basta ter todos os livros e saber recitar tudo o que está neles, tem que saber fazer usando conhecimento adquirido na estrada. Leva tempo, muito tempo, até que um profissional de Engenharia de Software chegue até lá. O Arquiteto de Software deve também ter perfil de liderança técnica o que, por si só, já significa ter várias outras habilidades: boa comunicação, habilidade de negociação e bom tomador de decisões,  sendo respeitado pela equipe de que fizer parte. Tem que dominar processos de desenvolvimento de software (definição, artefatos, papéis, passos, compatibilidade com processos de gerência de projetos, etc.), e ter conhecimento dos domínios de negócio a serem abrangidos no projeto (focos do projeto). O conhecimento em programação é fundamental e mais uma vez não adianta pegar um livro de Java e ler todo ele do começo ao fim, a experiência é indispensável. Programação hoje é uma tarefa complexa que não se resume a saber programar apenas, tem que conhecer frameworks, bibliotecas, ambientes de produção e prototipação e claro, várias linguagens. Já ia me esquecendo, o Arquiteto de Software tem que dominar o projeto de software e suas variações: Métodos ágeis,  Métodos baseados em planejamento, RUP (Rational Unified Process), OpenUP (Open Unified Process), SCRUM, UML, e mais o que vocês acharem que deve ser incluido na sopa de letrinhas.

Mas será que um Arquiteto de Software experiente precisa entender bem de redes de computadores? de sistemas distribuidos? de bancos de dados? de frameworks para bancos de dados? de linguagens de script? de compiladores? de segurança e firewalls, arquitetura de três ou mais camadas? claro que sim, praticamente todo o conhecimento de um bom curso em Computação vai compor sua base de conhecimento técnico. Mas o que é que um Arquiteto de Software vai fazer com Compiladores? fácil de imaginar, e se o sistema a ser projetado exigir a definição de uma linguagem específica de domínio para ser usada pelo usuário final? ela vai ter que ser toda desenvolvida como parte do projeto e vai fazer parte da arquitetura do sistema, e quem é que vai enxergar isso e vai tomar a decisão de incluir isso na arquitetura? Puxa vida, mas será que precisa de Análise de Algoritmos e Matemática Discreta? também é fácil arrumar um exemplo, sistemas devem ser sintonizados para terem um desempenho estabelecido pelos requisitos não funcionais, e quem é que vai enxergar que vai ser necessário implementar rotinas de medida e análise de desempenho do sistema como um todo? comportamento do sistema diante de uma quantidade não esperada de usuários, provocando um pico de uso não planejado (escalabilidade)?

Todas essas citadas, e muitas outras, são decisões que têm que ser tomadas pelo Arquiteto de Software, e que podem ter maior ou menor impacto na arquitetura. Sistemas comerciais para a web, para serem usados a partir de smartphones, estão cada vez mais comuns e são quase que a norma. As decisões a serem tomadas com relação a arquitetura deste tipo de sistema são inumeráveis, e vão até decisões tecnológicas para implementação, e todas elas têm que ser tomadas e monitoradas pelo Arquiteto de Software e sua equipe.

E o salário, é bom? Claro que é, mas as empresas pagam o salário não pelo que o profissional é, mas sim pelo que ele faz. O Arquiteto de Software é um profissional raro, caro, e procurado no mundo todo. Eu diria que é o topo da carreira de Engenharia de Software,  e não é para todo mundo, é para poucos mesmo. E tudo começa no curso superior, no interesse pelo curso e suas disciplinas, sem preconceitos, se dedicando a todas elas com a mesma vontade. Oportunidades de aprender não podem ser adiadas, tem que aproveitar as oportunidades no momento em que aparecerem, elas podem não aparecer novamente em outro momento. E para terminar: não existe um curso superior que forme Arquiteto de Software com todos esses atributos. Não se iludam, os cursos conseguem formar a base sólida de conhecimentos para entrar na carreira, o que acaba por formar o Arquiteto é a combinação de base sólida em fundamentos associada fortemente com a experiência de mercado.

(a figura acima foi tirada do site http://wthreex.com, onde estão disponíveis definições do processo RUP com variações)

(este artigo foi escrito por zeluisbraga, e postado no meu blog zeluisbraga . wordpress . com) (this post is authored by zeluisbraga, published on zeluisbraga . wordpress . com)

Consultor Independente, Treinamento Empresarial, Gerência de Projetos, Engenharia de Requisitos de Software, Inovação. Professor Titular Aposentado, Departamento de Informática, Universidade Federal de Viçosa, Minas Gerais, Brasil. Doutor em Informática, PUC-Rio, 1990. Pós-Doutoramento, University of Florida, 1998-1999

Marcado com:
Publicado em Carreira, Educação, Engenharia de Software
6 comentários em “Arquiteto de Software
  1. Muito bom Zé! O que você falou é verdade. Além do conhecimento teórico tem que ter muita experiência de mercado para ser um arquiteto e não ter preconceito. No mercado encontramos profissionais no mercado que se intitulando arquitetos e na verdade são desenvolvedores com pouca experiência de mercado e com preconceitos. Ai de quem dizer que a tecnologia, framework e linguagem favorita dele não servem para uma determinada solução. São os radicais da TI. Tenho experiência de 4 anos como desenvolvedor e acho que não estou apto para ser um arquiteto. Já trabalhei no setor público e privado e prestação de serviço, processo RUP, métodos ágeis, fábrica de software, equipes grandes e pequenas. Agora estou trabalhando com o P&D desenvolvendo produto que envolve hardware e software. Sai da plataforma Java e agora estou trabalhando com a plataforma .Net. Apesar disto tudo ainda falta experimentar mais situações do mercado. O negócio é experimentar coisas novas e sentir como é na prática. Penso que para experimentar diversas situações, o profissional tem que passar por algumas empresas e muitos projetos. A não ser que a empresa tenha muitos projetos em diferentes tecnologias, o profissional corre o risco de ficar preso somente em um tipo de experiência caso permaneça muito tempo em uma empresa.

    • de fato, tem que ir mudando para ganhar experiência, não tem outro jeito. as decisões de arquitetura são complicadas, principalmente as que se referem a tecnologia, a quantidade de opções é grande, tem que saber escolher com bases técnicas e usando a experiência. abraço,

    • Olá Fred, como técnicos normalmente deixamos de lado questões econômicas: quanto custará uma equipe na tecnologia X? quanto custará a manutenção? quanto custará aquela otimização? terá retorno? Sem esta noção é natural para o profissional acreditar que os recursos são infinitos e a única solução possível é aquela tecnologicamente perfeita….humm… “perfeccionistas”… como sofremos com isto!!!

      Wallace Oliveira
      http://www.supravizio.com

  2. Denis disse:

    Parabéns!!! Artigo bem escrito e que resume bem os desafios da profissão. Numa época onde o “marketing” e o “networking” são mais valorizados que o conhecimento, é bom alguém lembrar a geração Y o valor do estudo…

  3. leogazzola disse:

    Belo artigo prof. Ze Luis. As últimas contratações da administração pública têm penado para, além do Gerente de Projetos, as execuções contratos de fábrica de software terem um bom Arquiteto de Software. Isso tem sido negligenciado, já que é mais evidente características/certificações de Ger. de Projeto serem exigidas. O resultado é o papel sobrar para o contratante, que toma decisões de arquitetura pelo que \”está na moda\”, sem necessariamente casar capacidade da equipe desenvolvedora ( que não conhece, pois são projetos outsourcing ) com as necessidades e requisitos da solução. Abraço, Chico

  4. Claudinei de Oliveira Junior disse:

    Há algum tempo atrás eu li uma matéria falando que o Arquiteto de Software estava entre os profissionais mais bem remunerados nos EUA, e pelo jeito ainda está, pela dificuldade em encontrar profissionais prontos para assumir este cargo. É a lei da oferta e da procura..

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: