Here’s a simple question — what does your customer expect? Do you know the answer? Many software development teams don’t. They may think they know. They may infer that customers want timely delivery and high quality — reasonable assumptions though rather broad.
Every customer has different expectations arrived at in different ways. Regardless of how the expectations were formed, you’re on the hook to meet them unless you can reset what’s expected. Here are some examples of customer expectations you could have trouble handling:
Issue: The customer sees software at a trade show or webinar and wants similar capability in their custom software application. You’re now on the hook to deliver features and functions controlled by a third party.
Approach: Find out what the customer really likes about the third-party app. Dig deep. Zero in on what really matters then define and agree on what you can deliver.
Issue: The customer has a pressing, unmovable deadline that absolutely must be met. You agree to meet it. Of course, deadline or no deadline, the customer expects a boat-load of features that are reliable and fast.
Approach: Be very clear about priorities and timelines. Work with the customer to limit the feature list while emphasizing your commitment to meeting the deadline.
Issue: The customer needs software that’s rock solid — completely reliable and fully compliant with all regulatory standards. The end users don’t want to discuss these non-functional requirements.
Approach: Build the non-functional requirements into the acceptance test criteria for every story. Make the criteria visible and emphasize them at every software demo.
Issue: The customer demands software that’s impenetrable — security is top priority. Unfortunately, this message is lost on the end users who want ease-of-use and eye appeal.
Approach: As above, use the acceptance criteria to emphasize the importance of security. If it can’t be made secure in time for this release, it can’t be done.
Issue: The customer wants the software to run on smartphones, tablets and desktops. Mobility is the most important success factor. The lack of a mobile solution is killing them in the marketplace. Yet, most of end-users have desktop systems.
Approach: Give priority to the mobile implementation. Use mobile platforms for software demos. Make it clear that the desktop environment is important though secondary.
You may not be able to control initial expectations. People form opinions and desires over time based on information from many sources. You’ll need to deal with it.
It’s critically important for you to understand the customer’s initial expectations, reset them as needed, and help them form new ones consistent with what you need to deliver. If you don’t, you’ll fail.