2013-09-23

I really ought to give up the field and become a maintenance engineer! This thought keeps rolling in my head, as once again I find myself playing the role of the underemployed programmer. Yes, there are jobs to do, but it appears that I passed my best before mark, and so I am once more underemployed. I work, I occasionally get paid, and I struggle to apply what 26+ years of experience has taught me, because no one seems to really care what 26+ years can teach a person!

Enough whining. Onto a serious thought or two about experience, coding, and work.

There is some truth to the idea that you don't have to have a lot of experience to work in the programming field. It is about being creative, more than being technical, and the best minds are a combination of those things that tends to lean toward creative. But, what is often lost in this view, correct to some extent though it is, is the fundamental truth about coding. Experience doesn't make a better coder, but it does make a better coder better. Just as a mediocre coder will improve with experience, so too does the talented one...and that is worth something. The field is about lifelong learning, and people in it tend to age well. What you lose in raw energy you more than make up for in stamina and awareness.

Experience is how a project that could cost 30 grand ends up costing 15, or how 10 months of work gets done in 5. And experience is what turns work into productive opportunity. Yes, younger coders tend to pile on hours, but seasoned coders are the ones who pile on value return.

None of that is a shot at the inexperienced coder, either. They are the experienced coders of the future.

What is sad though is that the work out there is largely coming in two categories these days: grunt labour and fantasy fishing, as I like to call them. Grunt labour is where the heavy lifting gets done, and it isn't sexy. It's the kind of products I spent a lifetime delivering. Fantasy fishing is where the pretty iPhone app of the week comes from, where the quality of the code is less important than its positioning. Fantasy fishing is the kind of work that is sexy, and is fun. Sadly, very little falls in the middle, and there is almost no real innovation in business process tooling.

It's a shame that so many businesses today are so focused on legacy maintenance that they forget the future, and sad that investments go to the fantasy fishing realm before they ever even look at the grunt marketplace. And it's a shame so many programmers with so much experience are so chronically underemployed, when the experience and knowledge they possess could lead to the kind of lasting productive innovation the economy so desperately needs.