In a recent post Eric Roch touched on the interesting subject of programmer obsolescence. I agree with Eric – I don’t believe that programmers are looking down the barrel of ‘forced obsolescence’. But I do believe that many will become obsolete – by choosing to ignore the seismic shifts in the software development space.
Since I graduated from university not a lot has changed in the software development space. The science of software engineering is pretty much the same as it’s always been. Sure we’ve had a few significant blips (e.g. web based and distributed applications) but even in those cases we had sound engineering principles to fall back on – we just had to apply those age old principles to solve new problems.
Many programmers will scoff at this and say “what do you mean nothing has changed? New languages, SDK’s, tools, technologies and libraries are constantly released and we have to keep up with it all.”
I think they’re missing the point. The process of cutting code has changed – drastically and for the better. We’ve now got excellent tools to help us write code (IDEs, code generators, model driven tools etc). But what hasn’t changed a lot is the science of software engineering.
But software engineering is changing and programmers need to change with it. The seismic shift I’m talking about is:
The move from applications to platforms.
Most programmers today write applications. They’ve done it for years and they’re comfortable with it. Over the years the tools they use have changed but the fundamental software engineering principles haven’t. But that’s about to change.
Programmers will increasingly have to deal with platforms – either developing them or plugging into them. The software engineering principles in this scenario are radically different and you can’t rely on the same principles that served you so well when developing closed, stand alone applications. Extensibility and interoperability is where the world is heading.
The programmers that understand this shift will do fine. Those that don’t will become obsolete.