Thursday, November 13, 2014

Microsoft makes .Net Open Source - Why?

Microsoft has finally made the dot net platform open source, as announced in the post here.
Kudos to Microsoft for finally acknowledging the wisdom of collaboration over isolated existence, especially in a connected world.

This is highly significant for the tech industry as a whole and the IT software developers that use the .Net platform. I would like to analyze this and see what might be the reason behind the move and where is Microsoft trying to head.

We all know from recent changes at Microsoft that their future seems to be in the cloud. This move clearly is one of the steps in that direction. Lets analyze what it means for Microsoft to bet its future on cloud and how it is going to impact them.

The Desktop King

Microsoft was the greatest company in the 1990s, the era of the PC revolution. It played a significant role in bringing PC to every desk and make everyone embrace computing as part of their lives. For most of us, windows was the only way we could imagine working with a computer and it truly made things easy and accessible.
Another significant contribution of Microsoft was to make PC a part of our everyday work life. Applications like Word, Excel and Outlook improved productivity significantly and we were all hooked. The developers of 90s were all working to develop applications that could run on the Windows machine. The Windows server systems like Windows NT helped create a network of employees and help them collaborate. The enterprise applications seemed to be exclusively based on windows network and the windows tools like Visual Studio and Visual Basic were the most powerful tools in developer toolkit.

The Windows network and collaboration it enabled was kind of a per-cursor to the internet era, but Microsoft failed to recognize it in time and they have still not recovered from the blunder !!

Internet Comes Calling

Around 2000, things started to change and the internet began to slowly take over. Companies like Yahoo, Excite ! and AOL emerged followed of course by Google.
The internet started to change the rules of engagement. Computer users suddenly realized that there can more use cases than creating word documents or playing games. Most of the companies that came up during that time crashed, but they changed the world forever. Most people started using their windows machine purely to access their browser and log on to the world. The multitude of windows applications no longer seemed to be of any interest.
The enterprise world driven by the management enamored by the power of the browser and ability to access applications from anywhere also seemed to be migrating towards browser based applications.

Microsoft started loosing their developers as they were no longer interested in developing applications for the windows platform. They had all migrated to the greener pastures of server side programming. Platforms like Java and J2EE started to gain significance.  The open source Linux servers seemed ideally suited to run the browser based applications, and they were cheaper (FREE) than windows !!

Birth of .Net Platform

In the early 2000, Microsoft realized the shift that was happening and reacted. They had to provide tools to stay relevant in the internet world. The .Net platform was born around 2002 and Microsoft capitalized on their existing advantage of the Windows server based network in the work environments.
Enterprises who had already invested heavily on the windows platform and its tool were all too willing to embrace the .Net platform and feeling of familiarity that it provided. You could use multiple applications over the browser without needing to login multiple times. Your windows ID and password would log you in automatically. The powerful Microsoft marketing engine also spread stories invoking fear of the open source and lack of support. Most CTOs bought it.
The .Net platform on its own was hardly innovative and seemed to borrow ideas from J2EE. This was another blunder that Microsoft committed. In their bid to catch up, they resorted to copying (along with the design flaws) instead of innovating. This would again bite them hard in years to come !!

March of the Internet and Emergence of Mobile

While Microsoft was happy making money out of their locked-in enterprise customers, the internet world was quietly changing the rules of the game. 
Windows had lost all its charms for its users and the browser was the centerpiece of PC experience. Google seemed to have become the window of the world and all the power of the internet was accessible through a simple search.
Apple then changed the world by introducing the iPhone. With Google bringing out Android a little later, the world moved to mobile for good.
For the young generation, smartphones and internet was all that they needed to accomplish whatever they wanted. Windows was an insignificant little piece of software for which you had to pay a bomb !!

Emergence of Software As A Service (SAAS) and BYOD

Around early 2000, a company called salesforce.com started to offer enterprise applications over the internet. The enterprise employees who had already got used to consuming services over the browser did not seem to mind using applications that were served from across the internet instead of their local servers. The stranglehold of the Windows network was about to be broken.
The technology world progressed quite fast in the first decade of the 21st century and internet and mobile usage boomed. 
Mobile especially is changing the way employees interact with their organization's network as more often than not the mobile is personal and not provided by the employer. The bring your own device culture is a reality on which the organizations want to ride and as it offers significant productivity boost.
The failure of Microsoft to gain a foothold in Mobile world has finally taken away the reliance of organizations on windows network and its single sign-on advantage, which had so long kept the enterprises in Microsoft's hold.
Microsoft had to react or perish !!

The Cloud

The cloud is nothing but a collection of servers (appearing as a single run-time environment) accessible over the internet. From the era of 1990s when most enterprises had their own IT department taking care of hardware we have come a long way today where the hardware is mostly invisible and accessed over the internet. 
Modern software applications are accessible via the browser and mobile, both of which have very low Microsoft presence or significance. 
The Microsoft marketing muscle is facing a loosing battle over scaremongering as the modern CTO is less and less fearful of open source and not really bothered about the windows single sign-on. They are demanding innovation, speed of execution and value for money !!

Innovation in the Open Source world

The .Net platform has been struggling to keep pace with the innovations happening in the technology world due to its tight bonding with Microsoft. It can only run as fast as the rest of Microsoft.
Open source world has no such bondage. From web development platform like Rails to highly evolved server side development environment around Erlang, Python and Scala, the advances have been significant.
Microsoft was charging a premium for a tool that was outdated and much advanced alternatives were available for free !! It was about time that Microsoft stopped relying on marketing and focused back on research !!
Making .Net open source is a move in this direction. Taking valuable resources away from low value thing to higher value things like cloud services.

Future of Microsoft

Now that Microsoft has decided to come out of its comfort zone of enterprise applications and focus on the cloud, it is important to figure out what their strategy for the cloud is.
A hint is provided by the article here
In the post-PC world, Microsoft has to hold on to enterprise and their 3 key strategies for the enterprise seem to be 
  • Have best-in-class first-party SaaS applications
  • Operate a global public cloud that supports a broad range of third parties
  • Deliver hybrid cloud capabilities that provide multicloud mobility
Of the 3, i feel it is important for Microsoft to be leader in the first. They have significant advantages here, but i hope they innovate.
Take Office 365 for example. This is an attempt to take the office on the cloud and deliver it via the web. Just migrating windows to the web will not work, since the web has changed the dynamics of collaboration. What was a breakthrough in 90s is no longer a great tool. Microsoft has to be prepared to look at their tools afresh.
They will be competing more and more with Google now and Google has a significant lead in the web. Microsoft still has a chance here since Google has still not cracked the collaboration tools piece except for emails. Their google waves project could have been a game changer, but it was shelved. Do not be surprised if you see a major announcement in this regard in the near future from Google.

Microsoft has to innovate now before they miss the bus again, this time, it could be the last time !!

Future of .Net

I see .Net evolving into a platform to be used for accessing and working with the Microsoft cloud services like Office 365.
Don't be surprised to see announcements like Rails on .Net and Python (Django) for .Net. Microsoft will be relying on the open source community to innovate here and make it easy for developers to develop for the Azure cloud services.
Microsoft will attempt to go back to the 1990s when all developers were developing for windows machines. This time they hope it will be for Azure services.
But this strategy will only work if Microsoft creates compelling services that end users would like to use. They will also have to develop skills of collaborating with other companies who are leaders in cloud services. This will require a more open Microsoft, ready to take orders from others !!. We will see how that plays out.
Their lack of success in mobile world is a major handicap. They are likely to keep trying to get a foot hold in the mobile market, but it seems unlikely unless they come up with an innovation that is a pardigm shift.
Meanwhile, one of their option is to keep pushing Xamarin and hope that it gains traction among developers and then buy it out. Through Xamarin platform they can then push Azure cloud services and hope to overcome the mobility challenge.

Conclusion

Challenging days lie ahead for Microsoft. They have done well by acknowledging the challenge and attempting to take it on. They will have to mobilize their resources to start thinking beyond the traditional OS and develop for the web OS. They have money and credibility to attract best talent. Lets hope they use their resources for creating innovative solutions.

No comments: