Closure And The Dysfunction Of A Software Developer
- —What can we learn from the psychological implications of unfound solutions and a frazzled developer?
- Published: Thursday, December 13 2018 21:28
- Written by Jesse Riggs
The Struggle Is Real
The blue and white tones of Debussy have muddied to a beige. The clicking of the keys under my fingers sharply pierces my ears, like gravel crushing beneath a bulldozer. The two overlay like a horrendous dubstep remix of pianos falling from Brooklyn condos.
For the past day, and much of the day before, I have been looking for something I cannot find; something I’m not too sure what is. All I know is that what I expected to find is not there; a small box, with a button and a message, “CONFIRM PROJECT CREATION.” I know it should be there. I put it there… Why isn’t it there?
I wrote the code to confirm when a project is created with a plugin I built. But, the code never happens. It was as if I had transcribed Clair De Lune, and then handed it to a pianist, but when he plays it, he skips over an entire page. But, this pianist is a machine, and can’t speak English.
High Alert
Imagine that you taking a leisurely stroll through the woods; a familiar part of the woods you have walked and loved for over a year. You watch the birds and rabbits scurry around before you, and then hear a sound coming from a bush. It could be a family of bunnies, or a birds eating berries, or even just the wind.
Now, let’s imagine that—before you head out on your walk—someone(perhaps a ranger) tells you to walk with caution, that a bear has been spotted in the area. Now that you have this new information, what is that sound? Suddenly it is a bear, a 750lb, ferocious grizzly-bear.
Not only is that sound a bear, the twitching patch of fur between the trees is now a bear. That subtle whiff of scat, yup, that’s now a bear. Your coworkers are bears. Your friends are bears. Your family are bears. Everything is a bear.
Help From A Friendly Robot
I know that there is a bear in my program. I just don’t know where. To find this bear in my pianist, I must employ the help of a friendly pianist, who is actually a robot, who doesn’t even play piano; but he does speak a little bit of English. This new pianist can wrap himself around the first pianist, and become possessed by his spirit. He can then relay back to me what the pianist is seeing and doing. I call this friend Debugger.
Debugger spent several hours playing the song, in slow motion, and relaying back to me the notes being read and the keys being triggered. I would then examine each input and output to verify that it is correct. I even give Debugger a different songs to play. What I find is that the pianist isn’t even receiving a page.
Plugins are not programs that run all by themselves. They are but single musicians who play a single instrument, in a well orchestrated and complex symphony of computation. There is a conductor who triggers events that queue each plugin. This is my moment of clarity. What notes are the conductor reading?
The Human Analog
Like symphonies, people are complex orchestrations of conflicting needs, wants and wills. We are driven by outside and inside triggers. When hungry, you just might forage for food. While being chased, you just might run. We develop scripts so that we don’t have to think about what we are doing. We react to feelings, like our pianist reacts to notes.
But, sometimes, we are haunted by feelings we don’t really understand. Sometimes, we become possessed by feelings of anger, sadness, and despair, but aren’t able to identify what it is(Alexithymia). When something is missing, it is much harder to figure out what to do. How do you react to something that isn’t there?
Closure
It was then, when I found it, on the 327th line of a file names plugin.xml, a peculiar, almost lopsided, and very much unfinished line of code. I found a void where there should have been a single closing angle-bracket “>”. It was a simple typo which was as easy to miss as the comma from this independent clause. But, it stopped the conductor from reading the right notes.
Bazinga! The air is clear. The animals are playing. The world is beautiful again. When I started, I realized that I could have spent the rest of my life chasing a ghost. But, If I had given up, I would have never known that this closure exists.
Now that I have found the solution to my problem, I think I’ll celebrate with a cup of life-affirming coffee and cranking up the Bassnectar. ;)
Closure And The Dysfunction Of A Software Developer by Jesse Riggs is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Based on a work at jesse-riggs.com.