To drive the issue home I came up with The 4 Fundamental Agents of Change:
- Moores Law
Affordable computing power increases exponetially over time.
- Evolving Operating Systems
New operating systems take full advantage of improved and affordable computing power.
- Powerful Development Tools
New development tools support creating applications that take advantage of faster hardware running more powerful operating systems. Support for old systems, tools, and practices disappears.
- Increased Expectations
User capabilities and expectations rise accordingly.
These powerful forces are inescapable, and have been influencing the development of Software products from the beginning.
Periodically, they have created paradigm shifts, mandating changes in products and practices.
This presentation was about the rewrite of a product originally developed for the "HP Calculator", yes that's right, the "HP Calculator", here's a picture of the original product.
One obvious point from the brief history outlined above was that this product, despite it apparent lack effort to keep it updated and current, had been updated several times as a direct response to technology changes. Here is a graphic timeline taken from the presentation, at the bottom are the product changes caused by the technology changes described directly above them.
The last entry ET.NET in 2006 is the rewrite project. What were the technology changes that created the pressure to once again rewrite this product? There were several, first and foremost the action Microsoft took to put VB6 out to pasture. The introduction of the .NET platform sealed this fate as the only path to .NET was through VB.NET which wasn't VB6 by any stretch and essentially required a re-write anyway. If you have a meaningful VB6 application run it through the migration wizard and you'll see what I mean. And finally it was the direction the industry was taking to support .NET, third party vendors, partners, were all moving to .NET.