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 mental 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 mental 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.


Comment by Kent
Made Monday, 8 of February , 2010 at 8:36 am
Love it Jeff! Good job on getting your question addressed!!! Its so easy to be misinterpreted when you only get a paragraph or two to get your question (and all its context across). As always, you do a great job of writing a blogging.
Have a super day man! Sorry I missed you and Brian the other weekend! (Car accidents, house purchases, baby problems because of car accidents and surprise family visits have us full up right now
)