Architect X Engineer
Por José Iago Pereira Araújo
(jose.araujo@ccc.ufcg.edu.br)
Neste mês, conheça um pouco sobre duas profissões na área de desenvolvimento de software, que apesar de possuírem funções diferentes, muitos ainda desconhecem o papel de cada uma no processo de desenvolvimento.

Fatores como inclusão digital e globalização têm aumentado cada vez mais a demanda por softwares e aplicativos com o intuito de solucionar problemas de empresas ou de simples entretenimento.

Devido a isso, duas profissões com finalidades semelhantes, mas com funções bem diferentes, vêm conquistando cada vez mais espaço no mercado de trabalho, especialmente nos países desenvolvidos, são elas: Software Architect (Arquiteto de Software) e Software Engineer (Engenheiro de Software).

Software Architect

Antes de tudo, o que é Arquitetura de Software? É a estrutura do sistema formada pelos seus componentes de software, propriedades externamente visíveis desses componentes e pelos relacionamentos entre eles, segundo o livro Software Architecture in Practice de Len Bass, Paul Clements e Rick Kazman.

A função de um Software Architect é estabelecer a estrutura geral da arquitetura de um software, entendendo a função de cada componente, bem como as interações e dependências entre eles, com o intuito de quebrar a complexidade do desenvolvimento de aplicações em "pedaços" menores e de fácil gerenciamento.

O papel do Software Architect pode variar bastante dependendo de como é a sua participação e qual o tipo do projeto em que está envolvido. Algumas de suas obrigações podem incluir:

  • Compreender os requisitos não funcionais (qualidades) do sistema, definidos pelo cliente ou usuário;
  • Tomar várias decisões ao longo do projeto, a exemplo do que e como usar para alcançar uma solução;
  • Definir uma metodologia de projeto;
  • Ditar normas técnicas, como padrões de codificação e frameworks, ao invés de impor restrições aos desenvolvedores;
  • Manter um bom nível de comunicação com os integrantes da sua equipe de desenvolvimento de software.

Para atuar nessa área, é necessário ter um grande conhecimento em técnicas de modelagem de casos de uso, requisitos do sistema, técnicas de design de software e UML (Unified Modeling Language), bem como conhecer a arquitetura do sistema, o papel dos testes de sistema e os princípios de gerenciamento de configuração (Controle de versões, Controle de mudanças e Integração Contínua).

Além dos conhecimentos técnicos, é fundamental que o Software Architect possua:

  • Boa capacidade de comunicação para poder expor seus argumentos e conquistar confiança;
  • Habilidade de liderança para conduzir sua equipe e tomar decisões importantes, assim como fazer com que elas sejam cumpridas;
  • Experiência ou facilidade em resolver problemas sob pressão.

A falta de profissionais qualificados no mercado de trabalho, unido ao desenvolvimento tecnológico em diversas empresas, vem fazendo com que o Software Architect seja cada vez mais valorizado, com um salário em torno dos 5 e 6 mil reais nas principais cidades brasileiras de acordo com uma pesquisa feita nos sites da Catho e link(http://www.ceviu.com.br/,CEVIU), podendo aumentar consideravelmente de acordo com o porte da empresa e o país (veja ao fim da matéria informações sobre a profissão nos EUA).

Software Engineer

Um Software Engineer é responsável pelo design e implementação de várias soluções em softwares, o que o torna diferente do Software Architect, que é responsável pela visão geral do projeto, sem se apegar muito aos detalhes e regras de implementação.

Esse profissional pode atuar no desenvolvimento de jogos, aplicações e sistemas que satisfazem a necessidade do cliente. Devido a isso, o seu trabalho é geralmente de natureza técnica e complexa, envolvendo conhecimentos da área de Computação atrelados a um bom conhecimento matemático.

Algumas de suas principais atividades são:

  • Pesquisar e criar novos programas;
  • Adaptar-se a novas tecnologias;
  • Criar e impor metodologias de desenvolvimento de sistemas;
  • Criar especificações técnicas e planos de testes, bem como a documentação operacional do sistema;
  • Adequar o padrão de qualidade e desempenho dos projetos e produtos gerados com um planejamento financeiro.

É fundamental que o Software Engineer tenha conhecimento sobre Linguagens de Programação, assim como sobre as ferramentas utilizadas, ambientes de desenvolvimento, linguagem UML, Banco de Dados, requisitos do sistema, Matemática e Física. Experiência ou conhecimento em Administração ou Gerência da Informação também é visto com bons olhos pelas empresas.

Para ser um bom profissional nesse ramo da computação também é necessário ter:

  • Habilidade para resolver problemas e atentar aos detalhes, mesmo sob pressão do cliente ou com a aproximação do prazo estipulado;
  • Capacidade de comunicação, não apenas com o cliente, mas também com os colegas de trabalho;
  • Facilidade em aprender novas tecnologias, devido ao avanço tecnológico que ocorre quase que diariamente;

A experiência e o porte da empresa são decisivos para a conquista de um bom emprego com ótimas oportunidades para um Software Engineer. Segundo o site da revista Info da editora Abril, o salário desse profissional está em torno de 5,5 mil reais, podendo aumentar com o ganho de experiência.

Apesar de diferentes, ambas as profissões são muito valorizadas por empresas de todo o mundo e são consideradas bastante promissoras. Essas estão entre as profissões mais bem pagas dos EUA segundo o site do jornal O Globo

Jornal PETNews - Edição: Caio Paes - Revisão: Janderson Jason e Joseana Fechine
Grupo PET Computação UFCG, 2011. All rights reserved.