Customer-Driven Quality is a set of practices for developing software to ensure that customer’s expectations are met or exceeded.
Customers are, naturally, at the center of the framework. Everything we do in this methodology is about building the right software for our customers. Surrounding the customers is the iterative software development life-cycle: Define -> Build -> Test -> Support. Traditionally, the definition and support phases of the life-cycle involve (or should involve) customers. Customer-Driven Development involves customer interactions throughout.
Surrounding the development life-cycle, several practices help the organization prepare for developing software. Before you can build software for your customers, you need to learn about your customers, your developers need to build empathy for your customers, your organization must focus on customer-driven development, and directly engaging with customers removes communication filters and inefficiencies.
I’ll describe this frame-work, and the associated practices, in more detail in a series of upcoming blog posts. Please comment on these posts. I’m especially interested in ways to improve the framework.