Estou interessado em saber como lidar com um processo atual de desenvolvimento de software que não foi alterado por anos e acabará por levar à falha do produto e da equipe. Sim, provavelmente a maneira mais fácil de resolver isso é mudar de emprego, mas com essa economia é mais fácil falar do que fazer. No entanto, se você possui exemplos específicos e já viu ou esteve várias vezes na mesma situação e acha que a melhor solução para resolver esses problemas é sair da empresa, apoie sua resposta. O ponto é que essa pergunta realmente tem uma resposta, especialmente se vários especialistas no assunto acabarem indicando que o melhor caminho a seguir é: rota A.
Eu sei que muitos desenvolvedores estiveram ou estão em situações semelhantes. Essa é uma das principais razões pelas quais as empresas deixam de ser a número 1 no mercado e se tornam as últimas ou mesmo fora do mercado. Esperamos que as respostas neste post ajudem outros desenvolvedores a enfrentar obstáculos semelhantes. Em uma equipe de desenvolvimento pequena ou grande, isso geralmente acontece:
- Alguns desenvolvedores parecem não se importar e decidem seguir o fluxo e preferem deixar o código com muito cheiro do código e o processo de desenvolvimento como está,
- Outros se cansam de nenhuma mudança, renunciam e se mudam para outra empresa,
- Outros parecem ter medo de conversar e preferem ficar calados,
- Às vezes, muito poucos desenvolvedores ou apenas um tentam defender a melhoria do produto e informam à equipe a importância de seguir as melhores práticas de codificação e os benefícios de fazê-lo para clientes, usuários e equipe. Esse tipo de desenvolvedor geralmente decide ficar com a equipe devido a razões como a empresa oferece benefícios que poucas empresas oferecem, ou o produto tem muito potencial etc.
O produto em nossa equipe é apenas uma fração de onde a empresa obtém sua receita, pois possui um guarda-chuva de produtos (esta empresa não é uma empresa de software / hardware; portanto, não há litígios constantes de patentes, pelo menos por enquanto, o que cria empregos instabilidade). O que aprendi até agora durante esses anos com as experiências de outros desenvolvedores e minha experiência é que, para conhecer realmente uma equipe de desenvolvimento, leva tempo, não dias, nem semanas, mas alguns meses. Durante o processo de entrevista, se a equipe quiser contratar você ou precisar de você; eles fazem tudo parecer ótimo e podem dizer o que você quer ouvir. No entanto, a realidade é diferente quando você começa a trabalhar nessa equipe e começa a se aprofundar no código e a avançar para o processo completo do SDLC. É quando, como desenvolvedor, você começa a ver a realidade do trabalho em que se envolveu. Essa realidade dificulta a mudança de uma empresa para outra, porque é difícil saber se a empresa para a qual você se muda será melhor ou pior. Sim, você pode ler as opiniões do Glassdoor etc., mas quantas dessas avaliações on-line são reais e não do RH?
Qual seria a melhor maneira de resolver os problemas descritos abaixo, considerando que o gerente desde o início sempre resistiu à mudança e os desenvolvedores anteriores fazem o mesmo há anos?
Falta de inovação do produto há anos: o produto tem muito potencial e gera uma boa receita para a empresa, mas parece que o produto foi produzido há 20 anos. Alguns usuários reclamaram que o produto não é amigável nem intuitivo, e outros mencionaram que estão acostumados a aplicativos como o Gmail e ficam frustrados ao usar o produto por não terem recursos semelhantes. O principal problema aqui é que, quando você tenta, como desenvolvedor, fazer alterações no produto e começar a mover os principais elementos do produto a apenas alguns pixels de distância (para torná-lo mais amigável ou intuitivo), o gerente entra em pânico e informa colocá-lo de volta onde estava. Se você tentar adicionar um recurso que beneficiará a produtividade dos usuários, o gerente solicita que você o remova por causa de "os usuários estão acostumados a fazer o processo do jeito que está, etc." Acho que você entendeu a resistência à mudança, à melhoria e à inovação (o gerente não está aberto à mudança, mesmo quando você, como desenvolvedor, fornece fortes argumentos de benefícios). A empresa possui alguns concorrentes em campo (os produtos de alguns deles são muito mais competitivos), mas de alguma forma a empresa mantém os clientes atuais há anos.
Falta de coordenação de gerenciamento de projetos: como resultado disso, alguns projetos são entregues com atraso, com bugs e alguns clientes reclamam (os clientes relatam os bugs também) ou o orçamento é usado muito rápido antes da entrega do projeto etc. algumas dicas de coordenação de projetos e as idéias agora estão sendo usadas regularmente para rastrear o progresso dos projetos e tarefas a serem realizadas.
Práticas inadequadas de desenvolvimento de software: O cheiro do código é visto na maioria, se não em todos os arquivos, sem documentação, redundância de código, camada de front-end e back-end misturados no mesmo arquivo, ferramentas de desenvolvimento desatualizadas, sem ambiente de teste real nem ferramentas de teste (basta copiar e colar arquivos do ambiente de desenvolvimento à produção e, em seguida, teste manualmente se as coisas parecem boas e liberam). A maioria das ferramentas de desenvolvimento que eu uso para desenvolvimento e teste é desconhecida pela equipe, pois a equipe usa apenas 2 IDEs para desenvolvimento de código e controle de origem, apenas disponível para o ambiente de desenvolvimento. Outros desenvolvedores tentaram usar as estruturas mais recentes para melhorar os problemas atuais, mas o gerente não gosta disso por causa de "e se você sair, quem manterá esse código ?, vamos deixar do jeito que está" Alguns desses desenvolvedores já saiu e mudou-se para outras empresas.
Em resumo, tenho certeza de que situações semelhantes acontecem a muitos desenvolvedores de outras empresas, mas devido a circunstâncias diferentes, um desenvolvedor pode preferir permanecer na equipe do que ir para outra empresa por razões como (conveniência do trabalho, flexibilidade no trabalho, benefícios da empresa ou apenas porque não chegou uma oportunidade melhor). Não tenho uma empresa perfeita que eu conheço, mas como você, como desenvolvedor, se comportaria e abordaria todas essas questões para manter as coisas positivas e, finalmente, promover mudanças para melhorar o produto e melhorar o processo de desenvolvimento de software (se você tem muitos anos de experiência em desenvolvimento ou apenas alguns)? Eu sei que este post é longo, mas eu preferi dar detalhes extras para aumentar as chances de obter feedback mais útil.
Muito obrigado por todos os seus comentários e tempo