Essa é uma pergunta que você, desenvolvedor já teve ter se perguntado em algum momento na sua carreira. E a resposta é um grande e sonoro…

…Depende

Como a maioria das coisas em nossa área, tudo depende da situação. Portanto, não existe uma fórmula X ou Y. Mas vou tentar abordar algumas situações em que é válido criar seu próprio framework para desenvolvimento de aplicações ou não. Vou me referir aqui especificamente aos frameworks Web, mas a maioria do texto aplica-se à outros tipos de framework também.

Fins de Aprendizado

Acredito que esse é um dos principais motivos válidos para criar seu próprio framework, entender a estrutura por trás do mesmo, como roteamento, a arquitetura MVC e muitas outras coisas legais. É claro, para isso é necessário ter uma boa compreensão da linguagem em que está trabalhando e de POO (Programação Orientada à Objetos).

Mas, hoje esse Frame ficou apenas na lembrança. Após um tempo utilizando ele, e depois utilizar um framework proprietário dentro de uma empresa que trabalhei, fui percebendo que era muito mais produtivo utilizar frameworks consolidados, que muitas vezes são mantidos por centenas ou milhares de pessoas. Dessa forma, minha preocupação é apenas com a aplicação em si.

Encorajo qualquer desenvolvedor à criar seu próprio framework por aprendizado, ou por paixão. É claro, ele pode ser o próximo grande Frame da atualidade não?

Mas acredito não ser uma boa ideia utilizar ele em estágio inicial para suas aplicações comerciais.

Por que utilizar um Framework consolidado

Aqui vão alguns motivos:

  • Documentação — Geralmente estes frameworks possuem vasta documentação, sempre atualizada. Leve sempre em conta a documentação ao escolher o framework.
  • Comunidade — Na maioria das vezes, possuem uma grande quantidade de usuário formando uma comunidade. Isso facilitará muito quando você precisar de ajuda.
  • Funcionalidades — Pela grande quantidade de contribuidores, novas funcionalidades surgem periodicamente.
  • Correções — Sempre que bugs são detectados, geralmente são corrigidos em tempo pelos contribuidores. Além disso os próprios usuários podem corrigir e enviar PR’s nos repositórios.
  • Vagas — É mais fácil conseguir emprego quando você utiliza os frameworks mais presentes no mercado
  • E muitos outros benefícios como padronizações, disponibilidade de cursos, material gratuito em vídeos no Youtube, etc

Frameworks Específicos

Em alguns casos, empresas criam frameworks específicos para resolver problemas específicos. Nesse caso, deve ser analisado se realmente existe essa necessidade, pois desenvolver e manter algo assim é complexo e caro. Para resolver a maioria dos problemas de desenvolvimento, existem hoje inúmeros frameworks. Cabe à empresa ou ao desenvolvedor analisar essas opções.

Como dito anteriormente, frameworks consolidados no mercado muitas vezes tem centenas ou milhares de pessoas contribuindo para o seu desenvolvimento, e recebem novas funcionalidades em períodos muito curtos de tempo, além de melhorias, correção de bugs etc.

Trabalhei em um local que tinha framework próprio, e apenas um desenvolvedor tinha conhecimento total e mantinha o projeto. A equipe enfrentava diversos problemas na utilização:

  • Documentação “escassa” – Muitas vezes o desenvolvimento dependia de perguntar ao desenvolvedor do framework como as coisas funcionavam, ou de inspecionar o código, o que tomava bastante tempo.
  • Falta de funcionalidades – As novas funcionalidades demoravam para serem lançadas, adaptações à novas versões da linguagem utilizada demoravam para sair.
  • Demora na correção de bugs
  • Falta de Padrões – Muito provavelmente pela falta de tempo e a complexidade do projeto, muitas coisas no framework não possuíam padronização, ou tinham padrões estranhos.
  • E muitos outros problemas

É claro, estes problemas não são recorrentes. Tudo depende de como a empresa ou pessoa desenvolve e mantém o projeto. Ouvi casos de pessoas e empresas que ganharam saltos enormes de produtividade com seus próprios frameworks. Mas por trás disso há todo um processo de conhecimento, investimento e dedicação.

Algumas empresas investem em construir um novo framework com base em um outro já existente e com experiência no mercado. Essa é uma boa opção desde que esse novo projeto seja justificável.

Portanto a decisão de construir, manter e utilizar um framework próprio deve ser muito bem pensada. Isso pode custar muito dinheiro e tempo, e, como eu testemunhei algumas vezes, matar lentamente uma aplicação (quando mal executado).

Finalizando…

Eu sinceramente acredito que, a não ser que você tenha um motivo muito específico, como os citados acima, ou por questões internas, o melhor caminho a seguir é resumido em uma simples frase:

Não reinvente a roda!

Se seu objetivo é ganhar dinheiro construindo aplicações, e você já sabe como a coisa funciona, escolha logo um framework disponível no mercado e seja feliz!

PS: Após conversar com algumas pessoas, e ouvir alguns feedbacks incríveis, gostaria de registrar aqui que este artigo é baseado na minha experiência, e não é uma imposição. Existem inúmeros cenários e cabe a você escolher o melhor no seu caso.