More and more software development teams use “Agile” methods. Done well, Agile improves software quality and makes development and releases more predictable. Unfortunately, these are not the typical results for “early stage” Agile adopters. Instead, we see:
• an ill-considered rush towards lots of features, with inadequate testing to avoid bugs
• daily, automated deployments, without getting them right
• emergent (read, chaotic) system design, and stream-of-consciousness programing leading to “spaghetti code”
• exponentially increasing technical debt and developer frustration.
Teams stop trusting each other. Human sacrifice! Dogs and cats, living together! Mass hysteria! Teams adopting Agile take ...