Feed Artigos Comentários


Agile &Desenvolvimento &TI André Dourado em 14 abr 2009

Agilidade versus Arquitetura de Software

13/04/2009 — Eros Viggiano

Atualmente, existe uma aparente tensão entre a comunidade de praticantes de métodos ágeis e arquitetos de software ortodoxos. Os chamados agilistas entendem que os arquitetos produzem “muito papel”, enquanto que mudança nos requisitos (principalmente arquiteturais) provoca incômodo a alguns arquitetos de software em qualquer estágio do projeto. Comentaremos rapidamente alguns mitos de agilidade versus arquitetura de software.

Mito Quem costuma acreditar nisto Realidade
Arquitetura de software produz “muito papel”. Alguns adeptos de métodos ágeis. O processo de software adotado determina quais documentos são realmente necessários. Comunica-se somente o estritamente necessário.
Arquitetura de software implica em big design up front (intenção de criar todos os modelos no início do projeto). Alguns agilistas e arquitetos. A arquitetura deve respeitar a natureza do método. Em projetos ágeis, a arquitetura do software deve ser evolutiva. 
Requisitos arquiteturais não podem mudar a partir de um certo momento. Alguns arquitetos e engenheiros de processos. Métodos ágeis aceitam mudanças a qualquer momento, tendo impacto ou não sobre a arquitetura. O cliente deve sempre estar ciente das consequências de uma mudança de requisito (arquitetural ou não)
Softwares desenvolvidos com métodos ágeis não tem arquitetura. Ignorantes da engenharia de software. Todo software tem uma arquitetura, independente se alguém a projetou intencionalmente ou não.
“Arquiteto de software é somente um novo e pomposo título que programadores pedem para ter em seus cartões.”(*) Projetos ágeis não precisam do arquiteto. Alguns adeptos de métodos ágeis. Vários métodos ágeis prescidem de papéis. Mesmo que ninguém na equipe tenha o papel ou cargo de arquiteto de software, convém planejar a arquitetura.
Toda a arquitetura deve ser modelada no início do projeto. Alguns arquitetos de software. Novamente: o arquiteto deve respeitar a natureza do projeto. Se o método prescreve “prove com código sempre que possível”, é interessante realizar a arquitetura em software executável mesmo que não esteja completamente modelada.

(*) Esta é uma resposta atribuída a Kent Beck em OOPSLA 1992, segundo Philippe Kructhen.

Nossa convicção é que a disciplina de arquitetura de software pode contribuir para a redução de riscos técnicos mesmo em projetos que empreguem métodos ágeis. Para tal, em primeiro lugar, os trabalhos arquiteturais devem respeitar a natureza evolutiva de tais projetos. Em segundo, deve se ater a comunicar modelos arquiteturais apenas na medida exigida pelo método. Por exemplo, se a filosofia de desenvolvimento prega abandonar diagramas após a realização no modelo através do código, o arquiteto assim deve proceder. Outra situação: caso a equipe não faça uso de ferramentas CASE ou de modelagem avançadas, o arquiteto pode considerar a modelagem coletiva usando um quadro ou flip chart

Fonte: De Architectura

Post visualizado 429 vezes.

Um comentário para “Agilidade versus Arquitetura de Software”

  1. em 02 mai 2009 às 18:07 1.agilidade.net - ADSystems » Agilidade versus Arquitetura de Software escreveu …

    [...] de software ortodoxos. Os chamados agilistas entendem que os … Veja o post completo clicando aqui. Post indexado de: [...]

Trackback esse post | Subscreva os comentários pelo RSS Feed

Deixe um comentário