Customers are an important part to Agile development. A portion of the Agile Manifesto reads: “Business people and developers must work together daily throughout the project.” This is a key part ot the software development process, and I’m starting to see why. As developers, we have to make assumptions about certain aspects of the business process; however, the less assumptions we make and the more we have backed up by fact from the customer, the better. Communication is key to a healthy application. Having the customer directly involved in the software development process helps reduce the number of assumptions about the business process.
Assumptions aren’t aways bad, but sometimes they can be. And when assumptions are made out of assumptions, that can cause a trickling effect. By having the customer available to discuss with at any moment, it weeds out the faulty assumptions about the business process. It also strengthens design because as we know, customers are UI-driven and so customers can see the development of the product as it is being performed, which also helps to eliminate rework.
If you are a customer and you are reading this, I must warn you to make the development of an agile product your top priority. I know that every business user usually has a full schedule, and that some users want to be able to pass along the information and then not be involved in any of the future details. It may seem like the direct communication, which may be frequent, is an annoyance. But communication, however frequent, is the key to developing a good software product, and all of those correspondences are an attempt by us developers to make sure we stay on track. So I implore business users to make any questions that come across from an agile project seriously, because it will directly impact the future of the application.