Trabalho para uma grande organização humanitária, em um projeto de construção de software que poderia ajudar a salvar vidas em emergências, acelerando a distribuição de alimentos. Muitas ONGs precisam desesperadamente do nosso software e estamos com semanas de atraso.
Uma coisa que me preocupa nesse projeto é o que eu acho que é um foco excessivo nos padrões de codificação. Nós escrevemos em python / django e usamos uma versão do PEP0008, com várias modificações, por exemplo, comprimentos de linha podem ir até 160 caracteres e todas as linhas devem demorar tanto se possível, sem linhas em branco entre as importações, regras de quebra de linha que se aplicam apenas a certos tipos de classes, muitos modelos que devemos usar, mesmo que não sejam a melhor maneira de resolver um problema etc. etc.
Um desenvolvedor central passou uma semana reescrevendo uma parte importante do sistema para atender aos então novos padrões de codificação, descartando vários conjuntos de testes no processo, pois a reescrita significava que eles eram 'inválidos'. Passamos duas semanas reescrevendo todas as funcionalidades perdidas e corrigindo bugs. Ele é o desenvolvedor líder e sua palavra tem peso; portanto, convenceu o gerente de projeto de que esses padrões são necessários. Os desenvolvedores juniores fazem o que mandam. Sinto que o gerente de projeto tem um forte sentimento de dissonância cognitiva em relação a tudo isso, mas mesmo assim concorda veementemente, pois não tem certeza do que mais fazer.
Hoje, tive um problema sério porque esqueci de colocar alguns espaços após vírgulas em um argumento de palavra-chave. Fui literalmente gritado por dois outros desenvolvedores e pelo gerente de projeto durante uma chamada do Skype. Pessoalmente, acho que os padrões de codificação são importantes, mas também acho que estamos perdendo muito tempo obcecados por eles e, quando verbalizei isso, provocou raiva. Sou visto como um causador de problemas na equipe, uma equipe que procura bodes expiatórios por suas falhas. Desde a introdução dos padrões de codificação, a produtividade da equipe despencou de forma mensurável, no entanto, isso apenas reforça a obsessão, ou seja, o desenvolvedor líder simplesmente culpa a nossa não adesão aos padrões pela falta de progresso. Ele acredita que não podemos ler o código um do outro se não seguirmos as convenções.
Isso está começando a ficar pegajoso. Agora estou tentando modificar vários scripts, autopep8, pep8ify e PythonTidy para tentar corresponder às convenções. Também executamos o pep8 no código fonte, mas há tantas alterações implícitas em nosso padrão que é difícil rastrear todas elas. O desenvolvedor principal simples escolhe falhas que o script pep8 não pega e grita conosco na próxima reunião de stand-up. Toda semana, há novas adições aos padrões de codificação que nos forçam a reescrever o código existente, funcional e testado. Graças a Deus ainda temos testes (reverti alguns commits e consertei vários dos que ele removeu).
O tempo todo aumenta a pressão para cumprir o prazo.
Acredito que uma questão fundamental é que o desenvolvedor líder e outro desenvolvedor principal se recusem a confiar em outros desenvolvedores para fazer seu trabalho. Mas como lidar com isso? Não podemos fazer nosso trabalho porque estamos muito ocupados reescrevendo tudo.
Eu nunca encontrei essa dinâmica em uma equipe de engenharia de software. Estou errado em questionar sua adesão aos padrões de codificação? Alguém já passou por uma situação semelhante e como eles lidaram com sucesso? (Não estou procurando uma discussão, apenas soluções reais que as pessoas encontraram)