Rodney M Bliss

How To Talk To A Programmer (And Get Results)

(Photo credit: cisco.com)

Dave, would it be possible to cache our SQL database queries so we could work in an offline mode?

Nope. We designed the system to expect a persistent connection to the data. We’d have to completely redesign the communication module. I’m not even sure we could make it work anyway.

Okay, I was just curious.

Programmers, or developers as they are more commonly referred to in the software world, are typically really smart. But, they tend to view the world very black and white. I think it has to do with the fact that at its heart a computer really only understands “on” and “off.” It’s why we refer to them as binary devices. (Well, some of us refer to them that way.)

Your computer, or your smart phone, or your tablet, stores programs and data and all those pictures of your cat on a hard drive. A hard drive is made up of literally billions of memory locations called bytes. In fact, “giga” mean “billion.”

kilobyte == a thousand bytes
Megabyte == a thousand kilobytes, or a million bytes
Gigabyte == a thousand megabytes, or a billion bytes

The sizes continue.

Terabyte == a thousand gigabytes, or a trillion bytes
Petabyte == a thousand terabytes or a quadrillion bytes
Exabyte == a thousand petabytes or a quintillion bytes
Zettabyte == a thousand exabytes or a sextillion bytes. That’s 10^21, or
1,000,000,000,000,000,000,000 bytes.

It is estimated that in 2011 there was about 300 exabytes of data stored in the world. Today there is more than a zettabyte. Large companies like eBay, Google, Microsoft or the NSA have datacenters capable of storing zettabytes of data.

But, back to programmers. A “byte” is made up of eight “bits.” A bit can either be “on” or “off.” Programmers will refer to a bit being set to 0 (off) or 1 (on.) For example, to express the number 114 in binary code, you would record 0111010. Most programmers write in high level languages that don’t require them to set the bits in a byte individually. But, when it comes down to it, your computer is all 1’s and 0’s.

What’s this have to do with programmers? Just that to a programmer, often things are “on” or “off.” When I approached Dave with the question about our software, I didn’t expect a response. Well, I did, but I expected him to say it couldn’t be done.

Why? Because we hadn’t done it. The program worked the way that it worked and anything else was a “no.” Essentially, the zero.

However, I’ve worked with programmers a long time and in addition to being very binary, programmers are naturally curious. My whole point in going to Dave was to plant the idea. I knew that he’d take my question and start thinking about it. He’d think about it on his way home. He’d think about at random times when he was eating breakfast, or about to go to sleep. And after letting it stew for a couple of days, Dave would come find me.

Rodney? I’ve been thinking about that question you asked about caching SQL queries. We can’t cache the actual SQL query, but we have a module that evaluates the query string before we hand it off to the communication module. I think all we would have to do is add a single interrupt call to that module.

Okay. . .

We’d make the evaluation module check for a valid connection before handing it off. If we couldn’t ping the server, we’d hold the query until the connection came back. We could even store it so you could turn the remote client off.

So, you’re saying. . .

Look. Your question was wrong. We can’t cache the SQL code, but I’ve figured out a way to give you what you really want!

And with that Dave would grumble about trying to talk to non-programmers and he’d head back to his desk to code up the solution. What was ironic about this exchange was not just that I did it on purpose, but that in the past, I told Dave I did it on purpose. I explained to him how I got him to spend his free time thinking about how to solve these clever use cases. And the fact that he knew what I was doing didn’t change the fact that it worked.

Had I gone to him and said, “I need you to modify our software to work in offline mode,” I would have had a huge fight as Dave spent hours explaining why it couldn’t be done. By presenting it as a question, and implicitly a challenge, I appealed to his natural curiosity. In the end, he had to convince me of the soundness of his strategy.

Occasionally, Dave got annoyed that he ended up convincing me of the things I wanted in the first place. But, he couldn’t get too upset. After all, it was his idea.

Sometimes you just need to understand how to speak their language, and think about those computer bits.

Rodney M Bliss is an author, blogger and IT Consultant. He lives in Pleasant Grove, UT with his lovely wife and thirteen children.

Follow him on
Twitter (@rodneymbliss)
Facebook (www.facebook.com/rbliss)
LinkedIn (www.LinkedIn.com/in/rbliss)
or contact him at (rbliss at msn dot com)

Exit mobile version