@Coders can often walk through large logic problems instantly: I work in an IT shop where we write in house systems to support the business processes of nontechnical people. When we try to hammer out business requirements for systems we'll often have discussions with customer where we carefully question "OK, so it is ALWAYS the case that P and Q implies R", and "It's NEVER the case that P or R implies S" and so forth. The customer will say yes, yes, yes, throughout this, then she'll mention some other case can happen that logically invalidates the rest of everything she said. Only, she doesn't realize this because she doesn't have a coder's hard-edged sense of logic. But when this happens I, my boss, and my boss's boss (the CIO) will all three exchange a quick incredulous look with each other at the same time because we all ran through the logic and found the contradiction nearly instantly. Or, that is to say, as she was talking we were all three building up the same structure in our minds, and the last thing she says brings it crashing down in all three of our heads at the same time.
Trying to explain that to a non-coder is not easy to do without appearing arrogant, and I think that is why people in IT can appear rude. How do you politely say, "Your mental representations are so messy and imprecise I'm having trouble categorizing what you need?"
How do you politely say, "Your mental representations are so messy and imprecise I'm having trouble categorizing what you need?"
You say: "OK, now that we've covered the standard flow, let's talk about the strange cases. What are the weird situations that come up once in a while?"
For many users, "ALWAYS" translates to "always, except for the oddball case", and "NEVER" translates to "not usually, but you never know."
That's why Requirements Analysis is as much about psychology and anthropology as it is about logic.
'"OK, so it is ALWAYS the case that P and Q implies R", and "It's NEVER the case that P or R implies S"'
The number of real world problems where ALWAYS applies is vanishingly small. This is the reason that rule based artificial intelligence floundered. The answer to almost every interesting question is some variation of "sometimes", "often", "almost always", "except when", etc. This is why statistical techniques and machine learning have led to solutions to many problems where rule based AI was an abject failure.
Trying to explain that to a non-coder is not easy to do without appearing arrogant, and I think that is why people in IT can appear rude. How do you politely say, "Your mental representations are so messy and imprecise I'm having trouble categorizing what you need?"