Desde que o mundo é mundo, gerentes culpam desenvolvedores por serem lentos demais, e desenvolvedores culpam gerentes por prometerem demais de mudarem tudo o tempo todo. O que acontece é que nenhum dos lados tenta entender o outro e isso acarreta em conflitos tão comuns nos escritórios quanto café.
Os gerentes
A gestão é um processo que precisa equilibrar muitos interesses e assuntos ao mesmo tempo. Normalmente sofrendo pressão de todos os lados, os clientes sempre apressados por resultados e entregas, as equipes sempre querendo mais tempo e trabalhar em melhorias de código.
O objetivo principal de quem está nessa posição é fazer o trabalho fluir. Resolver problemas de comunicação e manter os recursos em ordem, dentro do planejado e previsto. Os modelos tradicionais são muito baseados em negócios mais previsíveis, como construção civil, indústrias, etc.
Os desenvolvedores
Já o desenvolvimento é visto por eles mesmos como artistas, artesãos, defensores da pureza técnica. Todo o trabalho criativo é desempenhado nessa fase. Por melhor que seja o planejamento, sempre teremos mudanças quando o projeto começa a tomar forma. Essa instabilidade pode criar uma série de atrasos, problemas de integração com outras áreas e até a completa falha do projeto.
A confusão
Os gerentes não entendem a imprevisibilidade de projetos de software. Desconsideram o peso que mudanças de requisito tem no cronograma e costumam culpar os desenvolvedores por esses problemas. Isso tende a acontecer principalmente quando o gestor não conhece ou não é da área de TI, dificultando muito a percepção da volatilidade natural (já escrevi sobre isso em outros posts).
Os desenvolvedores, por sua vez, culpam os gerentes pelas constantes mudanças e pressões, enquanto gostariam de refatorar pela terceira vez a classe de testes do controller de login da aplicação de backoffice.