Gerência de Projetos

Ξ Deixe um comentário

E agora, qual tecnologia eu uso?

publicado por Denis Ferrari

Todo projeto de software possui necessidades comuns, que resolvemos aplicando alguma tecnologia, tais como: ORMs, Containers de IoC, Frameworks web, etc. Para cada problema comum, existe um leque de tecnologias com abordagens diferentes de resolução, o que nos leva à seguinte questão: Como decidir entre uma tecnologia ou outra?

Muitas pessoas sentem dificuldade na hora de decidir, dentre todas as tecnologias atuais, qual é a mais indicada para resolver o seu problema. O que é normal, afinal, algumas tecnologias são tão parecidas que só pesquisando a fundo é possível compreender suas distinções.

O problema é que nem sempre há tempo para pesquisar profundamente uma tecnologia e levantar toda a informação necessária para tomar uma decisão, então, costumo usar um processo de eliminação simples: Avaliação de limitações e alinhamento de conceitos.

Toda tecnologia possui limitações, e é mais importante conhece-las do que navegar no mar de vantagens que ela oferece. Ao invés de avaliar o que uma tecnologia faz, busque quem teve problemas com ela, em quais cenários ela não atendeu e por que. Se esbarrar com uma limitação que atrapalhe seu projeto, pule para avaliação da próxima tecnologia.

Toda tecnologia possui limitações, e é mais importante conhece-las do que navegar no mar de vantagens que ela oferece.

Na página do Entity Framework, por exemplo, você encontra várias características legais que vendem bem a tecnologia, porém, a mesma tem uma performance horrível no banco de dados Oracle, o que exclui a ferramenta desse cenário, independente do quão legal ela seja.

Depois de eliminar tecnologias avaliando suas limitações, busco um alinhamento de conceitos. Uma tecnologia usa um conceito para resolver o problema, conceito esse que o time que criou a tecnologia julgava ser o correto. A questão é: O conceito da tecnologia está alinhado com os conceitos que o seu projeto irá carregar?

Um conceito que geralmente trabalho é que classes de negócio não devem carregar tecnologia. O XPO, da DevXpress, por exemplo, trata a persistência dos objetos com uma classe base nas classes de negócio, já o NHibernate utiliza de estratégias de mapeamento separadas das classes de negócio. Conceitualmente, é o NHibernate que está alinhado com o projeto.

O conceito da tecnologia está alinhado com os conceitos que o seu projeto carrega?

Esse método simples de avaliação é indicado apenas para auxiliar na tomada de decisão quando não há informações suficientes sobre as tecnologias em questão. É recomendável investir tempo de pesquisa e estudo para as tecnologias eleitas pelo método, de preferência, com provas de conceito.

Outra prática eficaz é realizar pesquisas quando não há necessidade direta. Pesquisar por pesquisar. Quanto mais tecnologias você conhecer profundamente, mais bagagem tratá para as suas decisões. Reserve um tempo específico para aumentar o seu cinto de utilidades ou apenas melhorar sua expertise nele.

Autor

Denis Ferrari é um profissional com foco em qualidade e melhoria das técnicas e metodologias de desenvolvimento de software. Especialista na plataforma .NET, atua como Arquiteto de Software na Mindworks. Escreve artigos para os principais portais de desenvolvimento e também para o blog Heróis da TI. Capixaba, atua na comunidade local através de palestras gratuitas e participação ativa nos principais grupos sobre .net e metodologias ágeis.

Denis Ferrari

Comentários

You must be logged in to post a comment.

Busca

Patrocínio

Publicidade



Siga-nos!

Newsletter: Inscreva-se

Para se inscrever em nossa newsletter preencha o formulário.

Artigos Recentes