Para quem não sabe para onde vai, qualquer caminho serve

Postado em Atualizado em

574eeb8b9af513-13393298alice-no-pais-das-maravilhas-dublado-1080pHá uma cena que quero comentar na obra “Alice no país das maravilhas” o encontro de Alice com o gato. Na cena, Alice está perdida, e de repente, vê no alto da árvore o gato. Ela olha para ele lá em cima e diz assim:

Alice: “Você pode me ajudar?”
Gato: “Sim, pois não.”
Alice: “Para onde vai essa estrada?”
Gato: “Para onde você quer ir?”
Alice: “Eu não sei, estou perdida.”
Gato: “Para quem não sabe para onde vai, qualquer caminho serve.”

Muitas vezes vejo essa cena se repetir com o pessoal de desenvolvimento perguntando nos fóruns, e-mails e listas algo como:

“Qual melhor framework jA ou jB? Qual a melhor plataforma A , B, C? Qual melhor arquitetura em fazer C, D ou F? Qual framework web usar jWeb1, jWeb2 ou jWeb3?”

Como alguém poderia decidir por exemplo em usar JSF ou VRaptor ou ExtJ se não sabe os detalhes relacionados aos requisitos, contexto, ambiente e restrições da solução? A resposta seria igual ao do gato:

“Para quem não sabe para onde vai, qualquer caminho serve”.

Ou até pior, os céticos poderiam detonar uma opção e exaltar a outra ou pode aparecer aqueles “amantes emocionais” de tecnologia dizendo “usa aquela opção que é legal, eu gosto muito”.

O responsável por essa decisão, normalmente um arquiteto, deveria fazer suas escolhas arquiteturais e tecnológicas baseadas em justificativas coerentes no próprio cenário de requisitos existente a ser alcançado, características, restrições e outros limitadores corporativos externos como: custo, investimento, capacitação, curva de aprendizado, produtividade, gestão de equipe, cronograma e etc, e não em gosto, preferência, opiniões sem contexto ou qualquer outra coisa sem fundamentos lógicos e coerente.

As características da solução irão inevitavelmente se contradizer, alguma decisão deverá ser tomada, não será possível endereçar solução a todas as situações, mas algum caminho precisará ser traçado. Um exemplo comparativo simples, seria algo assim:

Exemplo 1

Contexto: Preciso viajar de Curitiba para São Paulo
Soluções: moto? carro? caminhão? avião?
Decisão: carro.
Justificativa: moto demora, não tenho carteira para caminhão e não tenho dinheiro para passagem de avião.

Exemplo 2

Contexto: Preciso viajar de Curitiba para São Paulo e levar uma geladeira
Soluções: moto? carro? caminhão? avião?
Decisão: caminhão.
Justificativa: moto não resolve, carro não resolve, e não tenho dinheiro para passagem de avião.

Exemplo 3

Contexto: Preciso viajar de Curitiba para São Paulo, levar uma geladeira e participar de uma reunião de negocio daqui 2 horas.
Soluções: moto? carro? caminhão? avião?
Decisão: sou obrigado a gastar com avião.
Justificativa: moto não resolve, carro não resolve, caminhão não resolve.

Como pode ser percebido, se existir um requisito tal de produtividade, talvez o framework A pode ser a melhor que o B, mas caso exista outro requisitos relacionado com segurança que pese mais que outras características, o framework B pode mais adequado que o A.

Não existe framework Java melhor ou pior, tudo esta relacionado em abrir um ponto de visão baseado em conhecer as opções, suas vantagens, desvantagens, virtudes, fraquezas e contrastar com os pesos das caraterísticas dos requisitos! Java é fantástico possuindo vários opções de framework para fazer diferente a mesma coisa. Então querido, seja livre, seja Java! Não se limite! Seja maduro e não tenha sentimentos para frameworks, use o que precisar, quando precisar! Toda produto/framework tem seu valor!

Com este ponto de vista, dizemos que a arquitetura emerge destas informações. Uma vez que o projeto começa a andar e pequenas fatias de releases começam a ser entregues, a solução pode passar mudanças de requisitos, características, ambientes e restrições precisando então ser melhorada e evoluída para um próximo nível, necessitando ou não a troca das opções de frameworks feitas anteriormente. Outra arquitetura emerge então destas novas informações respondendo, rapidamente a necessidades e cenários emergentes.

“O céu e a terra desaparecerão, mas as minhas palavras ficarão para sempre.” Mateus 24:35

Anúncios

Um comentário em “Para quem não sabe para onde vai, qualquer caminho serve

    […] Para quem não sabe para onde vai, qualquer caminho serve […]

Os comentários estão encerrados.