Cuidado ao cortar sua arquitetura

Quando estamos modelando o nosso sistema, é bem comum pensarmos em camadas. Talvez um dos modelos de maior sucesso no mundo do desenvolvimento (web ou não) é o MVC. A separação em camadas é bem interessante e facilita bastante a separação de responsabilidades e definição de limites.

No entanto, por mais lógico que pareça separar o desenvolvimento por camadas, dificilmente ajuda. Imagine a seguinte situação: uma nova funcionalidade precisa ser desenvolvida, pra simplificar pense num CRUD qualquer. Como você dividiria essa tarefa entre as pessoas da sua equipe?

Cortes horizontais

Dividir a tarefa em camadas, onde um par vai trabalhar no modelo (provavelmente mudando o banco de dados) e outro par fazendo a parte de views (fazendo algo na interface), pode parecer a decisão correta, afinal você pode colocar o especialista em banco de dados pra fazer a parte de modelos e outra pessoa que detona em CSS pra construir uma boa interface.

O problema dessa divisão é que ela exige uma sincronia muito grande entre a equipe. E (aqui vem um dos piores males do desenvolvimento de software) abre um espaço gigantesco para suposições.

O par que está desenvolvendo o back-end precisa construir tudo o que o par que vai trabalhar na interface vai precisar. E se a comunicação não acontecer, muita coisa pode ser feita a mais ou a menos. Esse é o maior perigo quando são feitos cortes horizontais na arquitetura.

Cortes Verticais

Agora imagine que, ao implementar a mesma funcionalidade de CRUD, vamos dividir as tarefas em ações. Então um par faz a parte de criação, por exemplo, e outro faz a visualização.

Obviamente a comunicação precisa acontecer para garantir que tudo seja feito de maneira homogênea, os nomes das tabelas são os mesmos, as views seguem os mesmos estilos, etc. Mas a comunicação sempre precisa acontecer, esse é o real segredo de projetos bem sucedidos!

No entanto, o par que desenvolve a visualização das entidades sabe exatamente o que vai ser necessário nos modelos para que as views funcionem. Assim, minimizamos o espaço para suposições, pois cada par pode implementar exatamente o necessário, nem mais nem menos.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s