|
|||||
Estabelecendo a estratégia arquiteturalEntendemos que o arquiteto de software é o estrategista técnico do produto de software. O arquiteto de software (ou time de arquitetura) deve ser capaz de estabelecer, planejar e executar uma estratégia técnica para o software para atingir a visão do produto. Neste post, iremos discutir sobre o desenvolvimento da estratégia arquitetural. Há algum tempo discutimos sobre a necessidade de definir uma visão da arquitetura do software, isto é, onde a arquitetura pretende chegar e como ela irá contribuir para concretizar a visão do produto. A visão arquitetural declara os objetivos pretendidos com a arquitetura. Também é interessante que a visão contemple princípios arquiteturais a serem seguidos, norteando os arquitetos e disciplinando suas atividades. A visão deve ser suficiente para provar que a equipe é capaz de desenvolver o projeto e conseguir o patrocínio.
Em seguida, convém que o time de arquitetura realize uma análise estratégica e descubra quais são as questões-chave para a arquitetura – as quais chamaremos de diretrizes arquiteturais. O time deve promover discussões com os stakeholders, investigando os interesses envolvidos, e analisar o contexto do projeto e organizacional de forma a revelar todas as forças quem podem influenciar o produto. Nesta análise, é imprescindível identificar e tratar riscos técnicos – cuja mitigação deve envolver o gerente do projeto. Invariavelmente o contexto dos projetos de desenvolvimento de software é permeado por oportunidades e ameaças como, por exemplo, prazos políticos, restrições tecnológicas, expertise do time de desenvolvimento, patrocínio, etc. Ao final desta atividade, o time deve contar com um conjunto de diretrizes arquiteturais. Ou, até mesmo, indicar que um projeto é inviavel tecnicamente dentro de tal contexto. De posse das diretrizes arquiteturais, o time de arquitetura deve formular a estratégia. Atualmente a formulação de uma estratégia arquitetural pode ser considerada uma arte, dependendo muito da experiência da equipe. De uma forma geral, é importante identificar uma estratégia que atenda às diretrizes. Ao formular a estratégia, o arquiteto de software ou o time de arquitetura deve levar em consideração as experiências pregressas e se perguntar “qual estratégia melhor poderá responder às diretrizes arquiteturais?” Estilos e padrões arquiteturais, sejam públicos ou de conhecimento do arquiteto, podem conduzir a escolha pois aproveitam experiências bem sucedidas. O principal produto desta atividade é a escolha dos principais mecanismos arquiteturais seguida de orientações sobre como desenvolvê-los. O planejamento da definição arquitetural permite que a estratégia seja traduzida em ações culminando em um plano detalhado. O plano de definição arquitetural organiza a decomposição dos subsistemas, módulos ou componentes do sistema de software. Este plano deve ser fomentar à Estrutura Analítica do Projeto (EAP ou WBS, em inglês), auxiliando o gerente de projeto à organizar as atividades de um projeto dirigido pela arquitetura. Enfim, a execução da estratégia arquitetural é caracterizada pelas atividades de gestão de requisitos arquiteturais, modelagem arquitetural e avaliação de arquiteturas. Note que o ciclo formado tem forte relação com o ciclo de PDCA. Na execução, o emprego de táticas arquiteturais – sejam de mercado, acadêmicas ou conhecidas pelo arquiteto – consolida a definição arquitetural. Mas isto já é uma outra (longa) história… Referências:
|
|||||
|
Copyright © 2012 Arkhi - All Rights Reserved |
|||||