Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
As with any business, customers have to be the highest priority when delivering software. It’s not enough to deliver software that simply works; the software must work for and do what the customer needs it to do.
The goal of an agile team is to be able to build software that is useful to the customer and release it as early and often as possible. The customer should use the software and provide the team feedback. Then the team should use the feedback to make the software better.
Agile believes we don’t know what software should do when we start a project. By satisfying the customer through early and continuous delivery of valuable software, agile teams can start to triangulate into the right software for the customer by giving them something, having them give us feedback, and then shooting closer to the software they’re ultimately going to use and has the most business value possible.
However, getting that feedback directly from the end-user to the agile team isn’t always straight forward. A lot of companies struggle to get feedback directly to the teams because it’s against their corporate culture to allow developers and testers to talk to end-users. This leads to feedback getting filtered through several layers of the business, and, ultimately, getting to the team differently than the customer intended. This difference often ends up being material and leading to the creation or modification of features that the end-users don’t want. Every addition or change the users don’t want is waste.
As agile teams start to mature, they need to start to ask how can we work to get better feedback from the customer. The first strategy should be to simply talk to your customers. A lot of agile teams never talk to their customers. If teams don’t talk to the people who use their software, how are they supposed to know what to build? Teams don’t know what customer priorities are, what end-users struggle with, or what functions to put into the software that will make their customers’ lives better. Start by asking the customers what needs they have that are going unresolved with the current software. Then use that feedback to deliver more valuable software in your next iteration.
If customers complain about the same issues again and again and again, and the team doesn’t try to improve the software based on that feedback, your customers will never be satisfied. There is an expectation that software will improve over time, and the only way to improve the value of your software is to ask your customers what they like, what they dislike, what they use, what they don’t use, and what they’d like to see improved.
Another way you can tell a team isn’t satisfying the customer is asking the team how the users use the software. Some members on the team won’t even know how it technically works, much less how the end-users are using it. Most business-driven software is used to facilitate the workflow process of the users. Teams that never interact with their users will not understand the workflow they are trying to facilitate in software. No understanding of the underlying business workflow almost always means that software is sub-optimal (at best).
We can’t just have developers build functions and testers test functions. Agile teams need to work collaboratively—amongst themselves and with customers—to continue to deliver valuable software and satisfy the customer.