Thursday, February 7, 2013

What you probably don't know about Microsoft's new direction

and why it's important for every Microsoft Developer to understand it...

Microsoft has finally let the other shoe drop on how their new Office/Cloud/Windows 8 strategy is going to work by releasing the details of how Office 2013/365 will be licensed and sold - and it's not just a shoe it's a hiking boot - landing with a big THUD.

There are some important new ramifications about how the entire thing will work - and it's important for you as a developer to understand how that changes what is still the predominant IT ecosystem on the planet.  Let me apologize now to the Linux, Apple and Android developers - this article is not for you - it's for those of us who have been working on Microsoft Apps for the last 30 years.

Let's start with a little history.  Back in the late 70's and early 80's a revolution happened.  Until that point computers were large, relatively complex beasts, controlled by a corporate entity (because they were too expensive for mere individuals to buy) and had one processor, one set of ram, and one set of hard drives shared by dozens of users through a terminal.  This had advantages and disadvantages.  It was easy to control software and access to that software, and easy to manage since everyone shared the same tools.  Of course you couldn't easily take your work home with you (you might consider that a good or bad thing) and the applications were very expensive and monolithic since it required the developer to have equivalently expensive tools to create the software.  In the late 70's personal computers peeked their way into the American home.  Initially crude and difficult to use - but relatively inexpensive compared to their mainframe counterparts - they created a revolution.  Suddenly you could purchase a system that would let you perform powerful calculations and perform difficult tasks in  your home.  More importantly, through the advent of the business PC you could have the same platform at work as you used at home and carry data back and forth on a portable storage device.  Also importantly - you could purchase a system to develop for this new platform that didn't cost an arm and a leg - which meant that new software and software improvements increased at an exponential rate.

Since that time we added in the ability to access your computer over the internet - and for computers to have access to shared data on the internet.  At the same time - through some serious investment in infrastruture, it became cheaper to get storage, processor time and bandwidth through major services like Windows Azure, Amazon AWS and other huge interconnected networks.  So in a sense we're back where we started from.  Our current devices are very complex and independent, but we're becoming more and more reliant on apps and storage that run in the cloud - simplifying the requirements for what our personal devices need to have.  Suddenly a tablet running a run of the mill low power processor can leverage gigabytes of data, bandwidth and the processing power of thousands of processors.  This means that - down the road - assuming we continue to live in a connected society our applications are going to become more and more like the original mainframe apps of the 70's and 80's.  Instead of buying machines with gigabytes or terabytes of  local storage we're going to be buying a simple inexpensive machine that leverages that cloud power.   Our operating systems need to be less complex because the heavy lifting isn't handled at the desktop any more, or even at the local server level.

With Windows 8 and Office 365 subscription services Microsoft has moved from the "software as a license you buy model" (which hasn't been eliminated yet - just deemphasized) to the "software  you subscribe to and get as needed" model.  An individual can now - for $100/year - buy any kind of device they want - phone, tablet, pc, laptop or something not even invented  yet, install office software on up to 5 devices they own, use a simpler version of that software on the web, get 27gb of cloud document storage to use or share with whomever they want (plus each of the other 4 users gets 7 gb of storage for a total of 55GB of available shareable storage for $100/year).  They get an hour of free Skype talking and sharing a month.  They get the latest version of office, allowing frequent updates to add functionality without the expense of giant new releases.  They get streaming of the software to a PC that isn't even licensed for Office to edit a document assuming the target is running Windows 7 or 8.  On the corporate side the same thing can be acquired (with slight variations in capability) for $240/year/user for enterprise users or $150/year/user for small businesses - and on the corporate side they add in sophisticated sharepoint capabilities and active directory management (doing away with the need for an active directory server, or minimizing it's need to being just a local extension of the cloud).  For $72/month they can have the same thing, without the locally installed office licenses.  In addition, with either a corporate or Live account your settings, files, and preferences follow you from machine to machine - even across platforms.  By the end of this year Gartner Group estimates that the PREDOMINANT way that websites will be accessed is via a phone or tablet.  It will outstrip desktop and laptop access - in 2013.  That's this year folks.

So what does that mean for you as a developer?  It means that Microsoft means to make cloud storage and apps it's end game - not just an add-on, and the day of the local server - and even the super powerful end user system are slowly - but surely - ending.  And if you think - well we'll just move to another platform - think again.  The largest competing platforms for end-user computing are moving in the same direction.  Apple (of course) saw this coming years ago and has quietly started phasing out desktop and laptop machines in favor of tablets and other simpler less expensive devices.  Google's play in the Android market focuses strictly on low powered machines that leverage the cloud.  Linux for the desktop?  Nice OS but used only by technogeeks so far. In the next 2-4 years you're going to see a huge shift away from expensive powerful, complex to manage servers and systems in your office or home and towards low priced, low powered systems that leverage the cloud.  And once they go cloud they won't be going back.  Don't believe me?  The only way to deploy a standalone Access application in Access 2013 is to deploy it to Azure and Sharepoint.

So what can you do as a developer?  For one - learn a cloud based system and leverage it's power - now.  I don't care if it's AWS, Azure, SharePoint or some other platform - but you should start to figure out how they work, how to make your apps operate efficiently and actively over a not-always-reliable internet connection, and how to make them scale so that you don't have to sell additional licenses to get additional power out of them.  It also means designing systems - whether they be apps, websites, or whatever - to adapt to a huge variety of interfaces and screen sizes - everything from hand-held phones to 50" 3d High Definition living room monstrosities.  They need to adapt to all sorts of interaction interfaces - the old fashioned keyboard, the mouse, the touchpad, the touchscreen, and the "gesture based" interfaces like the Kinect.  It means that data becomes a mix of BYOD storage (Bring Your Own Data) and corporate cloud storage - and how will you manage that and protect the privacy and security of data when it's easy to copy things from corporate sources into a user's private data store in the cloud.

It also means you should start to explore web and cloud based development tools. That quad core dev machine on your desk may well go away someday - and you need to be ready to use some of the new and sophisticated web based tools for software development in project management, compilation, version control, etc.  The distributed nature of today's collaborations will make that a must.

What happens if you don't?  Well how long did terminal based apps last once the PC was out?  How long did non-graphical DOS based apps after Windows came out?  How long did non-web based apps last after the internet took over?  You have some time - this isn't happening overnight.  But it IS happening and if you don't adapt there will be a day when you wake up and find your app or skills irrelevant.  And that day is approaching.

PS - if you're interested in migrating to the cloud and leveraging Office 365 OS-Cubed is a cloud expert - we can help you with migration, support and leveraging your existing infrastructure while using the cloud efficiently.