Boas práticas vs aplicações em produção
Saudações galera! Espero que estejam bem. Escrevo este post para pedir a opinião de vocês sobre a situação onde me encontro.
Contexto:
Migrei para a área de tecnologia há aproximadamente dois anos e desde então venho estudando desenvolvimento web (principalmente no frontend, com React).
Há 6 meses, entrei em uma pequena software house (que basicamente é familiar) cujo carro-chefe é um sistema de gestão (ERP) para um nicho específico. A principal ferramente utilizada é o Delphi para a aplicação desktop no Windows, porém devido a alta demanda, estamos migrando grande parte para a web, utilizando Angular e PHP puro.
Como citado anteiormente, é basicamente uma empresa familiar, onde o dono pega pessoas (relativamente) próximas e dá a oportunidade de entrar primeiro no suporte, e com o tempo passando a atividades com SQL e desenvolvimento no PHP e Angular.
Entrei a princípio para focar no suporte aos clientes, porém como já possuia certa habilidade com lógica e desenvolvimento em geral, bem rápido consegui receber algumas atividades envolvendo SQL.
A situação:
Logo quando comecei a dar suporte (damos uma olhada no código-fonte em Delphi até para ajudar a entender melhor a lógica do sistema), já percebi que o desenvolvimento era feito "de qualquer jeito". Arquivos gigantescos com milhares de funções soltas.
Agora, como já possuo um bom domínio de CSS e React (e também devido a reclamação de alguns clientes sobre a nossa interface na web), recebi a task de tentar dar uma "repaginada" no visual de um processo importante no sistema. Ao ver o projeto em Angular, a sensação foi ainda pior que ao ver o Delphi. Simplesmente uma página e processo inteiro de auto-contratação de serviço em um único componente, com um HTML imenso e component tenebroso de funções. Isso sem citar os incontáveis "any" pelo código
Fica aí o questionamento sobre trabalhar em um local assim: nenhum tipo de boa prática é aplicada. Não há testes unitários, documentação, princípios, clean code, arquitetura, etc. O cliente pede, é desenvolvido de maneira que o problema seja desenvolvido e pronto: é compilada nova versão no Delphi ou o PHP/Angular atualizado no FTP do cliente e um abraço (ah, não citei que simplesmente não se usa git, ci/cd, enfim).
O quão prejudicial isso pode ser para um entrante na área? (se é que pode ser, talvez seja só impressão que temos nos cursos de que a vida real não é assim).
Ao mesmo tempo que as melhores práticas da indústria são inexistentes, é um trabalho relativamente tranquilo e bem remunerado, um bom ambiente e, acima de tudo, me garante um tempo de experiência na área.