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
Olá! Desde que coloquei o site
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: [...]