Sobre 'Codigo limpo vs código rápido', 'monolito vs microsserviços', 'feito vs perfeito' e respostas prontas
Navegando pelas redes nos últimos dias, tenho esbarrado em várias discussões sobre dilemas.
Uma delas é sobre a aparente (e tardia) descoberta de que microsserviços não são uma bala de prata. Em outra thread, uma discussão longa sobre até onde vale trocar um código eficiente por um "código limpo". Em outra, até onde o "feito vs perfeito" não está sendo, na verdade, a desculpa pra entregar o mal feito.
Todas essas discussões - com os seus diversos pontos de vista - são bem válidas, e me fazem pensar sobre a verdadeira função de um desenvolvedor (pelo menos para mim): resolver problemas.
E, diferente do que o ensino básico nos ensinou, para resolver problemas não basta pegar aquela velha "fórmula de baskara" decorada e sair aplicando em tudo. Tem que avaliar.
Tem que avaliar o tempo, o dinheiro, o escopo, a urgência, as skills da equipe... Entre outras inúmeras variáveis.
E pra responder sobre as variáveis acima, não tem - e acho difícil que tenha algum dia - um "chat GPT". Somos nós, resolvedores de problemas (aka "programadores) que teremos que responder essas questões.
Muito antes das IAs generativas, nós já vínhamos consumindo respostas prontas para tudo. Se dizem que a framework 'x' está na moda, vamos de framework 'x'. Se estão apontando para o padrão de projeto 'y', pra quê pensar?
Pra quê pensar?
O famoso "depende" como resposta irrita alguns. Mas, o programador, o desenvolvedor, o "analista", precisa se armar mais dos "dependes" da vida. Cada situação, cada projeto, e até mesmo cada fase no seu aprendizado pessoal exige uma ou outra resposta que nem sempre é a convencional.
Qualquer bom sênior sabe disso. Mas e o júnior, que não participa das decisões sobre padrões de projetos e outros "assuntos do olimpo"?
Penso que este pode sim praticar essa skill de análise até mesmo no seu aprendizado pessoal, tomando coragem e questionando com mais coragem os modismos do mercado e até mesmo o seu desempenho como aprendiz.
Coisas simples como tentar entender o espectro entre relaxo e overengineering já é um belo exercício que um profissional vai ter que dominar pela vida toda.
Creio que o primeiro passo para conseguir liderar um projeto lá na frente é conseguir liderar a sua caminhada pessoal. O que já é um grande projeto.
O que vocês pensam sobre?