Executando verificação de segurança...
6

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.

Carregando publicação patrocinada...
1

Acredito que essa questão se torna mais relevante dependendo do perfil de cada trabalhador.
No seu exemplo de uma empresa familiar que usa Delphi no modo "go horse", me parece uma ótima oportunidade para alguém "abrir caminho no mato", tipo, você tem um espaço aberto de coisas que pode tentar, arriscar e propor...
Então, para alguém mais proativo e auto motivado, é um prato cheio. Você pode começar versionando o código com o Git, propondo guidelines, revisando código, minicursos para compartilhar conhecimento e assim por diante.
Ao final da jornada na empresa, você vai poder expor os sucessos e fracassos e toda a experiência adquirida, e então poderá dizer: 'Quando cheguei aqui, era tudo mato.'
Agora, se esse não é o perfil do trabalhador, ou seja, se ele está querendo fazer o seu e seguir o fluxo, trabalhando melhor sendo conduzido do que conduzindo (é um perfil, não estou falando mal), então o melhor é pular fora. Pois por padrão, tendemos a replicar o que está ao nosso redor, no caso, tendemos a replicar as práticas do código. Código ruim tende a gerar código ruim, pois quando vamos implementar algo, (eu pelo menos) procuro ver se a base de código atual já resolve o problema para reutilizar a solução.
Se o trabalhador se limitar a manter o status quo, será muito destrutivo, para ele e para a empresa, pois cada vez mais o código se tornará pior e impossível de se manter, até que seja refeito em uma nova tecnologia e inicie esse mesmo processo recursivo. Para esse caso, o melhor é trabalhar em uma empresa onde as trilhas na selva já foram feitas, e só precisamos segui-las.
Alguns poderão dizer que é o ciclo normal, afinal, em alguns anos será feito um novo sistema mesmo, então por que ter zelo pelo atual?
Aqui cabe toda uma discussão, mas pensando no caso que você expôs, para um trabalhador proativo, o zelo trará a ele muita experiência e conhecimento, e a chance de fazer a diferença. Afinal, nesse cenário caótico, uma pequena mudança com um sistema de revisão, por exemplo, vai trazer muita mudança.
Minha dica para você, se me permite dizer... É alinhar seus objetivos com os da empresa, basicamente expondo sua visão a eles e propondo mudanças. Você vai aprender muitas soft skills no processo, como lidar com barreiras, tomar a frente e, claro, arcar com as consequências de cada mudança que você propôs.
Como disse, é um prato cheio para quem tem muita coragem e força de vontade, pois por vezes, até que algo se concretize, você pode ser o único a ver uma vantagem nas mudanças propostas.

1

O quão prejudicial isso pode ser para um entrante na área?

Há pessoas que vão apreciar o seu perfil, no entanto, existe o risco de você acabar utilizando ferramentas ultrapassadas, o que pode torná-lo menos atraente para oportunidades futuras. Contudo, desde que você seja capaz de manter algumas habilidades relevantes para conquistar uma posição, não vejo grandes problemas.

Na entrevista de emprego, é fundamental enfatizar que você está comprometido em agregar valor aos negócios da empresa e aos seus clientes. A maioria dos entrevistadores compreende que as boas práticas não dependem exclusivamente de um indivíduo, mas sim da colaboração da equipe e da liderança da equipe.

Por outro lado, você pode começar a buscar por outras oportunidades de emprego e, caso surja uma proposta interessante, considerar a possibilidade de mudar de emprego. Geralmente, a melhor época para procurar um novo emprego é quando você já está empregado.