No meu primeiro post sobre o papel do arquiteto de software vamos falar um pouco sobre as habilidades que um profissional precisa ter para alcançar essa condição. Dentre muitos fatores que iremos tratar aqui, um dos primeiros é que um arquiteto de software precisa estar apto para resolver problemas, através da definição de uma solução utilizando tecnologia.

Porém é preciso definir qual a melhor maneira de aplicar seus conhecimentos abstratatos  de forma objetiva, para que a tecnologia seja utilizada da melhor forma, não apenas por modismos e sim, atingindo os objetivos ao que se propõe na construção de uma solução de software.

O conjunto de conhecimentos necessários, passam pelo domínio do problema, conceitos envolvidos para a solução, o uso de técnicas e padrões de mercado para agilizar e melhorar o desenvolvimento do software durante todo o ciclo de vida de um projeto, como exemplificado na figura abaixo:

Áreas chaves de conhecimento para um Arquiteto de Software

Áreas chaves de conhecimento para um Arquiteto de Software

Parece fácil falar sobre isso de forma tão simples, mas o desafio está em como um arquiteto de software aplicará todos esses conhecimentos na definição e desenvolvimento de uma solução robusta e aderente aos requisitos do software ao qual ela atenderá. Na próxima figura está ilustrado quando esses conhecimentos deverão ser utilizados durante o desenvolvimento do projeto.

O uso das habilidades de um Arquiteto nas fases de desenvolvimento

O uso das habilidades de um Arquiteto nas fases de desenvolvimento

A figura acima, ilustra que os diferentes tipos de habilidades são utilizadas durante todo o processo de desenvolvimento, iniciando pela definição do problema (conhecimento do domínio/habilidade para conceitualizar) até o desenvolvimento da solução (utilização de técnicas/habilidade para utilizar padrões).

No próximo post tentaremos sumarizar e contextualizar cada um das áreas definidas nesses gráficos.

Fontes: The Architecture Journal e www.iasahome.org