Mitosis – one of the many forms of biological cellular division.
In my first post I said I had 3, possibly 4 new separate companies that Microsoft must become to survive. Let’s take a look at what I came up with for the first two.
First, spin off the desktop operating system into a separate organization.
Yep, I said it – let the desktop be its own group. Why do you ask, would I let the desktop folks fly on their own?
Let’s look at Microsofts’ products, the market, and the changes coming. Microsofts’ core product is the Windows kernel – the core code that really runs everything. It is basically the same across the desktop and server operating systems. By nature, both are focused on Intel (or compatible) processors, a standardized open driver and hardware architecture with standardized API’s so close that many drivers are the same from server to desktop for a defined piece of hardware.
Unfortunately, the device, and even the desktop environment is changing. And to a large extent, away from an Intel compatible CPU core. While there will always be “power users”, realistically, the average business person doesn’t need all the processing resources that they once did. Additionally, the mobile and device processors are now approaching speeds where desktops were when Windows 7 was first released.
Unfortunately, the move away from Intel compatibility in mobile devices has left Microsoft (and Intel) in a bit of a bind. In the Linux/Android world, to build a new kernel on a processor only requires an appropriate compiler – this is validated by all the various Linux derivatives for ARM and MIPS processors. Not to mention that the licensing for this is easy, and CHEAP!
Additionally, small, embedded processing devices do not lend itself to an open driver/architecture environment, further complicating development for this industry segment. Again, Microsoft is trying to innovate through acquisition with the purchase of Nokia’s mobile business.
Microsoft suffers here because they do have limited resources, and since the core kernel development is the same for desktop and server, they can’t assign enough resources to the task and maintain compatibility across all development platforms. It becomes a limitation of size – smaller companies can be more flexible and reactive. By abandoning the weight of all the rest of the company, an organization focused on the desktop or end user environment can develop to new processors and architectures, and maybe even more importantly, ease the licensing and legal portions of using the product(s).
Second – Make the server OS a standalone organization
Well, without belaboring the previous comments, let‘s face it. Do I really need themes, Aero or DirectX on a server?
But we can even take that a bit further. The I/O requirements for a server are completely different from an end user device. The fact that I can load a desktop version of Windows on server hardware and all the cheap servers out there that are nothing more than a desktop with Server software loaded speaks mountains of the overhead from a kernel, driver and I/O standpoint. This would allow the Server development to really tighten up who, what, and how the product is deployed, particularly with 3rd party application developers, memory utilization, and how the system works in a virtualized environment.
By leaving the desktop behind, the server kernel can be substantially more aggressive in I/O, memory and threading processes. The developers can focus on lower level code, thereby increasing capacity, improving how services and core hardware are monitored and executed. Add on top of that the less code there is, the less there is to secure, it only makes sense. This, like in the desktop group, allows for smaller, more responsive development in reaction to technology improvements.
In my forthcoming 3rd and last post on the ultimate demise of Microsoft – either in a positive or negative depending on your perspective, I’ll go through the last separate company, and an optional company that no one ever really thinks about when talking about Microsoft.