2 pontos por GN⁺ 2024-05-10 | 1 comentários | Compartilhar no WhatsApp

A história de um desenvolvedor que mentiu para o CTO

  • É uma história de alguns anos atrás, da época em que eu trabalhava em uma empresa da Fortune 500
  • Na época, o CTO fechou um grande projeto para um cliente importante com quem tinha relações pessoais e decidiu terceirizar a parte central para uma grande prestadora de serviços de tecnologia
  • Mas o "produto" do fornecedor, na prática, exigia uma customização enorme para se adequar aos requisitos, e essa era a pior escolha possível
  • Nas reuniões de acompanhamento de status com o CTO, ninguém achava que essa ideia era boa, mas todos só diziam: "Boa ideia, chefe"
  • No fim, quando o fornecedor entregou o "produto", já era setembro, e começou a marcha da morte para o lançamento de outubro
  • Durante os testes, foram descobertos bugs graves, como problemas de performance e o limite de 16 MB por documento do MongoDB
  • Foi dito ao cliente que o lançamento atrasaria 1 mês e, ao mesmo tempo, decidiu-se iniciar um projeto secreto para substituir a integração com o fornecedor
  • Eu, que era um desenvolvedor jovem e cheio de entusiasmo, recebi 3 membros da equipe e comecei a desenvolver o sistema alternativo
  • Em meados de dezembro, depois de quase concluir o software substituto ao longo do último mês, todos já estavam em estado de burnout
  • Foi então que o CTO apareceu e disse que as férias seriam canceladas, e eu respondi: "Entendido"
  • Mas, lembrando do conselho do meu pai, mandei os membros da equipe tirarem férias e fui sozinho para a reunião de acompanhamento da marcha da morte com o CTO, onde menti
    • "A equipe está trabalhando duro. Hoje chegamos ao 73º ponto de integração de milestone"
    • "A equipe fez um bom progresso ontem. Concluímos mais um web service"
  • Uma semana depois, os membros da equipe voltaram descansados e, em janeiro, conseguimos lançar com sucesso dentro do prazo

Opinião do GN⁺

  • É um caso em que se destaca a liderança que conduziu o projeto com sucesso mesmo em um ambiente ruim e sob exigências excessivas. Em especial, chama atenção o cuidado com a condição dos membros da equipe
  • Ainda assim, mentir para o CTO não é desejável. No longo prazo, isso pode corroer a confiança dentro da organização e causar problemas maiores
  • A falha na escolha do fornecedor e na gestão da terceirização é em grande parte responsabilidade do CTO, mas, no processo de corrigir isso, teria sido melhor haver uma comunicação mais transparente e proativa
  • Para evitar o burnout dos desenvolvedores, o ideal teria sido definir cronogramas mais realistas desde o início e alocar pessoal suficiente. O modo crunch é uma prática que deve ser evitada
  • Uma alternativa que vale considerar em situações semelhantes é a metodologia ágil. Ao repetir ciclos curtos de desenvolvimento e feedback, é possível minimizar riscos e ajustar a intensidade do trabalho da equipe

1 comentários

 
GN⁺ 2024-05-10
Opiniões do Hacker News
  • Excesso de trabalho e cancelamento de férias:
    • Trabalhar além da conta e cancelar férias para cumprir prazos irreais não é sensato e acaba gerando arrependimento depois
    • Empresas que dependem do sacrifício das férias dos funcionários para entregar um produto estão contribuindo para uma cultura de trabalho problemática
  • Empresa saudável vs. empresa não saudável:
    • Em uma empresa saudável, pessoas experientes teriam previsto os problemas da abordagem de terceirização e levantado preocupações cedo
    • Comunicação aberta, esforço conjunto para encontrar soluções e gestores defendendo o bem-estar da equipe são sinais de um ambiente saudável
    • A história descreve uma situação não saudável em que um gestor mente repetidamente para seus superiores
  • Práticas absurdas de fornecedores:
    • A abordagem do fornecedor de armazenar todas as transações em um documento JSON gigante e precisar ler tudo a cada atualização é absurda
    • Outro exemplo é o de uma startup que armazena dados de tickets de usuários como colunas adicionais na tabela de usuários, gerando centenas de colunas
  • Situação disfuncional e liderança:
    • A abordagem do líder de equipe de mentir sobre férias é inaceitável e uma infração que pode levar à demissão
    • Uma abordagem melhor seria se opor a exigências irracionais de horas extras e defender um escopo de projeto sensato e a responsabilidade do fornecedor
    • O líder da equipe tem a responsabilidade de proteger o time de exigências insanas, mesmo que isso coloque seu próprio emprego em risco
  • Ninguém se beneficia:
    • O fornecedor entregou baixa qualidade, o CTO permaneceu ignorante, os desenvolvedores ficaram sobrecarregados e o protagonista recorreu à mentira
    • Esta é uma situação insana que ninguém deveria tolerar. O ideal é sair para um trabalho melhor
  • Honestidade e transparência:
    • Para algumas pessoas, foi eficaz ser honesto com a liderança sobre problemas técnicos, problemas de desempenho, mudanças de escopo etc.
    • Mentir para cumprir prazos arbitrários definidos por uma liderança desconectada não é uma boa abordagem
  • Lacuna de confiança entre desenvolvedores e gestão:
    • Muitas vezes há assimetria de informação e falta de confiança entre desenvolvedores e gestores não técnicos
    • Gestores não conseguem avaliar facilmente o progresso e se sentem inseguros quanto ao sucesso do projeto
    • Como o risco está do lado do negócio, os desenvolvedores acabam sendo pressionados a preencher essa lacuna de confiança e entregar resultados
  • Prometer menos e entregar mais:
    • A mentira do protagonista, ao dizer que algo já concluído estava concluído, pode até ser vista em certa medida como “prometer menos e entregar mais”
    • Mentir sobre trabalho inacabado é mais arriscado e pode desmotivar os colegas quando precisarem voltar ao assunto
  • Organizações impotentes e ferramentas low-code:
    • As práticas péssimas do fornecedor e o escopo modesto do projeto mostram o quanto algumas grandes empresas se sentem impotentes diante de projetos de software
    • Isso pode ajudar a explicar a popularidade de ferramentas low-code como Retool entre lideranças de tecnologia, mesmo que não entre engenheiros
  • Integridade e saber dizer não:
    • Um verdadeiro “rockstar” tem integridade e coragem para recusar estupidez e exigências irracionais
    • Não é responsabilidade individual compensar uma incompetência extraordinária nem assumir o peso de toda a equipe