“Binary Is Always and Never” — A better binaryesque statement would be “Binary is Always OR Never” but it would be less accurate. Many functions, thoughts, events, behaviors, appear stream-like, flowing, complicated, with millions of molecular, intellectual and motivational subtleties. Under the nuances of how things work, however, if you dig deep enough, you find an either/or switch. It’s true in decision-making, software, DNA, cooking, conversations, astronomy, art, and plumbing. In software, binaryness keeps a high profile. As my son once wrote on a napkin and passed it under the table, “There are 10 types of people in the world, those who know binary and those who don’t.”
You have to know things binary in order to know the limits of binary assumptions, interpretations, and results. The oversimplified binary thinker (not calling out developers per se unless the shoe fits), might see, and explain to others, that if x-y-z, then the output will be A. So Fred, for example, may say that you don’t need to waste time testing, it’s binary, if you have x-y-z, output must be A. Period. In mid-project, you get to the point of having x-y-z, and voila, the output is A27 instead of A. Fred at this point always confidently says, no, it must be user error, you did something wrong, you didn’t do x-y-z, you can’t have x-y-z and fail to get A. Sound familiar?
The problem is that x-y-z are complex: e.g., x comprises 1,000 sub-pieces, y comprises 90,000 switches, and z comprises 500 nodes, and each node has 100 moving parts. Fred was confident he had x-y-z in place, but 1 part of 100 inside one of the 500 nodes was faulty. On the surface, x-y-z looked right, behaved right in dev environment, passed code inspection, a work of art, pristine, can’t fail, don’t need to test it. Then Fred put the program on your PC and boom, A27 happens.
Fred denies the possibility of the faulty output before repeating the process and getting A27 twenty or thirty times, then he’s convinced it’s the end times and all laws of physics are falling apart , and finally, Fred gets a grip and starts digging for the cause. A couple of days later, he finds the faulty 1/100/500 bit. It’s a great relief and a great victory, but at what cost? Some Freds will learn that binary assumptions may be inappropriate at certain levels where you don’t have visibility into deeper structure. Other Freds will still say binary at my level of vision is always my assumption, until my next traumatic brush with incongruity.
Takeaway—Binary though they may be, Life and Software defy binary assumption. Why? Because we never really get visibility into the deeper structure. That’s why it’s accurate to say, Binary Is Always and Never.