Developer Fatigue?

In the recent Visual Studio magazine I saw the following survey:

Do you sense developer fatigue due to the pace of Microsoft Technology introductions?
Yes, some fatigue 45%
No, little or no fatigue 26%
Yes, significant fatigue 24%
Don’t know 5%

(I love kicking it ol’school and using tables)

To the 26% that said no I say, “Good, you’re doing your job.” To the rest of you, “Get to work.”

I don’t often write opinion pieces preferring to keep the focus of this blog more on tutorial type posts, maybe because I don’t really consider myself any real authority. I do my job and in the course of my job I learn a lot that I want to pass on to other people.

So why start now? Well, this survey struck a nerve for me. Maybe it’s because this has some fingers in my post about Oracle and Java. In that post I reveled in the fact that Microsoft is able to keep the .Net framework moving forward at a fast pace and that, relative to .Net, Java has become fairly stagnant.

In Jeff Atwood’s post, The Two Types of Programmers he discusses the two types of programmers as mentioned in an article by Ben Collins-Sussman which says there are two classes of programmers, the “20%” and the “80%” programmers.

To this I have a serious problem. I spend a great deal of time reading the latest programming books, blogs and magazines. I do so because I want to stay current in my field. If I was doctor it would be expected that I would stay up-to-date on the latest research and trends in the medical fields. So should we as programmers.

Our job is to be the best programmers we can be. Fatigue should be irrelevant. Even if you are working in a world were the language features and APIs aren’t moving forward there is still a lot you can do. Read up on patterns and anti-patterns, if you haven’t read Code Complete, do so. I find the idea that programmers are perfectly happy to rest on their laurels completely ridiculous. Strive to become a better programmer, push yourself and your knowledge. As you become better at your job you will become a better person all-around. Knowledge is power.

If you stay current fatigue isn’t an issue. By keeping current incrementally there won’t be any fatigue. Start reading up on .Net 4.0 right now. By the time .Net 4.0 releases you will be pretty caught up and boom!, no more fatigue.

You may say, “Well, my job is to use this or that API or SDK. Knowing anything outside of that is irrelevant.” To that I’m calling “Bullshit!” It’s not about just writing code. If being a programmer was just about writing code then anybody could be a programmer. Writing code is easy. Writing code cleanly, efficiently so it’s easy to maintain, now that takes some skill. The best way to do so is to stay current.

Saying that you’re experiencing “fatigue due to the pace of Microsoft Technology introductions” is a serious cop-out. Staying current is your job because the more current you are the better programmer you are. If I was a fry-cook I’d want to be the best damn fry-cook on the planet, learn the lingo, find the right temperature for the grill so it cooks the eggs and burgers efficiently, work on recipes that taste good and can cook fast. I’m not a fry-cook, however, I’m a computer programmer. Being the best programmer I can be means that I have to stay current on new technology. Screw fatigue.

Thank you, that’s my time

high-pitched whine as I drop the microphone

Comments (4)

  1. Lee

    Bravo. The changes in technology since I graduated college are enormous; in fact I make make living on tech that didn’t exist since those days. Part of what keeps our profession interesting is the constant evolution of it and how it pertains to different aspects of our lives. To quote the new dean of the UA college of engineering, our job is to make people’s lives better. To quote a graduating UA ECE student, our job is to make the world of Jettson’s real (paraphrasing). Now that’s fun.

  2. Greg

    I think programming is being ruined by the relentless onslaught of this “learn or die” mentality. A developer with 10 years of real-world experience is worthless if he’s not keeping up with all the latest trends. How does he do this? By giving up his off-work hours? By studying at work? What if his company doesn’t want to refactor their code every 3 months to adopt the latest fads and trends – is his book knowledge “good enough”?

    So you study, study, study, learn all the current stuff, and guess what, before you actually get to use it in a real project, there’s some newer, cooler, better way to think about things. So hurry up, learn it fast, and hope that you master it AND get to apply it before it becomes obsolete.

    Why are you guys buying into all this nonsense? The problems we need to solve do NOT require all this new crap. And don’t you want to spend time with your children, go for a walk, do anything other than stressing out about your career, which, because of people like you, is becoming like the froth on a bubble in a raging river.

  3. @Greg,

    The problems we need to solve could be solved with assembly. It might take us several years but everything we do could be done. So why keep up-to-date with the latest technology? Because it is really about “Writing code cleanly, efficiently so it’s easy to maintain”.

    One of the legacy applications that we support at work is written in Perl. So should the developers sit back and just continue to write their Perl scripts in Emacs like it was originally developed? No, they keep up on the latest Perl libraries and work on creating a development environment (like with Perl Strawberry and Eclipse Perl plugins) that allows them to write better code easier as well as being easier to maintain. No refactoring, just keeping up with the latest in Perl.

    I spend a lot of time with my son and wife. I take him to swimming lessons, we go on walks and we both have a new found love of Phineas and Ferb, the only time we watch a lot of TV together. Yet I consider myself fairly up-to-date with what is going on in the .Net world. These last few months I’ve been looking into what is coming in .Net 4.0.

    So how do I do it? I come into work at ~7 am. I spend the first hour of the morning reading blogs, magazines, programming books, blogging about something I ran across while working. Then at 8 am I start the day and work till my work is done. Keeping up-to-date should really be about doing it incrementally. A little bit everyday and it’s not that hard.

    As far as the implications you make when you say:
    “So you study, study, study, learn all the current stuff, and guess what, before you actually get to use it in a real project, there’s some newer, cooler, better way to think about things. So hurry up, learn it fast, and hope that you master it AND get to apply it before it becomes obsolete.”

    I don’t think technology is moving so fast that we can’t keep up as long as we do so on a regular basis and focus our sights on that which directly relates to our job. Don’t wait until .Net 4.0 hits to read up on dynamic or generic covariance and contravariance. Read about it now. The biggest problem I’ve seen people have is that they expect to wait until everything is out and then they get overwhelmed by the scope of it.

    The problems I solve DO require all this “new crap” because it enables me to write code cleaner, and efficiently so it’s easier to maintain. The better programmers we are the more money the companies we work for make. Isn’t that our job?

  4. LMK

    Wow, just came across this blog post, and feel like chucking in my 2 cents for what it’s worth(even though it’s a couple of years old)…

    I think you need a big caveat on your assertion that “keeping pace is always best”. I would qualify it with “when the benefits outweigh the costs”.

    To give examples: LINQ and jQuery are (to me) obviously vast improvements on previous ways of doing things. This was self-evident within hours of playing with them. It would be hard to find any hard-core VB6 guys who dispute this.

    On the other hand, I have wasted days of my life on WPF I will never get back, and still feel like I’m fumbling around in the dark. Ditto Silverlight. Not only from a technical point of view, but also in terms of their future relevance – are they dead-end technologies? One can now say fairly safely with hindsight that yes they’re definitely dead ends (thankfully). The trick is trying to pick what technologies will survive, when they are new and shiny. MS in particular make this very hard by pushing all their myriad new technologies with extreme gusto and hyperbole.

    I love learning new things that allow me to work better and faster, but some critical thinking (and gambling) is required when choosing where to invest your precious time.

Leave a Reply