In an episode of "That 70's Show" Hyde teaches Jackie how to be Zen. What he's really showing her is how to respond in a way that the person listening has no clue if there was agreement or not. He shows her how to respond to every statement & question with a casual: "whatever." This is a great example of ambiguity.
In my newest role, I am not managing a team or monitoring other BA's. I am the BA and so I find myself writing the requirements instead of critiquing and coordinating them. In doing so, I have to follow the guidelines I have been using to judge the work of others for years. The most important thing I keep in mind as I write is not to let ambiguity in.
About a week ago, I was incensed by an article on requirements excellence because the author seemed to take the defensive position. "It’s not me, I write great requirements and project failure is out if my hands." Well, I have to say that's not true. The leading cause of project failure is requirements, and the leading cause of requirements failure is miscommunication. Why? Ambiguity!
So just what is ambiguity? Well, in a nutshell, ambiguity is anything that is unclear or vague. In requirements ambiguity is anything that can be interpreted in more than one way, language that is inconsistent, use of jargon and incomplete logic.
Multiple Interpretations
When I read requirements I pick them apart. I pull out words like should, could, some, few and many. You can't measure or quantify some, few and many. Should and could mean the item is a nice to have. Be assertive. If the tool must do something, write that the tool must do it.
On ham radios, you use special language to get a clear message across. You say correct instead of right and Roger instead yes. We need to follow similar guidelines. Use simple language. The more you embellish a thought, the more unclear it becomes. If you are not sure how to describe it, bounce ideas off a colleague or work the idea over using mind mapping or brainstorming techniques.
Inconsistent Language
In addition to embellishing requirements language (some really fall just short of “thou shalt…”), many BA's also use terms interchangeably. A big part of ambiguity creeps in here. The terms might actually be interchangeable in conversation over the water cooler, but they are not interchangeable in a requirements document. All you're going to do is confuse your audience. It could be as bad as the "who's on first?" by Abbott & Costello in some meetings.
A product typically has a full name, and a nick name; it might be part of a suite or product line; and it is always associated to the company that created it. These are not interchangeable! At the start of your document define the name you will use throughout the document. Define it with the full company name, product line, and product name. Adopt one name and stick to it.
An example is the project I am on now. We are making enhancements to a web application for making reservations on a ferry. I had to resist the urge early on to use reservation and booking interchangeably when writing about the reservation records. I separated them because booking is actually associated to the process of making reservations and to travel agents.
Use of Jargon
We are so bad for using jargon in software we think we invented it! The trouble is that so many of the terms we use have a completely different meaning to the business users. This means they won't understand how we're using the terms and again, we miscommunicate information to the audience.
Warning: Excessive use of jargon may cause business users and stakeholders’ eyes to glaze over.
If you're in a meeting, and you don't have a hot clue what they're talking about it's pretty hard to contribute. If you can't contribute, you get bored. If you get bored, you're disinterested and less likely to ask questions that add value to the quality of the end product by challenging the requirements. And guess what... ambiguity creeps in because people have gone past the ability pay attention and really care.
Incomplete Logic
I would have been a wealthy woman if I had a dollar for every time I heard "we didn't think about that" on my last project. So many BA's focus on defining what the software has to do under a given set of circumstances, they forget to explore the 5 W's of what it should do if those circumstance or any combination of them is not met.
Trust me, I've seen requirements from BA’s on the defence, and they are riddled with these logical inconsistencies. If you ever find yourself defending your requirements to a team that is telling you I can't understand them... It's not them, it's you. Drop the ego and fix it. Accept responsibility, make it right, learn & move on!
It kind of reminds me of my son when I come across this defensive attitude. My teenage son's knee-jerk response is "it wasn't me." we live in a house with two cats and occasional visitors. (I'm starting to suspect we might have actually have another roommate that likes to take things out and leave them around.) The point is, he gets defensive, and the more he sits in denial the more he looks like an uncooperative ninny. Because I know it was him!
360 Degree Perspective
The best solutions come from the marriage of ideas from different sources. Many great documents like the Declaration of Independence, the Constitution and the Charter of Human Rights & Freedoms were created this way.
Requirements are no different. Ambiguity is best addressed by looking for it with a peer & team review. Be sure to Track all ambiguities in an ambiguity log containing metrics for measuring the statistics on them. After giving them a chance to read the requirements against the ambiguity criteria (tell them what the criteria are!) host an ambiguity walk through.
Guidelines for Hosting an Ambiguity Walk Through
Ensure you schedule lots of time for these meetings. Quality review sessions and walk throughs involve developers, testers, architects and business intelligence. This means you will sessions of a minimum of 4 hours per day over the course of up to 2 weeks including breakout sessions.
Set rules for the sessions to go faster & smoother. The best rules I have used for breakouts state that any issue that will take longer than 5 minutes to resolve, requires more analysis or requires input and decisions from someone not in the current meeting, get moved to break out sessions.
Define the approach and the criteria for turning an item into a break out. Go over the approach at the start and remind people again at the start of every session.
Ideally, you want to talk about the requirements from a high level functional perspective. An example is: "this function is intended to provide the functionality for check-out. The basic processing is X.
Did anyone see anything in this section that does not make that clear?"
Collaboration as a by-product of Ambiguity Management By utilizing the ambiguity management techniques outlined in this article, two things will happen: the quality of the product built will increase with greater alignment to the project objectives, and your team will learn to collaborate on an unprecedented level.
When architects, developers and testers provide the kind of 360 degree feedback you'll get in this forum, you wind up with requirements that fully define a product. Not only will that product meet business objectives and drivers, but it will have more of the target functionality, fewer bugs and you will actually decrease the break and fix cycle! On top of that, all team members will feel like they’ve been heard, had their concerns addressed and that they contributed to a quality product. It doesn't really matter where they're at right now, it just might take longer to get there.