Rants


How do you deal with programmers who are intellectually bored at work?

February 5th, 2010

I finally had the guts to ask a question on the Stackoverflow Podcast. My question was…

Hello Joel and Jeff,

My name is Jeffrey Wiens and I have been a developer for around 4 years. I am currently in a applied mathematics graduate program because I needed something more challenging than what my previous jobs could offer.

As a manager, how would you deal with programmers like me that are intellectually bored at work? And how do you balance this with your company’s immediate needs which may be intellectually unrewarding?

I think Joel and Jeff kinda missed the point. Well at least Joel missed my point (I think). Either way, you should still listen to the podcast. Instead of answering what managers should do with bored programmers, they answered what I (or bored programmers) should be doing. To summarize their response, they thought that boredom has more to do with your metal state instead of the task at hand (which I totally agree with). Also, that any programming project can be interesting if you are working at the correct level of abstraction (which I tentatively agree with).

I totally get that your metal state has more to do with boredom than with the task at hand. For any task, I bet that you can find at least one person that finds it interesting. However, I wouldn’t say that every person could find any task interesting. Now, in a previous life, I used to be a contractor for Powerschool. This company sells software that manages general student information (ie. grades, attendance, etc) for public schools. In order to get funding, every school in the US needs to submit a set of reports to the government. One of the benefits of using Powerschool is that they create these reports for you. My job was to create some of these reports. The annoying thing about these reports is that they varied from state to state. The work was really not interesting. It involved reading a lot of government documentation and writing simple programs in a domain specific language. When it came to programming, all we needed to do was grab fields from the database, do some minor calculations, and then dump the data to text. To make things worse the domain specific language was horrific. If I had the power, I would have created an environment to address these issues using a more standard technology. However, the decision was not for me to make. For some of the programmers, the job was satisfying. However, it was not satisfying to me. Reading government documentation was boring and there was no inherit difficulties in the problems we were solving. The best choice for me was to obviously leave. However, when I left, I took a year’s worth of knowledge with me. Personally, I don’t really care. I took the job because I needed experience and I was tied to a certain location. However, as soon as I had another opportunity, I took it. But this leads to my original question about managing bored programmers. How could have Powerschool have kept me? If they had no desire to keep me, that is also fine. I am far happier because of it. However, what if Powerschool did want to keep me? What could have they have done?

This was the point of my question. I personally don’t care if your company hires me or not. Likewise, I don’t care if your company is intellectually engaging or not. However, my life is way to short and precious to waste it. If I am not enjoying my work, why should I stay? However, the problem is that managers should care that I stay. When programmers leave, they take the knowledge with them. This is a big problem.

I think that part of the answer to my question can be found in my next job at Trinity Western University. The university had an in house development team which created custom solutions for the university. The job could have been just as boring as my last one. However, the manager and team made it an awesome place to work. It is by far the best place I have ever worked. The thing that continues to surprise me is how they managed to hire so many high quality developers. I think the answer lies on how they handled intellectual boredom. The first thing that they did well was that they allowed you to experiment. Instead of taking the easiest/simplest route, they allowed you to try new things. These experiments didn’t always turn out. However, some of them did and offered huge improvements to the old system. As a manager, it is very tempting to take the cheapest and easiest solution. However, if you want good developers, you won’t get them by doing this. The second thing that Trinity did was create Professional Development Days. I learned a lot of stuff through them. For example, one friday I created a spam filter for our support system. Did we really need a spam filter? Not Really. However, I learnt a lot about Machine Learning because of it. The great thing about Professional Development Days from a managers perspective is that these side-projects often snowball into larger personal projects. This is knowledge that could help your company.

Anyways, despite all the positive attributes of Trinity, I still decided to go back to school. As much as I loved working there, I still couldn’t see myself working for them in ten years. Either way, I was hoping that Jeff and Joel would shed some light into my question. Perhaps boredom is just a personal problem. However, some companies seem to be less boring than others. I thought Joel would have some insight on what companies could do to make the job more interesting.

Sources for Original Ideas

September 11th, 2009

After university and landing my first programming job, I started to immerse myself into the hacker culture. I basically had no exposure to this culture prior to my first job. However, I decided early-on that if I wanted to be a “good” programmer that I needed to jump full force into it. I started reading Joel on Software, Coding Horror, Scott Hanselman, Paul Graham, and various other programming blogs. I also subscribed to reddit (and later hacker news). In order to round myself out, I started watching TED videos (and some google tech talks) which covers a broader set of knowledge. Up to this last week, these were basically my only sources of knowledge.

Normally, you wouldn’t think that this is a problem. Every source of knowledge that I named here are really high in quality. I learnt some very important ideas and concepts from these sources. I am a lot better programmer because of it. You may ask what my problem is then. The problem is that EVERY decent programmer has a similar set of streams of knowledge. You have no idea how many workplace conversations Jeff Attwood has created. I suppose that this a good thing. However, the ideas that are being discussed aren’t really original. I don’t think I have ever seen a post from Jeff Attwood that was truly original. He mainly amplifies existing ideas and adds a few personal opinions about the topic. However, even if it were original, because it came from Jeff Attwood, the topic has become, by definition, common knowledge. If most programmers have coding horror as a source of knowledge (either directly or indirectly), this source ceases to be unique. I have a problem with this.

The problem is not that programmers have common knowledge. The problem is that the common knowledge accounts for a high percentage of their total knowledge. The problem really starts to manifests itself in the creation of new original ideas. Ideas are not created in isolation. New ideas are formed by the connection and relationships between existing knowledge. If majority of your knowledge stems from common knowledge, well face it, majority of your ideas are going to be common. However, if you want to have original ideas, you need to have knowledge sources that are not common. Frick, do you want to be the guy that creates yet another bug tracking application? Of course not, you want to create something original… something unique… something that has never been created before. You want to create the Mona Lisa of software. Well, I assure you that you aren’t going to do it by just reading Coding Horror and Joel on Software.

The age of the blogosphere has given the illusion that knowledge is cheap. However, this can’t be farther from the truth. Everything in the blogosphere is given in nice digestible pieces and is easily accessible. However, most knowledge isn’t linked by Hacker News and put into a witty three paragraphed blog article. Knowledge has to be pursued. It is hidden in the depth of your university library. It isn’t a tramp waiting for you on the street corner.

Shreddies Diamond Rant

February 3rd, 2008

I just saw the most bizarre advertising scheme for Shreddies Cereal. They just started advertising for a new product called Shreddies Diamonds.

Now, I want you to look at the new Shreddies and then the old one. If for some reason you failed Kindergarten (and didn’t bother to repeat it), I want you to rotate your head 45 degrees. Wow, look at that, the old Shreddies look like the new improved Diamond Shreddies.

I don’t understand how they can justify advertising for this product. Do they think the general public are absolute morons! Don’t you think people will clue in when their bowl of Shreddies Diamonds looks identical to the regular Shreddies? They didn’t even bother changing the grid, so at least something would be different.

I refuse to buy this stuff. If I really want to eat Shreddies Diamonds, I will just buy regular Shreddies and rotate my coordinate system by 45 degrees.