Microsoft’s innovation is leading to confusion.

Metro style applications. This is what Microsoft is trying to get people excited about these days. When I say people, I mean the technical bunch and related demographics and companies. The end users are always after something that works and preferably looks pretty (which has made Apple a tech giant)

Microsoft is actually quite good at learning from its mistakes and adopting. Windows 7 is much better than Vista, and .NET platform is in many ways better than its predecessor: COM, COM+ and all that. However, MS is again getting ready to do the big jump: .NET style application development is rumored to be going away for Metro applications, and Silverlight, which was supposed to be the killer front end for web applications, is going to go to that nice place where all the left and right shifted bits go.

I can remember the same thing happening around 2000, when MS announced .NET. Visual basic and Visual C++ users were quite upset. I mean people who are concerned about their investment, their profits, their business. The 20+ year developer is almost always going to be excited about something new, but that is because they are rarely sitting in the seats which require the occupant of the seat to be concerned about money matters. To them, every new technology is an opportunity to do something cool, which was absolutely not possible with what they had before.

MS usually throws a huge PR budget at its product and technology launches, and switch usually happens. But sometimes it does not. Many corporate IT departments simply skipped Vista, and that was probably a heavy blow to MS’s budget and shares. .NET did the same to established software houses, with products and large scale deployments. It was quite painful for them to consider a switch to .NET, and believe it or not, some of them are just about the complete their switch after almost 10 years. In the last decade, .NET saw some significant jumps of its own, with new versions of frameworks and runtimes, and development tools.

In the context of .NET, firms have managed to keep up with this, but the dissemination of new features is always slower. When you have a working database access layer, you don’t have a lot of motivation to re-write it with a cool new thing you’ve just heard of (like Linq, though it is not new anymore).

MS does not really care about backward compatibility when it comes to announcing new technologies, or updates to existing ones. Java platform still has some missing features, just for the sake of preserving backward compatibility, and even if it makes most Java developers dinosaurs  in the eyes of the excited 20+s mentioned above, it helps a lot in terms of accessing new frameworks of the platform without any major shocks.

MS on the other hand expects you to handle any shock, since the new framework is so much better, that it is worth doing the transition. Really? Some major open source projects does not even compile with Visual Studio.NET 2010. Lots of software houses did not go beyond vs.net 2008, simply because the cost of setting everything up again, configuring the whole development process for new tools etc was too much, with little benefits to offer.

You can’t move your money making business to a new language, to a new set of tools,  to a new development and testing process easily. This is hard, this is expensive, and yet MS is expecting everyone to do that, and with Metro, they are doing it again. Meanwhile, the Java platform, though aging, is still managing to develop new paradigms and frameworks, without asking for major shifts in the underlying infrastructure.

Making money from software is not as easy as everybody wants you to believe. It takes time, it takes maturity. If you keep disrupting that process of maturity, your market will consist of fast burning stars, which will not easily establish a profitable business.

So MS is going to push firms again to make another jump to a new way of creating wonders on its platforms. Will it take off? Who knows. What MS needs to see is, what happened with Vista can happen with their development technologies, and that would harm the whole platform then, since all the cool stuff is going to happen somewhere else. (Think about Flipboard on iPad)

Sure, MS has lots of money and market share to handle these kind of failures, but till when? I think a better balanced technology development and release is required for Microsoft, or they’ll loose a lot of blood.