Sunday, October 21, 2007

The 'great developers' 10 year life span


Reading Niel Robertson's blog today, I got this great nugget:

Vishal basically said, “We don’t measure it [Java adoption] and we don’t care. We are not putting all of our eggs in the Java basket, that’s just what we’re offering for the time being.” And then the most interesting part, “Languages tend to have 10 year timelines - and then they are always outmoded by a new language. So in 10 years we won’t be talking about Java, we’ll be supporting something else.” If you step back and think about it, on the eve of asking a majority of the SAP customer base to embrace Java with open arms, saying in 10 years SAP won’t care (author’s choice of words) about Java anymore is a pretty interesting and ballsy statement. Again, these are paraphrases meant to capture the spirit of his answer (do not take them as verbatim quotes) - please keep reading for a bit more insight into what I think Vishal meant and why this is an important discussion.
Ever notice how your developers, especially the one's that match up with this 10 year observation (which I believe is dead on), are great from the time they graduate (or pick up the hot new language) until 10 or so years later? Say, early 30's, then the creativity and output drop off?

It's true. I used to think it was due to things like family, kids, burnout, etc. and that's all part of it. But not all of it.

I've been observing the 10 year cycle for awhile as well (we're on this curve now with Ruby on Rails about 2 or so years in), and I've noticed that the guys who are still writing code and kicking ass at it into their late 30's, their 40's and beyond, are the one's that are willing to pick up and learn that new language (or languages).

Sadly, most do not.

This is due, I would bet, to how our brains are wired. Learning a new language when you're young is relatively easy, but trying to learn a new spoken language at 50, no so much. It's just too damn hard for most people once they've mastered English, Chinese, French, etc.

Some can do it, but most can't (or won't). "English is just fine fer me, thank you; besides, it's the language of business, everyone else should learn it anyway!"

Sound like your C, Java or ASP/.NET expert?

yea....

I love that rare developer who loves languages, loves learning them (well) and can use different languages in different situations; or better yet, can integrate multiple languages in ways that single language developers just can't do. They are, after all, just tools.

It's a little like trying to build, say, a workbench out of 2x4's. Imagine doing it with just a hammer (just one language). Not so easy. Throw in a saw, tape measure, planer, sander and a few other tools, and you can do alot with a pile of 2x4's.

Those multiple language guys are hard to find though.

The other guy is the one that can drop a dying language like, C, and pick up the 'new' 10 year language.

THESE are the guys that go on being great developers into their 40's, 50's and beyond.

And, these guys are as hard to find as the multiple language guys. And in many ways more valuable because they have many years of experience that they can draw on to build better mousetraps.

1 comment:

Anonymous said...

Comparing languages to a single tool is a broken analogy. It's more like toolkits. Ruby is like some big automatic power tools that do a lot of the work for you, but quality suffers.

C is like a lovingly cared for set of hand tools. It may take a bit longer, but the finished product will have much better fit and finish.