Quem é o arquiteto de Software?
O arquiteto de software é ainda um papel recente na comunidade Brasileira de software. Por consequência, muita confusão ainda existe sobre o que este papel realiza dentro de um desenvolvimento de software. Diferentemente do senso comum, um arquiteto não é um desenvolvedor sênior que evoluiu em sua carreira. Um desenvolvedor é especialista e tático. Um arquiteto de software é um generalista em sua essência e primordialmente estratégico. Isso não significa, entretanto, que o arquiteto vive em uma torre de marfim, criando decisões desconectadas da realidade. Um arquiteto deve trabalhar em intensa e forte colaboração com a equipe, apoiando o time na investigação dos pontos de relevância técnica de um projeto. Um arquiteto deve atuar como um coach, realizando a identificação dos mecanismos arquiteturais relevantes, motivando o time para a investigação e resolução destes mecanismos e apoiando o time do início ao fim do projeto.
Um arquiteto deve possuir as seguintes características:
- Possuir liderança técnica
- Ser hábil negociador
- Possuir conhecimentos de desenho e programação
- Possuir Conhecimentos do domínio da aplicação
- Ser capaz de tomar decisões e conduzir times de projetos.
Um arquiteto de software deve conhecer também outras disciplinas (ex: Gerência de Projetos) ou domínios (Hardware, Dados ou Segurança), além da pura implementação J2EE ou .NET.
Para lidar com toda a complexidade de TI temos um outro papel, chamado de arquiteto de sistemas. Podemos definir os macro-conhecimentos técnicos de um arquiteto de sistemas nos seguintes domínios:
Arquiteto de Software - Apoio no desenvolvimento de softwares em tecnologias como J2EE, .NET ou CORBA. Um arquiteto de software é responsável pela arquitetura executável que suporte os requisitos não-funcionais de um sistema bem como os requisitos funcionais mais críticos.
Arquiteto de Hardware e Redes - Apoio na definição de topologias físicas de redes e máquinas, operação destas máquinas e manutenção de acordos de níveis de serviço - SLAs .
Arquiteto de Comunicação/Dados - Apoio nos processos de comunicação e troca de informações tais como EDI, EAI, B2C, B2B, SOA e ESB, entre outros padrões.
Arquiteto de Segurança - Apoio nos procesos de segurança, tais como autenticação, autorização, transporte, single sign-on, criptografia, entre outros.
Arquiteto de Processos - Apoio na definição e estruturação de processos de negócio em BPEL e na coreografia de processos de negócios em ambientes SOA/ESB.
Além disso, um arquiteto também deve possuir excelente capacidade de conduzir debates e realizar comparações entre as arquiteturas candidatas dos problemas do dia a dia. A paciência e a capacidade de apoiar os times de projetos também é muito bem-vinda dentro do perfil de um arquiteto, como ressaltado anteriormente.
Dada a dificuldade e grande desta tarefa, é muito comum que empresas formem o que chamamos de time de arquitetura, composta por um conjunto de pessoas com bom domínio de cada um dos itens acima e excelente capacidade de conduzir discussões e realizar apoio ao times de projetos.
O time de arquitetura ou arquiteto é peça fundamental para a garantia de sucesso de projetos, e tem como principais atividades:
- Identificação, análise, mitigação e contigência de riscos técnicos;
- Definição, coordenação e execução das estratégias técnicas do projetos;
- Treinamento e acompanhamento da equipe nos mecanismos arquiteturais definidos (ex: Políticas de Single Sign-On, Frameworks J2EE ou uso de protocolos como IIOP ou RMI);
- Garantia que projetos sejam repassados para operações sem maiores contratempos.
- Coletamos também um conjunto de artigos onde autores de renome descrevem o que é o arquiteto de software e o que não é o arquiteto de software.
Quem é o arquiteto de software?
http://www.bredemeyer.com/who.htm
Quem precisa de um arquiteto?
http://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf
O papel do arquiteto de software.
http://www-128.ibm.com/developerworks/rational/library/mar06/eeles/index.html
[…] Quem é o arquiteto de software?, por Marco Aurélio Mendes, 9 de outubro de 2006. […]
Pingback de Blog do Márcio d’Ávila » Arquiteto de software — 7 de Julho de 2007 @ 12:30
Estou precisando de um arquiteto de software
Comentário de Paulo — 2 de Setembro de 2008 @ 16:09
[…] Escrevi há algum tempo um post sobre o papel do arquiteto, onde discutia a necessidade do arquiteto dominar habilidades além do espectro técnico da engenharia de software. Li recentemente dois estudos ricos sobre o tema que gostaria de compartilhar neste blog. […]
Pingback de A Ovelha de Sete Pernas « De Architectura — 3 de Novembro de 2008 @ 18:36
Sou arquiteta formada há 2 anos, gostaria de saber se existe alguma pós-graduação focada neste assunto o qual achei bem interessante, gostaria dessa experiencia.
Grata desde já,
Giselle
Comentário de Giselle — 27 de Novembro de 2008 @ 11:36
Boa noite, Giselle. Olhe por favor o site do Instituto GTI (http://www.institutogti.com.br). Ministro aulas lá em um curso lato-sensu de Estratégias em Arquiteturas de Sistemas.
Um bom site a respeito também é a rede social PANGEA (http://www.pangeanet.org)
Comentário de marco — 27 de Novembro de 2008 @ 22:26
[…] O primeiro nível (mais interno) na figura mostra a arquitetura de software. Esta arquitetura lida com o desenho de aplicações corporativas em nível de software. O desenho inclui o uso de boas estratégias para a modelagem de software e a aplicação correta de tecnologias (ex: Java EE, .NET, Ruby ou COBOL) para a construção e entrega detes softwares. O arquiteto de software é o papel responsável por estas atividades. O DeArchitectura lida primordialmente com artigos de arquiteturas de software, para o arquiteto de software. […]
Pingback de As Ondas Arquiteturais « De Architectura — 2 de Dezembro de 2008 @ 23:44