History

I’ve mellowed a lot in my old age. I still like a good joke or a raze but I’m not as bad as I used to be. I guess that’s another thing that comes with getting older. I’ve always been a smart ass and I probably always will be. I think it’s in my DNA. I like to joke and kid with the people I spend a lot of my life with.  That’s my family, my friends and my co-workers. I’m never intentionally mean to people, I just like a good laugh and that includes laughing at myself. Sometimes though, you run across people that just rub you the wrong way. That’s where the subtle art of being a dick really shines.

For almost 20 years I was a partner in a software company that I helped co-found. A year before we sold that company, my partner and I had a falling out and he decided he was going to bring in a consultant. His decision was based mostly on picking up the slack if I decided… screw it, I’m out. I don’t want to use his real name so let’s just call him…. Bill. Bill was the kind of person who thought a lot of himself and not so much about the people around him. The people around him worked hard for me to insure myself and my family had a decent life. That’s the kind of person that definitely rubs me the wrong way. That’s someone who really deserves to experience my particular set of skills.

Our company created productivity products for real estate professionals the utilized data from multiple listings systems around the country and automated many of the common tasks they would do a daily basis. This isn’t too terribly important but does give some background to the events of the story.

My partner and his new consultant Bill decided that they were going to redesign the core component of all of our products, our script and parse engines. These were the components that allowed us to take property listing information from totally different systems and collect and standardize that data. In essence making a super set of common data from desperate system. It was the component that made all of our other products work. It was also the system that was my original design.  I’m not really one who suffers from “Pride of Authorship”. If you have an idea for a better mouse trap, then I’m all in. The problem was, neither one of then actually dealt with any of the data that they now decided they were going to re-create in there own image. They only used the current script and parse language features that we had in the my original code. These languages where written in a time before the internet. Yes, i know it’s hard to believe, but there was a time before the internet.  They were originally written to download data from online systems that used text based command. The data from these systems came if the form of full screen text layouts.

What I knew and what they didn’t seem to know is that the data landscape had changed since we first wrote our engine. It changed A LOT. Almost 100% of the data we now collected came in the form of a delimited file of some sort. We had to retro-fit all of ours system to basically import a comma delimited file. We no longer used all the “screen-scraping” code we had relied on for so many years.

The Art

We finally had our meeting to discuss what the dynamic duo had been designing for months with asking a single question to myself or my team, all of which were data experts. The entire company was present. I had never seen a system so complex that had as it’s only purpose was to import a delimited ASCII file. Don’t get me wrong, there was plenty of room for improvement on what we where currently using. None of those things where in the design I was staring at. I tried to explain the level of complexity they had designed wasn’t necessary anymore. The days of getting data in those formats were long gone, we were bypassing all of those and not using any of that functionality. I was sort of dismissed, I guess as being jealous of their obvious superior design. As Bill continued to roll out his master plan he was asked a question by one of my programming team regarding what seemed like a bunch of code and database tables that didn’t seem to be needed, the details of the actual question are a little fuzzy. Bill explained they existed because his system was muti-threaded and that a running task doesn’t have access to it’s own process id. That caught my attention, the day was looking up! Not because of my interest in multi-threaded programming, but because I knew his statement was false. And there was my opening to weave my craft.

I interrupted Bill every five minutes during his lecture, even though he had moved off the topic, to ask the same question albeit in slightly different ways. It was always a form of “Bill, are you sure a process can’t access it’s own id?” I was good, always asking it nonchalantly, like an after thought but loud enough for everyone in the meeting to hear. Bill never disappointed, he always responded the same “I am POSITIVE” sounding more and more irritated each time he answered. Sometimes I would throw in an immediate “Really?” after his response, the verbal equivalent of twisting the knife. After about the tenth time I asked the rest of the team was already smiling because they knew too well and knew what was coming. I have a well deserved reputation.

The meeting adjourned at which time I returned to my office, opened up my Outlook, and within two minutes sent an email to Bill and CC’d all in the meeting with the code for a running task to retrieve it’s own id.

I would like the thank these guys for existing  DEMOTIVATORS, Despair, Inc. I bought the Consultant poster the next day and hung it in my office. They get me.

~Rob