A descrição da situação por parte do PO é provavelmente unilateral. Tudo bem.
Sou um promotor envelhecido (~54 yo) trazido para uma empresa para não governar, mas para proporcionar alguma experiência. (O chefe de TI disse mesmo “cabelo grisalho”, rs.) O pessoal do dev era far mais adepto, no geral, do que qualquer equipa com quem eu tinha trabalhado anteriormente. Ensinaram-me muito, sobretudo sobre humildade! Mas encontrámos lugares onde a sua feitiçaria tecnológica não resolvia os problemas e em alguns casos escondia esses problemas, acabando por piorá-los. Foi aqui que eu pude realmente contribuir.
A sua liderança soa severamente autocrática. Parece que lhe foi dado um mandato pelo proprietário. O proprietário está descontente com o pessoal do Dev e trouxe este tipo “cabeça dura, sem disparates” para melhorar a velocidade de entrega.
Primeiro, olhem para o vosso pessoal. Você tem fracos - desenvolvedores que não “vêem a Matrix”? Se sim, encontre-lhes novas posições dentro da empresa ou dê-lhes uma boa referência para um empregador que precisa das suas capacidades únicas.
Ele odeia IDEs
Eu conheço alguns que odeiam. Faz-me revirar os olhos, mas em última análise não me interessa. Se as pessoas produzem usando vi
, então tudo bem. Eu adoro os meus IDEs.
Ele não refactoriza o código e não se importa com o estilo (que é inconsistente com o seu próprio código)
Bandeira vermelha na primeira parte. Ele é um copy-paster? Eu também sou culpado por não me importar com o estilo, mas isso é porque uso o meu IDE para tornar instantaneamente o meu código Python PEP8 compatível. Mas ele não usa um IDE…
Como nota lateral, o estilo foi previamente verificado por uma construção nocturna, que começou a falhar desde a chegada do novo chumbo.
Ele rejeita a ideia de uma construção nocturna, bem como testes automatizados. Segundo ele, “qualquer desenvolvedor profissional testa o seu código de qualquer maneira à mão, portanto não há razão para perder tempo escrevendo testes automatizados”. A construção nocturna é também, segundo ele, uma perda de tempo.
Isto também desencadeia uma bandeira vermelha, mas por diferentes razões do que se poderia esperar. Antes deste tipo ser contratado, quantas vezes foi dito ao proprietário que não podia fazer X (dar uma demonstração, usar o sistema, etc.) porque a construção nocturna falhou? E se o dono perceber que a construção nocturna é o problema? O que acha que ele diria ao líder para fazer?
Mas eu tenho preocupações com a atitude do líder; testes automatizados são incríveis. Como antes, o chefe pode não compreender o valor dos testes, mas ele certamente sabe que Y% dos pagamentos do pessoal do Dev estão a ser pagos por eles. Quando cheguei à minha empresa actual, a “máfia de cobertura de 100% dos testes” tinha tomado conta do pessoal do dev e tinha feito um aumento dos custos. Uma maçã má mais tarde e o pessoal do dev estava novamente a ronronar.
Ele pensa que o controlo de versões é praticamente inútil…
Esta é uma bandeira vermelha da mais alta ordem. Ele está tão errado quanto possível. Ele está a ser irresponsável com o dinheiro do dono.
Ele sobrestima a importância da optimização de código.
Na altura, a optimização de código podia fazer a diferença. Agora as máquinas são tão rápidas que é menos importante. Em vez disso, agora precisamos de nos preocupar com a performance da base de dados e com o rendimento da rede. Mas o seu hábito de “optimização de código” é difícil de quebrar, confie em mim. Tenho de não me fazer pré-optimizar. Pelo menos o seu comportamento, neste caso, não é destrutivo, excepto pelo tempo que leva. (Você tem números para o seu “metade do seu tempo” ou esta é uma hiperbole? Se está a criticar o seu supervisor, não pode ser permitida nenhuma hipérbole. Deve ser patologicamente objectivo.)
Ele escreve todos os SQL à mão e rejeita a ideia de um ORM.
Culpado! Não compreendo o medo que as pessoas têm de SQL. Eu não entendo enterrar SQL, que é drop-dead simples, sob camadas de ORM que ofuscam. Não o posso ajudar aqui :-D Mas por favor, deite todo o seu SQL num só sítio - não distribua tudo pelo seu código.
e dois dos cinco programadores nunca usaram SQL antes.
Isso é inaceitável. Isto é 2016. Eles precisam de se aperfeiçoar.
Ele rejeita frameworks e bibliotecas de terceiros, considerando que é muito mais fácil escrever coisas do zero.
Ele não podia estar mais errado. Duvido que a sua empresa seja tão especial que as suas utilidades precisem de ser escritas internamente. Tínhamos alguns programadores que abraçariam ferramentas de terceiros - até que eles fizessem algo de uma forma que o dev não gostasse. Era uma desculpa para deitar fora a ferramenta e escrever as suas próprias. Isto só aumentava a carga sobre o pessoal do dev, atrasando-os ainda mais. Este código inútil é caro para escrever, testar, depurar e manter. Gastamos tanto dinheiro para -zero benefício. Estes programadores já se foram.
Ele decidiu abandonar todas as bibliotecas e frameworks JavaScript excepto jQuery, alegando que quando começou a programar em JavaScript há quinze anos atrás, não havia frameworks, e a vida era muito mais fácil.
Este não é um corte tão claro. A razão é que a vida era muito mais fácil há 15 anos atrás é que o pedido da empresa era muito mais simples. Foi daí que surgiu o problema. A web foi inventada como um sistema em lote (preencher um formulário, enviá-lo, obter uma resposta, repetir) e agora estamos a tentar escrever aplicações web que se comportem como aplicações desktop. A sua observação está certa, agora as coisas estão difíceis. Mas ele não percebe porquê. A complexidade da ferramenta é uma resposta a uma pergunta mais complicada de negócios. Assim, ele faz más escolhas.
Estamos a usar o AngularJS e parece ser decente. Como todas as ferramentas poderosas, pode ser usado para o bem ou para o mal.
Ele pensa que os dispositivos móveis (incluindo comprimidos) são apenas um hype, por isso não há razão para perder tempo precioso para garantir a compatibilidade do site com esses dispositivos e para fazer um design responsivo. O produto é uma aplicação web pública que não se espera muito dos dispositivos móveis.
Ele está novamente errado. Eles não são hype. Eles estão aqui para ficar porque são úteis. MAS o negócio não precisa disso. Não desenvolva coisas de que não precisa. É caro.
O design reactivo, no entanto, pode ser muito interessante de ter para esta aplicação,…
É assim tão interessante que você pagaria pessoalmente pelo desenvolvimento? Se isto é uma boa ideia, deve poder vender a ideia ao proprietário. Caso contrário, não gaste um centavo com ela.
Ele pede à equipa para parar de usar a internet (especialmente o StackOverflow) e confiar nos seus cérebros, na documentação offline (eu nem sabia que a Microsoft ainda vendia CDs MSDN!) e nos livros.
Ele está errado. A internet é óptima para isto. Se o pessoal do dev está a copiar do Stackoverflow sem perceber como o código funciona, então também estão errados. Há tempo para formação e melhoria pessoal no calendário de desenvolvimento? É difícil não copiar colar roboticamente quando se está sempre debaixo da arma.
Embora eu tenha informação limitada, há muitos problemas aqui. Parece que o dono não recebeu o código que está a pagar tão rapidamente como esperava. Parece que ele já ouviu muitas desculpas sobre coisas que não lhe interessam; ele está concentrado no resultado. Se estou certo, tem uma ferida auto-infligida, e reabriu-a mais do que uma vez. Este Lead é a solução do proprietário para o problema que o pessoal do dev tem colocado, e dada a sua informação limitada, é compreensível.
Também aposto que está a gerir uma loja não ágil e que tem uma má definição de requisitos que muda à medida que o vento sopra. Não existe uma camada de isolamento entre o pessoal do dev e o proprietário. Excepto para este chumbo.
Agora, o que pode fazer?
1) Treinar o chumbo que a utilização de testes automatizados e gestão de código é o caminho a seguir. Pode levar tempo para ganhar credibilidade com ele - o proprietário provavelmente já lhe disse que o pessoal está com defeito. Veja se consegue evitar que ele faça mandatos de varredura como “apagar toda aquela porcaria inútil de testes e redireccionar o servidor SVN”. Isto dar-lhe-á tempo para mostrar valor.
2) Continue a utilizar a gestão de código a nível pessoal. Pelo menos assim poderá recuperar dos seus próprios erros. Não lhe diga que está a fazer isto, embora também não lhe minta.
3) Continue os testes automáticos (testes unitários, se nada mais) a um nível pessoal. Como antes, não o mencione mas não o esconda.
4) Trabalhe com o Chefe para determinar quais são os problemas realmente detectados. Tenha a mente aberta; aposto que existem problemas reais com o pessoal. Trabalhe com o Chefe de Fila para abordar os problemas, não os sintomas.
5) Discuta com o Chefe de Fila vários tópicos de desenvolvimento, tais como os benefícios da cascata e a agilidade. Nenhum dos dois é perfeito. Fazer-lhe perguntas como, “Em que circunstâncias valeria a pena fazer testes automatizados”? Se ele der uma resposta duvidosa, pergunte-lhe como empresas como a Google conseguiram prosperar apesar disso.
Então você pode ver que eu sou todo a favor de envolver o Líder e ver onde está a sua cabeça. Construir confiança. Chegue a acordo sobre questões versus sintomas. Isto nem sempre é fácil, especialmente quando se sente que ele é como o Godzilla e está a destruir o seu trabalho.
Há uma hipótese de ele não se comprometer. Ele vai esmagar os testes automáticos. A gestão de códigos é para pessoas descuidadas. My Way ou a auto-estrada.
Se chegou a este ponto, no entanto, será altura de partir. Trabalhar numa loja sem ferramentas, e refiro-me a software e ferramentas de engenharia de software - não constrói o seu currículo. Você vai começar a apodrecer da mesma forma que o Chumbo apodreceu. Nesse caso, siga em frente.