Programming With A Loaded Gun To My Head
Here, hold this.
I stared at the pistol that my friend Dave had just handed me. It was a loaded Glock 9mm. This pair programming session was not starting out the way I had expected.
When I was 16 years old, my mother started a CPA business in our living room. After a career in state government and several other white collar jobs, mom had gone back to school and studied accounting. After successfully passing the CPA exam, she hung out her shingle and started Bliss CPA. As a small business owner, it wasn’t just mom who was working. All of us kids also got to share in the joys and pains that are a business startup.
I remember spending hours doing bookkeeping. This was in the early days of computers. I used a spreadsheet program to painstakingly input the transaction information for a client’s ledger sheets and then check to make sure that column A equaled column B. Often it was income vs expenses. The worst experience was when the two columns were off. If they were off by an even amount, say $1.50, you would look for an entry that was half that number. Did a $0.75 charge get put into the income column instead of the expense column? Then, it was a careful review of every.single.line. . .looking for the missing entry.
But, even worse than an even numbered mismatch was an odd number. The columns had to match exactly. Being off by $0.01 meant that I had to look at every entry in both columns to figure out if I had mistyped an entry. It was excruciatingly painful. I often thought,
I will just PAY the stupid penny out of my own pocket if it means I don’t have to go over this list one more time.
I learned two things. First, I learned to pay careful attention to detail. Second, and more importantly, I learned I never wanted to be an accountant. (My brother eventually bought the firm and it’s now Bliss & Skeen CPA.)
I studied programming in college. I discovered that, for me, programming is very much like accounting. I can do it, but it’s not something that comes easily to me. Recently, I decided to take a programming class as part of a continuing education program I’m working on. My friend David Brady, is a brilliant programmer. I asked him for some help.
Understand, I wrote the program first by myself. I created the classes. (The code is in Java.) I built my data models. I created my test cases and worked on formatting my output. I would say, I was 80% of the way there. I asked Dave to help me push it over the finish line.
Dave is a big fan of the Agile programming method. Agile involves many aspects, but one of the most unique is “pair programming.” In pair programming, both developers sit at a single keyboard and look at the same code base. This being 2016, we actually were using Dropbox to share the codebase and making realtime updates from two locations. But, those two locations were both in his home office. And that’s where the gun came in.
I had just finished explaining to Dave what the program needed to accomplish. This is included in a document called the Design Specification. It’s not a complicated program, but since it is for a training class, the grading criteria, called the testing rubric, is pretty specific. I had just finished with my explanation when Dave handed me his pistol.
What’s this for?
I just wanted to test the hypothesis that I would rather hand you a loaded gun than help you write code.
Okay. . .
Think about it, your friends might SAY they’d rather hand you a loaded gun than help you. But, they are just speculating. I have empirical evidence.
(No programmers were injured in the writing of this article. . .and I passed my class. Thanks Dave.)
Rodney M Bliss is an author, columnist and IT Consultant. His blog updates every weekday. He lives in Pleasant Grove, UT with his lovely wife, thirteen children and grandchildren.
(c) 2016 Rodney M Bliss, all rights reserved