Sua caixa de ferramentas durante as mudanças
Na empresa que trabalho, estamos passando por uma séria necessidade de mudança tecnológica. Existem vários motivos por que isso acontece, e é ótimo que isso aconteça de com alguma frequência. Eis minha opinião sobre como passar por isso.
Os pessoal das metodologias ágeis estão certos nesse ponto: No mundo, tudo é mutável. Clientes têm novas necessidades, governos colocam novas restrições, o software vai ficando velho e sem suporte. Existem vários motivos pelo qual uma renovação geral se faz necessária.
Acho que o principal motivo pelo qual em algum momento você tem que parar e considerar começar do zero é a sua própria experiência.
É natural, principalmente com o boom de empreendedorismo que o Brasil está passando, que você comece algum projeto e faça algumas decisões erradas. Você é humano e vai cometer erros, não se cobre muito sobre isso. O que vai te fazer ser um bom empreendedor, um bom profissional, não é a falta de erro, mas a humildade de aceitar seus erros e sua postura com eles.
E, depois de alguma experiência, você tem que parar e mudar o que você está fazendo.
Ok. Preciso mudar. E agora?
"Abrace a mudança", meu chefe sempre diz. Mas será que é tão fácil assim? Basta saber que a mudança está aí?
Antes de abraçar a mudança, você tem que estar preparado pra ela. Você tem que aprender a olhar os sinais ter alguma ideia de quando essa mudança deve acontecer, e como efetivamente mudar.
Uma filosofia que eu aprendi a viver é:
Saiba muito sobre o seu trabalho, e saiba um pouco sobre todo o resto.
E tecnologia, de maneira geral, é uma ferramenta. E cada ferramenta tem sua razão pra existir.
Se você só conhece o martelo, vai aprender a martelar muito bem. Mas martelar um parafuso, uma solda ou uma tubulação não é bem o melhor jeito de trabalhar. E vai por mim, um dia você vai ver um parafuso.
E nesse dia, você precisa começar a questionar o que você sabe.
Todo mundo aprende C/C++, Java, C#, PHP durante a formação como programador. Mas e depois que você terminou o seu curso? Procurou saber quais linguagens surgiram? Se sabe quais linguagens, quais os pontos fortes e fracos delas? Quais problemas elas tentam resolver?
E no banco de dados? Usa MySQL? Já viu algum outro? Sabia que existem pelo menos 3 (três) tipos de banco não relacional?
Será que o paralelismo do seu código seria mais seguro se fosse codificado em Rust? Seu site seria melhor mantido se fosse escrito em TypeScript? Será que os dados da sua aplicação seriam melhor estruturados em um banco de dados não-relacional?
Todas são perguntas válidas, e não significam que você tem que mudar agora nem que você tem que saber tudo sobre essas novas tecnologias. Mas no dia que a mudança for necessária, são esses questionamentos, essa mentalidade, que vai te dar um norte sobre as escolhas a serem feitas.
Um bom profissional nunca deixa de ser estudante, nunca para de adquirir conhecimento.