Pangea

A primeira rede social sobre arquitetura de software do Brasil

Marco Mendes

Você acredita em arquiteturas de software evolutivas?

Até que ponto uma arquitetura evolucionária deixa de ser evolucionária e se torna caótica?
Existe limite claro para esta questão ou não?

Leitura interessante sobre este tema, de Neal Ford, que trabalha na Thought Works.
http://www.ibm.com/developerworks/java/library/j-eaed1/index.html?S...

Tags: arquitetura, ágil

Compartilhar

Responder esta

Respostas a este tópico

Tratando-se de uma prática ágil, para que não se torne caótica acredito que o arquiteto deva participar ativamente do projeto para garantir sua aplicação que ao contrário do que parece exige mais disciplina que abordagens convencionais.

- Uma coisa fundamental é trabalhar junto com a equipe e não empurrar um documento por baixo da porta.
- Dar visibilidade para todos os envolvidos. Uma abordagem de múltiplas visões neste ponto ajuda mas não se esquecer da comunicação face-a-face.
- Evitar documentação muito extensa trabalhando em amplitude para mitigar riscos.
- Concentrar não só nas principais decisões técnicas mas também nas razões para estas decisões.
- Validar a arquitetura a cada iteração com provas de conceito, testes e principalmente: Software funcionando.
- Modelar a arquitetura de forma que possa absorver as mudanças que certamente vão surgir ao longo do projeto.

de Pangea, Adriano.

Responder esta

É claro que não existe limite claro. Toda aplicação tem caos, tem complexidade desnecessária e tem inconsistências, mesmo quando novinha. As vezes fica difícil o próprio arquiteto enxergar como a aplicação está evoluindo, enquanto um novo usuário ou desenvolvedor consegue ver plenamente. É uma questão que claridade, consistência e coerência no design. Dá para o desenvolvedor adivinhar como uma parte da aplicação deve ser implementado baseado no que foi feito em outra parte do sistema? Tem como comunicar a idéia básica da arquitetura através de um número pequeno de conceitos, ou tem muitas exceções a serem explicadas?

Como diz no artigo que você referenciou, arquitetura é a coleção de "conhecimentos compartilhados" pelos principais designers do sistema. Então, uma boa medida do nível de caos no sistema é a quantidade de conhecimentos que precisem ser compartilhados para entender a arquitetura.

Responder esta

Ótimo artigo;

só complementando o que os amigos disseram; o importante é que essa evolução seja feita sob um framework muito bem estruturado para que não haja inconsistência para futuras manutenções no software !

Flavio Clesio - Esporte Social

Responder esta

A intenção da arquitetura ser evolutiva é exatamente criar um ponto de 'corte'. Uma forma de ponderar entre realidade e utopia. Muitas vezes o necessário não é o belo ou o melhor, mas para quem gosta é difícil encontrar essa fronteira.
A questão do caos, se dá na má concepção das premissas iniciais. Criar um ponto de corte significa que não vou ter o universo, mas preciso ter um mundo 'operacional' e bem coordenado. Criando uma analogia com uma empresa: Não é pelo tamanho dela que você mede sua qualidade, o mais importante é crescer de forma sadia. Com a arquitetura o processo é o mesmo e ainda assim, mesmo com um crescimento maduro você vai encontrar pontos para serem refeitos, pelo simples fato de que a tecnologia é evolutiva. Não adianta você achar que seu modo de executar determinada operação será o melhor sempre. Há milhares de pessoas estudando para prover alguma coisa que pode agregar ou subsituir algo em seu framework de código, processo ou desenvolvimento.

Responder esta

Responder esta

RSS

Parcerias

Fórum

Juliano Viana

Cloud Computing e Arquitetura de Software 4 respostas 

Iniciado por Juliano Viana. Última resposta de Luiz Carlos Faria 4 Nov.

Charles Fortes

Utilização de POA (Programação Orientada a Aspectos) para adaptação de software 8 respostas 

Iniciado por Charles Fortes. Última resposta de Luiz Carlos Faria 4 Nov.

Marco Mendes

Você acredita em arquiteturas de software evolutivas? 4 respostas 

Iniciado por Marco Mendes. Última resposta de Luiz Carlos Faria 4 Nov.

Adriano Tavares

Iniciar pela documentação é uma boa forma de introduzir arquitetura de software? 2 respostas 

Iniciado por Adriano Tavares. Última resposta de Ricardo Ferreira 3 Nov.

Jose Elvano Moraes

Oracle OpenWorld 3 respostas 

Iniciado por Jose Elvano Moraes. Última resposta de Adriano Tavares 21 Out.

Sobre

Adriano Tavares Adriano Tavares
&

Marco Mendes

Marco Mendes

criaram esta rede social.

Badge

Carregando...

© 2009   Criado por Adriano Tavares e Marco Mendes

Badges  |  Relatar um incidente  |  Privacidade  |  Termos de serviço