Upon reading a recent article about “Never Trusting a Client’s Initial Requirements” we just had to write something in response. This particular article comes from the traditional project management camp and contains some pretty good points when undergoing initial requirements phases with a client.
While the author, Brad Egeland, makes some good points, it is apparent throughout the article that an Agile approach to requirements gathering sessions is really, in the end, the best answer.
Brad suggested four ways to elicit further requirements from the client, including:
- Hearing the customer out – Making notes of the client’s needs and asking the right questions.
- Meet with SME’s and end users – Gathering different perspectives on the requirements.
- Rework the requirements – Make necessary changes from the original requirements document.
- Give the client the bad news – Tell the client that they got it all wrong.
Wow. Doesn’t sound to appealing, right? We didn’t think so.
So what happens if the client won’t budge? Brad tell us that:
“I believe that, in most circumstances, ending the relationship at that impasse rather than risking permanent damage to your reputation is usually the best path to take.”
Excuse me? After all the work and effort you’ve put into the requirements process and setting up meetings with various stakeholders and SME’s and then doing details re-work of the original requirements, you’re telling us that we should sever the relationship? Are we reading this right?
The rationale that Brad suggests to the reader is that the individuals reputation is at stake. We understand that, completely. But how is this relationship-ending process beneficial to anyone?
Here is where Agile really shines.
What makes Agile software development processes so unique and successful is the collaborative nature of the product building and product requirement phases. You need not sever a relationship with a client merely because they won’t budge on the requirements. You have a conversation about features, broken down into functional units of work. You work with them through iterative development which allows consistent feedback loops to allow for changing requirements. Need we say more?
Agile allows situations like these to be a turning point for success:
- Work with the customer through discovery and story carding sessions.
- Break down requirements into features that can be released iteratively.
- Meet with the customer weekly, if not daily, to discuss changes.
- Show the customer demo-able product early and often.
- Allow them to make changes to requirements at any time and communicate the down-stream affects.
Severing a relationship with a potential client or customer is never a way to go, especially after all the hard work that has been put into the requirements up front. Take a stab at Agile software development processes and see how you can make these potentially negative encounter into opportunities for success.