We talk about characteristics of good requirements, including completeness, correctness, and clarity. But how do we assure that our requirements are complete, correct, and unambiguous? Simple, Captain, with logic. And how do we improve our logical skills?
Short Pitch For Logic
Logical thinking helps us in many areas of life, but for this article, we’ll talk briefly about how logic helps us avoid incomplete, incorrect, and ambiguous requirements.
- Incomplete Requirements – logic allows us to look at the whole, and develop an intuition about the completeness. There are many models that can be used for capturing requirements, like the state-transition diagram that Seilevel uses (state table). The state table works because it is rooted in logic. Essentially, it is a visual representation that makes a specific type of oversight scream at our frontal lobe to be discovered. Logic dictates that all transitions must be addressed (or explicitly prevented).
- Incorrect Requirements – logical inconsistency helps us identify when our requirements contradict themselves. This is more effective when documenting highly interdependent processes. Logic also allows us to apply domain knowledge, or extra-domain knowledge to the requirements we elicit. If something is inconsistent with what appears to be (otherwise) similar from a different domain, logic helps us identify the incongruity, and ask clarifying questions.
- Ambiguous Requirements – Mavens help us identify when terms are ambiguous in the context of a domain. Amateurs can apply logic to identify ambiguity in language. This parsing of speech is applicable in any domain. And even more important when working on a team that doesn’t share the same primary language and idioms.
Improving Our Logical Thinking
One of the business analysts on my team shared a fantastic site with me last week. The LSAT Logic in Everyday Life podcast is a weekly(ish) podcast from the Princeton Review. The author approaches current events and other everyday situations from the perspective of a logician.
The podcasts are intended to help people improve “the kinds of logical thinking tested on the LSAT.”
Well, it is the same kind of logical thinking that helps us write better requirements. Each recording is about five minutes long – I’ve burned them onto a couple CDs that are in my car for the drive home from the airport. The general theme, at least in the earlier episodes, is in exploring the logical fallacies of many different arguments, positions and conclusions. Discussions about how to apply logic to strengthen and weaken arguments are also included.
As writers of requirements, we can benefit from this as well. You should all listen to at least one of them, it only takes about five minutes. I believe you’ll be very excited.
That podcast is a great tool for looking at practical examples of the logical principles tested on the LSAT. As an instructor, I try very hard to get people to see examples of logic in every day life (and examples of illogical statements in every day life). These types of examples certainly help when teaching these principles, and helping students understand them and then recognize them on a very difficult test.