I’m listening to two guys in the next cubicle discuss boolean logic in our product. I’m innately interested in this topic, because I wrote the logic engine. The two guys talking are the guy responsible for presenting the choices to the user and generating the appropriate XML, and the guy responsible for taking the XML after it has been transmitted to the remote sites and stuffing the values into the database so that my logic engine can use that information. Two computer scientists, probably with degrees in computer science, discussing something that is at the very core of computer science. And like everybody else in this office except me, they’re getting it wrong, wrong, wrongity wrong. And I’m wondering if I’m going to have to run over there and smack one or both of them until they get it right.
I can only hear snippets of conversation, and the bits I’m hearing are making me furious. The most maddening thing that I keep hearing is a sentence like “feature A and feature B and feature C”. This is 100% wrong because we only deal with one feature at a time, and so that should be “feature A *OR* feature B *OR* feature C”. Boolean logical AND and OR have specific meanings, unlike the English “and” and “or” which kind-of overlap. When I say “I’m buying this pair of pants to wear when I wear my green shirt and my blue shirt and my striped shirt”, that’s got a meaning that you can get from context. But in a Boolean logical sense, the use of “AND” there means I’m only going to wear that pair of pants when I’ve got all three shirts on. That’s why I think people must use the correct sense of “AND” and “OR” when you’re talking about this stuff, or people will get confused. And people are sure getting it confused – not just these two, but my boss, the QA testers, the customers, everybody. I knew it would be a cluster fuck when we started giving the customers this sort of power, but I never imagined for a second that computer people would have this sort of trouble.
So I’m sitting here getting madder and madder, not just because they’re getting it terribly wrong, but also because they don’t stick their heads over the cube wall and ask me to sit in on this discussion so I can make sure they’re getting it right. And then it hits me – I wonder if they’re not asking me to sit in because they know how mad I get when people get it wrong?
It’s your friggin’ duty to LART them. Do it.
I’m still having a hard time understanding why people are having a problem with this. Are they really having a problem with the concept of and/or, or are they not understanding that you only deal with one feature at a time?
It would be helpful if there were different terms for and/or when discussing logic. Most people don’t use nand or xor in everyday conversation, so there’s no confusing those.
I don’t know if you’re actually looking for suggestions, but there is one thing that occurs to me: make a poster that clearly defines Boolean logic terms, and make it pretty. “I hung this on my wall because it’s pretty”-pretty. Hang it somewhere public, like a breakroom. Maybe it will sink in subconsciously.
Boolean logic make Paul ANGRY! Paul SMASH! SMASH PUNY LOGIC GATES! RRRAAARRRGH!