Preliminary Note: The following is an experience report drawn from my time working as a member of a Business Analysis (BA) team charged with gathering requirements for the configuration of a Commercial off-the-Shelf Software (COTS) system for a wider group that I herein refer to as “the client”. Although I refer specifically to a “BA Team” throughout, Development Team or Test Team could easily be substituted. The scenarios described are virtually the same for any of these contexts. I have also drawn on my study of the principles of Extreme Programming (XP) and experience working on XP software development teams.
A Better Approach
There is a way around such a situation. Convince both sides of the value of meeting in real-time. This is to the advantage of all involved and can result in breaking the stalemate. Rather than passing a marked-up document back and forth in email, try getting both sides together into one session so that everyone is engaged and contributing. The BA Team can ask questions to clarify requirements. In many cases, the client can see changes made as they happen and can give immediate feedback. The BA Team will be able to explore solutions on the fly which is much less cumbersome than the configure -> wait for feedback -> reconfigure scenario. Some measures to take that will enhance the value of the collaborative session even further are careful listening and note taking. You should carefully listen to the discussion. Regarding the things you understand, take careful notes. This way, you won’t have to wrack your brains later regarding what had been agreed to and explained in the session. Don’t shy away or be discouraged by things you don’t immediately understand. Instead, note questions that come to mind regarding what you heard, even if what you heard is in a confused state right now. Later, review your questions and make further inquiries, if necessary, in either follow-up emails or subsequent sessions.
The Tough Sell
Usually, the merit of collaborating is obvious to the BA Team. However, the client may need some convincing. Often, they are busy and hesitate at the prospect of attending meetings when they could instead mark up a document at their leisure. Again, the thing to emphasize to the client is that setting aside time for collaborative meetings is as much to their advantage as that of the BA Team. Management may be of help in getting this point across. Another thing to consider is coordination of schedules.
At the end of the day, the real test is whether
two things are happening:
1) the work is getting done in a timely fashion
2) the client’s true requirements are being implemented.
Investing some time in planning out meetings in advance before folks’ schedules fill up goes a long way. It will save you having to ask the big favor of one or more people rearranging their schedules to join your session at short notice. Generally, we found that if the client has forewarning about a load on their schedule, they will be less hesitant about agreeing to meet.
Results!
As a result of these experiences, my teammates and I are confident that real-time collaboration sessions are the key to achieving requirements elicitation goals. At the end of the day, the real test is whether two things are happening:
1) the work is getting done in a timely fashion 2) the client’s true requirements are being implemented. Real-time collaboration fulfills both these outcomes. Often one collaborative session will produce what would otherwise have taken days, even weeks, via back-and-forth emails. Additionally, there is nothing like being able to ask a person what they mean on the spot rather than reading what they wrote in a document and speculating on what they “maybe might have meant.”
In short, you get a clear definition of the requirements without waiting. It worked for us. Try it yourself.