Eu acho que é verdade, em alguns ambientes o Agile é usado como desculpa para nenhuma disciplina. O verdadeiro problema é que perdemos de vista por que temos alguma metodologia. Pessoalmente, acho que a metodologia é uma questão arquitetônica, no sentido de que a arquitetura do sistema deve abordar os atributos não funcionais de qualidade; a metodologia deve abordar alguns desses mesmos atributos (manutenção, produtividade no desenvolvimento, transferência de conhecimento, et al.)
Visualizar a metodologia como um controle para os atributos do processo implica algumas coisas: 1) sem métricas, não podemos comparar a eficácia de uma metodologia em relação à outra, 2) é necessário tomar uma decisão ativa sobre quais atributos são importantes (tempo de entrega versus código qualidade versus transferência de conhecimento).
Sem ter métricas e uma meta tangível, simplesmente escolhemos uma metodologia como nossa "pena mágica" que, se mantivermos firme, poderemos fornecer software.
Agora, os negativistas do Agile, XP, Scrum, etc. falam sobre a fragilidade dessa categoria específica de metodologias. O argumento é: por que usar uma metodologia que pode ser sabotada por um indivíduo que não possui disciplina para seguir todas as regras? A questão é válida; no entanto, esse é o sintoma, não a causa. Se um conjunto de métricas de processo precisas e significativas (essa é a parte mais difícil) for definido, testado e fornecer feedback oportuno, acredito que descobriremos que a metodologia específica tem pouco a ver com sucesso. (Anedoticamente falando, eu vi projetos bem-sucedidos usando uma infinidade de metodologias e duas vezes mais falhando usando as mesmas metodologias)
Então, quais são as métricas? Eles variam de projeto para projeto, equipe para equipe e de tempos em tempos. Útil para quando o cronograma de entrega é importante, que eu pessoalmente usei é a habilidade e qualidade de estimativa. A maioria dos desenvolvedores pode estimar com precisão as tarefas que duram uma semana ou menos. Portanto, uma abordagem é dividir o projeto em tarefas de uma semana de desenvolvedor e acompanhar quem fez a estimativa. À medida que o projeto avança, eles podem alterar suas estimativas. Depois que uma tarefa é concluída, se estiver desativada em mais de 10% (1/2 por dia), trataremos o mesmo como um bug - identificamos por que a estimativa estava desativada (ou seja, uma tabela do banco de dados não foi considerada), identifique o ação corretiva (ou seja, envolver o DBA na estimativa) e depois seguir em frente. Usando essas informações, podemos criar métricas como número de erros de estimativa por semana, número de erros por desenvolvedor,
E daí? É aí que entram as metodologias - se você tem um modelo preditivo que falha em atender às qualidades do processo, pode optar por adicionar ou remover algum aspecto da metodologia e ver como isso afeta seu modelo. É verdade que ninguém quer jogar com um processo de desenvolvimento por medo de falhar, mas já estamos falhando a uma taxa consistentemente alta e previsível. Ao fazer alterações individuais e medir o resultado, você pode achar que o Agile é a metodologia perfeita para sua equipe, mas você pode facilmente encontrar o RUP, a cascata ou apenas um conjunto de boas práticas como ideal.
Portanto, minha sugestão é deixar de se preocupar com o que chamamos de processo, realizar verificações relevantes para nossos objetivos de processo de desenvolvimento e experimentar diferentes técnicas para melhorar esse processo.