Back in the day, Joel wrote an infamous post asserting that “software doesn’t rot” over time.
I believe Joel was addressing the tendency of new programmers on a project to avoid learning the old codebase and write a new one instead, at great cost in terms of time and money.
But let’s discuss the more interesting topic of whether software can actually rot.
I would say that he was correct that it doesn’t rot in a very narrow sense, namely a program written for a single version of Windows.
But in the big picture, he was completely wrong. Even Windows software requires re-writes for “Certified for Windows” assurance for new shrink-wrapped versions to be shelved in US chain stores. (Stores were trying to reduce the rate of returns and customer support.)
And how’s Silverlight, discontinued in 2012, working out for developers? 🙂
When it comes to web software, total re-writes have been required for:
- Apple “Retina” resolutions
- REST APIs
- XML and JSON output
- multiple web icon resolutions
Additionally, Y2K often required software changes, as will Y2038.
In Joel’s article Fire And Motion he makes an interesting observation that changes can also be used to keep developers off balance. It’s a very effective technique in the software world where buyers chase versio numbers.