DesenvolvimentoComo fica a arquitetura de software em um projeto...

Como fica a arquitetura de software em um projeto ágil?

-

Como fica a arquitetura de software em um projeto ágil?Existem algumas respostas prontas para essa pergunta, todavia atacar o cerne da questão nem sempre é fácil, pois envolvem a transição e a reeducação de profissionais acostumados à forma antiga de trabalhar.

Antes de mais nada, as respostas prontas a essa pergunta são: os textos de Arquitetura Evolucionária do Neal Ford, ou as técnicas de Arquitetura Ágil do J. D. Meyer, ou os textos de Arquitetura Lean do James O. Coplien.

Já para uma resposta mais completa precisamos entender o peopleware envolvido.

Nossos técnicos foram ensinados a pensar na arquitetura de um software antes do início do projeto e as metodologias ágeis exigem que a equipe técnica refine a arquitetura a cada iteração.

Isso ocorre porque as metodologias ágeis em sua maioria abraçam o escopo flexível, que por consequência trazem requisitos não funcionais e atributos de qualidade flexíveis no mesmo grau.

Figura 1 - Visão tradicional e oposta a da arquitetura de software em um projeto ágil
Figura 1 – Visão Tradicional

Outro contraponto é que ao focar em entregas parciais do software funcionando, nem sempre se tem o tempo necessário para implementar ou comprar toda a arquitetura supostamente necessária para todo o projeto logo na primeira interação.

De certa forma estes dois pontos fazem com desenvolvedores e arquitetos desistam de pensar fora da caixa e abraçar a causa do desenvolvimento ágil pois acreditam que isso gera retrabalho e que suas soluções vão estar sempre incompletas.

Esses profissionais estão acostumados com a “forma normal”, na qual se planeja, se implementa e se executa toda a arquitetura no início do projeto. Essa concepção está mostrada na figura 1, os itens em cinza são itens relacionados a arquitetura do software e os itens em vermelho relacionados ao design.

Arquitetura de Software em um Projeto Ágil

Em contra partida a arquitetura de software em um projeto ágil vai exigir que a arquitetura seja incrementada durante as interações do seu projeto, pois o detalhamento dos requisitos não funcionais do projeto ocorre o tempo todo. Estes itens são representados no incremento de caixas na figura 2 entre as iterações

Figura 2 - Visão da Arquitetura de Software em um projeto ágil
Figura 2 – Visão Ágil

A prática tem mostrado que as premissas iniciais de um projeto dificilmente são todas corretas, e a adição de novos componentes na arquitetura de um software podem ocorrer por diversos motivos, como: seu cliente mudou de ideia e quer uma integração com o Facebook; o mercado mudou e o projeto precisa ser melhor que o do concorrente; ou o projeto teve mais sucesso que o esperado e você precisa de um ambiente clusterizado. Estes itens arquiteturais descobertos durante a execução do projeto são representados pelos itens em azul na figura 2.

Quando se trabalha planejando toda a arquitetura antes do início do projeto, também é comum que sejam adicionados componentes arquiteturais completamente desnecessários. Isso pode ter como causa o complexo de Nostradamus ou o complexo do café da manhã no hotel.

No complexo de Nostradamus existe uma previsão que algo catastrófico vai acontecer e que se a arquitetura não for robusta, abstrata ou maleável o suficiente o mundo vai acabar… Mas no fim a catástrofe não ocorre e muito dinheiro foi jogado fora.

O complexo do café da manhã do hotel ataca a todos os clientes que exigem que no café da manhã do hotel existam frutas de todas as regiões do brasil, rosquinhas e pães de todos os lugares do mundo mas no fim precisavam apenas de um copo de café com leite e um pão na chapa.

Itens relacionados a estes dois complexos são mostrados na figura 1 e não na figura 2, pois por não possuírem retorno do investimento tangível dificilmente serão adicionados a uma arquitetura que evolui de acordo com o projeto.

Não é que as práticas tradicionais não sejam adequadas para o mundo ágil, na realidade, existe uma necessidade de adaptação de alguns dos conceitos e técnicas clássicas de desenvolvimento de software assim como dos profissionais envolvidos.

Dessa forma voltamos as respostas prontas, que é a aplicação de  conceitos e técnicas de Arquitetura Evolucionária, Arquitetura Ágil, ou Arquitetura Lean, os quais serão abordados em outros textos.

Referências

http://www.ibm.com/developerworks/br/java/library/j-eaed10/

http://www.amazon.com/Lean-Architecture-Agile-Software-Development/dp/0470684208

http://apparch.codeplex.com/wikipage?title=How%20To%20-%20Design%20Using%20Agile%20Architecture&referringTitle=How%20Tos

[Crédito da Imagem – Desenvolvimento de Software – ShutterStock]

Anderson Diniz Hummel
Na Adaptworks sou Agile Coach.Na Universidade Presbiteriana Mackenzie sou professor dos cursos da FCI das disciplinas que envolvem Java nos mais diversos sabores.Na Faculdade Impacta Técnologia sou professor de Arquitetura de Software do curso de Pós Graduação em Engenharia de Software.

Latest news

4 bons conceitos para apoiar a sua identidade de marca

No mercado, existem marcas que, ao falar seus nomes, rapidamente associamos com determinadas palavras que são boas para quem...

Estratégia de comunicação B2B para redes sociais: dos posts para as vendas!

Adaptar seu conteúdo permite experimentar diferentes maneiras de mostrar sua empresa de TI, os benefícios dos seus serviços e não ser tão repetitivo com algumas táticas.

IA para MSPs: como a inteligência artificial está transformando o mercado de serviços gerenciados

A Inteligência Artificial (IA) está desempenhando um papel crucial na transformação dos Prestadores de Serviços Gerenciados (MSPs). Mais do...

O que é integração de sistemas de RH e como ela facilita o trabalho?

A integração de sistemas de RH traz muitos benefícios, principalmente em termos de otimização do tempo e de recursos. Sem ela, diferentes plataformas podem gerar dados desconexos e difíceis de consolidar, o que pode levar a erros e à sobrecarga de trabalho manual.
Publicidade

Cibersegurança como pilar da resiliência empresarial: a abordagem estratégica dos MSPs

Na última década, a segurança cibernética deixou de ser um tema restrito às áreas de TI para se tornar...

ADDEE traz HaloPSA ao Brasil, apostando na eficiência para MSPs

Plataforma de atendimento e automação promete otimizar a gestão de serviços com funcionalidades integradas para todo o ciclo de vida...

Must read

4 bons conceitos para apoiar a sua identidade de marca

No mercado, existem marcas que, ao falar seus nomes,...

Estratégia de comunicação B2B para redes sociais: dos posts para as vendas!

Adaptar seu conteúdo permite experimentar diferentes maneiras de mostrar sua empresa de TI, os benefícios dos seus serviços e não ser tão repetitivo com algumas táticas.
- Advertisement -

You might also likeRELATED
Recommended to you