August 8, 2011

...Learn TDD with Codemanship

Can Old Codgers Still Code?

Kent Beck recently posted an answer on Quora to the following question:

Do people lose interest in programming as they age?
Some younger programmers expect that older programmers are slower, make more mistakes, and would rather be doing something else such as managing programmers. Are they right to think so?

Kent, being an "older programmer", responded:

I'm 50, which seems like aging to me.

The question as stated is incorrect. I do not make more errors now than I used to, I make different errors. My memory is much worse than it used to be & my cognition is also a step slower (in part, I suspect, because of my memory deterioration). However, I make fewer errors of arrogance and fewer errors because of panic. After 35 years of programming and raising 5 children, it's hard to rattle me.

Being a somewhat older programmer myself, I feel this question applies to people of my generation, too.

First, let's address the issue of mistakes. The economics of software mistakes is well-understood. An error in software can cost as much to fix as it would cost to avoid 100 similar mistakes, if left undiscovered long enough. We've learned from decades of experience and a mountain of project data that teams that make less mistakes tend to deliver software faster. And in that sense, I increasingly view my job not so much as "delivering working code" as "avoiding costly mistakes in working code".

Avoiding mistakes takes discipline, care and a good deal of patience, as Kent alludes to. It may feel like you're in "the zone" of maximum productivity, and the code is just flowing out of you, but that feeling is usually an illusion. More likely what's flowing out of you is buggy, unreadable code that will eat up the bulk of your productive time later. Or someone else's productive time.

Our impression of the productivity of younger programmers may well be skewed when we don't consider the quality and the overall cost of the end product, which, sadly, most organisations don't.

For sure, when I was in my mid-twenties, I could bash out code at an alarming rate of knots. But, looking back, what I needed was to slow down and focus on creating simpler, more finely-crafted code that satisfied the customer's needs better.

Perhaps, if you'll excuse the analogy, older programmers are like older lovers in that respect.

The other thing I wanted to address was the perception of older programmers as "career failures". This makes my blood boil, to be frank. It's true that many of the people I worked with in my twenties are now in "senior roles", that is to say, they don't program any more. And one or two have made a good-natured jibe at me because I still "do the coding", as if that was like still being the tea boy after 20 years.

The notion that there's anything junior about writing software - especially compared to managing projects or being an IT director - is ill-judged to say the least. Writing software is hard. Very hard. I have a huge library of books to prove it, and all about programming. I've read them all, practiced the techniques, and still I see myself as being a long, long way from mastering this discipline. Indeed, I'm not convinced that anyone has mastered programming. Not yet.

And if we're badgered into moving away from programming in our late thirties or early forties because of some misguided belief that old codgers can't code, I suspect we may never see any true masters of software development.

As far as I'm concerned, people like Kent Beck are considerably more senior than your average CTO of a multinational corporation. He may not have the key to the executive washroom, but then neither did Boulez, or Penrose or Gilliam. All true greats in their fields, and I don't recall anyone suggesting to them that they might be "too over the hill" to continue doing what they do best. I don't doubt that there are executives in record companies who think they're higher up the pecking order in classical music than Boulez, and that the dean of Penrose's college thinks he's Penrose's boss, or that the bigwigs at the studios looked down on directors like Gilliam, asking "if he's so good, how come he's not in charge of international sales yet?" And they would be mistaken, of course. The reason they're not in these "senior roles" is because they really, really love what they do and they're really, really good at it.

It strikes me that if you can still be doing what you really, really love to do and be really really, really good at it in your fifites, sixties and beyond then you are really, really successful.

Now, if you'll excuse me, it's time for my bed bath. Nurse!

Posted 9 years, 6 months ago on August 8, 2011