Microsoft and RIM are more alike than either company would be comfortable to admit.
Both RIM and Microsoft are both converging on a new mobile computing platform that spans handsets, tablets and other devices: 82-inch touchscreens and desktop PCs in Microsoft's case, cars and home entertainment for RIM.
They both have a variety of development frameworks and approaches, including native code and HTML5 plus novel methods of inter-app communications, they're both wooing developers and promising a clean, digital-first interface.
Both are supposed to be launching a new operating system and the devices to run it on in time for Christmas. But here's the big difference - only one of them will.
Microsoft is continuing to under-promise and over-deliver with Windows 8 (no date for Windows Phone 8 yet, but given that team hasn't missed a deadline in two years, I'm expecting October or November for Apollo).
So far the calendar this year has run from Consumer Preview on 29 February to Release Preview at the end of May to RTM the first week in August and general availability - and Surface on sale - in October.
BlackBerry 10 delays
RIM on the other hand has pushed the launch date for BlackBerry 10 back repeatedly. CEO Thorsten Heins is currently talking about January for the touchscreen BlackBerry 10 handset, with a QWERTY model soon after.
What's the reason for the delays? Well, rebuilding your entire operating system and development stack takes time. The teams at RIM are working hard; back in May various folks at RIM told us about people staying late and working weekends and basically running in start-up mode. That's now official, with holidays off the agenda.
But something else that Heins said this week made me worry more about BlackBerry 10 than anything I've heard so far. Heins told CIO magazine that the delay is down to integration issues:
"The delay of BlackBerry 10 is not because we added stuff to it. The delay is because our software groups were actually so successful in coding the various feature components and building blocks that when we put them into the main 'trunk line,' as we call it, when we wanted to build the first main release, we got overwhelmed by integration efforts. I had to make a decision. I could actually have kept the schedule, if I had made a sacrifice on quality and on platform stability."
Why it worries me is that is suggests RIM doesn't have one of the most fundamental issues of creating an operating system under control: how to take individual features and bring them together in a working build.
The build system is at the heart of how Microsoft creates Windows; it's no accident that the developer conference announcing Windows 8 was called BUILD.
There's a new build of Windows almost every day internally, with continuous integration of new code and repeated testing of how the new code affects every other part of the system. The high quality of the Windows 7 and Windows 8 pre-release code is a testament to how well the build and integration system in the Windows team works now. And with Surface, Microsoft is tackling the hardware integration side as well, something it's left to partners in the months between RTM and GA in the past.
Part of that high quality is a response to the debacle of Vista, where integration of subsystems was only one of the problems. The pieces that were developed as Longhorn never came together into a working operating system and what shipped as Vista was effectively a new OS written after the project was restarted partway through.
Many of the changes Steven Sinofsky made to the way the Windows division is structured were to address these issues, taking the agile-like idea of Feature Crews from Office and organising them in product groups for each major component, with a very flat reporting structure.
There's a fascinating description of the problems in the way the Longhorn-era Windows team was organised in I M Wright's Hard Code, a collection of columns originally published internally at Microsoft (I reviewed it here last year), with suggestions on how the division could be reorganised that closely matches Sinofsky's reorg.
A platform transition is a difficult thing to pull off. It's why Steve Ballmer keeps saying he's betting the company on Windows 8. Apple only managed it by bringing back Steve Jobs and adopting the operating system he'd had NeXT building.
RIM is doing something similar by starting with the proven QNX kernel, but it certainly can't afford a Vista: BlackBerry 10 has to be not just good but great to keep the company in the smartphone market.
And that means not just writing great feature code; it means building a world-class integration pipeline that can put the BlackBerry 10 pieces together - and then do it all again in a year's time to keep up with new versions of iOS, Android and Windows Phone.
It's not as sexy as a new screen or a great industrial design or a whizzy new interface, but it's absolutely fundamental and RIM has to get it right. Quickly.