Thursday, December 2, 2010

Never unnecessarily flatten the adoption curve

Yes, I'm afraid I'm dinging Microsoft again for the ASP "Classic" -> ASP.NET thing again. To their credit, when ASP.NET version 1 was first released, Microsoft tried to nudge developers past the pain of upgrading by providing a free migration tool. Which was smart. But that tool won't do me much good, seeing how the language is up to version 4.0. So I spent a bit of time today looking for the 2010 edition of that tool. At first I thought that perhaps my Google-fu was not strong today. Now I'm pretty sure that's not the case. (Although--and I didn't think of this until just now--MS is pretty notorious for changing names of things. I'll take another crack at it tomorrow.)

Yet if I'm proven wrong, I still think that the point largely stands. See, it's not the 1.0 crowd you need to worry about migrating so much as the 2.0 and 1.0 crowd. Reason being, 1.0 is wired more adventurously. Everyone else is waiting to see whether the pioneers survive their first winter (or two) and--more importantly, whether the risk paid off. During the wait, legacy code will continue to pile up, and the new language will undergo even more changes that can make converting even more painful.

Unlike learning curves (which ideally should be shallow for most of their length), adoption curves should be steep: If elapsed time is the X-axis and number of adopters is the Y-axis, it's more profitable to front-load that curve with a high number and worry about the stragglers later. In a disruptive, innovative industries, this is the pipe dream of entrepreneurs and venture capitalists. This is the sort of thing that creates industry standards--without knock-down-drag-out trench wars like that of VHS and BetaMax.

And, in my opinion--not necessarily 100% objective, mind you--Microsoft blew it. Whoever made the decision not to migrate the migration tool to the next few iterations of ASP.NET deserves a bonking on the noggin with a copy of Crossing the Chasm. A decision which may have more than a little to do with the fact that Microsofts web server now supports the open source PHP programming language. Only think how unthinkable that would have been to the incarnation of Microsoft that released .NET 1.0! For all I know, I could be making a classic post hoc, ergo propter hoc error here, but boy-oh-boy is it a tempting inference to make.