Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Why is it said so?
Throughout our experience in software development we have understood that the core purpose of any software development activity is to achieve customer satisfaction. The very fact that a software product is developed implies that there is a deep felt customer need that has not been addressed. This is further supported by the fact, that in a free market, if a product opens up new avenues to satisfy the customer need then competition is bound to follow to tap that market. Competition ensures that there is quick, effective, efficient and delightful innovation around the customer’s needs. So often the customer has more choice to pick just the apt solution. In fact, it is becoming clear that “customer satisfaction” is no more the end-goal of software development but only a non-negotiable minimum starting point. The end goal is “customer delight”. This again is further complicated by the fact that the customer often does not really know what he/she needs until it is shown to them. To summarize:
- Customer satisfaction, or customer delight, is the sole purpose of software development.
- Competition makes sure that this bar for customer satisfaction is quickly met and continuously raised.
- The customer does not really know what he/she wants until you actually show it to him/her.
Given this much complexity how do we address the concern that our investment in software development is reaping the right results? To me, this principle hints at the answer to this question.
The customer is at the center of Agile software development. The customer has always been an important stakeholder in any software development activity. After all, no one wants to spend time and money in developing a high-quality product that no one is wants to buy. But if the erstwhile focus was to make sure that success was achieved by figuring out what the customer wants once and satisfy those needs within the budgeted cost and time, then that focus is now changing. This is not to say that time, cost and scope are no more the key parameters of software development success. This is to rather say that customer satisfaction, customer delight even, is the highest priority and others parameters derive from it. This is to say that software development can (and should) continue so long as there is critical customer need that is still unmet.
Involve the customer early, involve the customer continuously (or often enough). We have seen that competition ensures that any valuable innovation done by us is quickly equaled and sometimes even made better by others. The fact that we have a satisfied customer today does not make sure that we have a loyal one for ever. The customer simply prefers one who understands his/her needs best and satisfies them. Now the needs itself keep changing with the times. Something that the customer did not even know was possible or existed today might become a super-important need tomorrow. Given this situation, the only insurance that we developers have is to deeply involve the customer early and often. Ensure that we understand the core customer needs today, quickly create a solution that meets those needs and turn it back to the customer seeking feedback, keep tweaking the solution based on the feedback until it is what the customer “exactly wants”, release it, and repeat the same process tomorrow, and repeat the same process indefinitely.
Delivery of value drives up trust. Too often, we have been plan-driven and our idea of customer satisfaction has been to convince the customer of our solid plan with a promise of a future delivery of finished software. This is not to deny the importance of planning or a rant against plans. This is to rather say that a customer is more likely to be trustful and satisfied by seeing something little that is working today than being impressed at a plan and promise of a big future delivery. The customer appreciates only value and this “value” is to be found in working software more than anywhere else. So, our best bet at keeping a satisfied customer is to keep doing the same cycle discussed above – Ensure that we understand the core customer needs today, quickly create a solution that meets those needs and turn it back to the customer seeking feedback, keep tweaking the solution based on the feedback until it is what the customer “exactly wants”, release it, and repeat the same process tomorrow, and repeat the same process indefinitely.
Break barriers to flow of information. If you are convinced that achieving customer satisfaction is a continuous activity, then it is imperative that the entire communication channel between the customer and the development team is as short, efficient, transparent, and clear as possible so that the team clearly understands the customer needs, so that what the team creates reaches the customer as early and as often as possible, and so that this process is indefinitely repeatable.
How is it put in practice?
Different Agile methods put this principle into practice differently. I hope to put a detailed post on the practical aspects of applying this principle and only a brief is given here.
XP, for instance, highly recommends that the customer be highly available to the development team by being part of the team itself.
Scrum has the Product Owner (PO) role who plays the role of the key stakeholder. This role represents the end-user of the system and is usually an expert with a total understanding of the product and its domain – the product vision, road-map, the competition, the market-place, future trends in the domain, and so on. At the start of every Sprint, the development team sits with the PO to thoroughly understand the immediate highest priority incremental unmet value that the customer needs from the software. The team estimates, commits to delivering the planned value, and makes all efforts to meet it. At the end of the Sprint the PO decides if the output delivered by the team is valuable and satisfactory.
DSDM introduces several roles that represents various facets of the customer – Executive sponsor, Visionary, Ambassador user, Advisor user.
Related posts on this blog: 1