Albert Einstein disse uma vez: ‘Qualquer tolo inteligente pode tornar as coisas maiores e mais complexas … É preciso um toque de gênio – e muita coragem para se mover na direção oposta.’
Durante minha consultoria, vi muitos aplicativos com arquitetura muito complexa e me pergunto por que ela tem que ser tão complexa. Qual é a razão por trás de tal Arquitetura. Os principais motivos que sempre ouço são: alguém sugeriu essa arquitetura, ou algum artigo falou sobre ela, ou foi implementada com sucesso em algum outro projeto anteriormente. Conceitos como Duas camadas, Três camadas, N camadas, BAL, DAL, etc, são modelos bons, experimentados e testados, que podem caber em quase qualquer arquitetura que possamos implementar hoje. Mas seu aplicativo precisa disso? Mas você já pensou em implementá-lo do nada? Precisamos avaliar.
As necessidades de aplicativos de hoje são diferentes de uma década ou 5 anos atrás. Hoje os clientes exigem abordagem móvel inicial, suporte offline, alta disponibilidade e menos dores de cabeça com infraestrutura. A sua arquitetura é voltada para isso?
Um bom arquiteto sempre se mantém atualizado com as arquiteturas novas e emergentes. Sempre se pergunta, posso simplificar? posso replicá-lo facilmente para outro projeto de natureza semelhante? posso explicar facilmente a arquitetura em 2 minutos para qualquer pessoa, dos desenvolvedores ao gerenciamento, sem ficar perplexo?
Sempre acredite no KISS [Keep It Simple Stupid]