With the latest release of Vista from Microsoft and Leopard from Apple, comparisons are inevitable. In fact, there have been dozens and dozens written by folks far more qualified to comment than I. However, I had a conversation at work the other day that gave me opportunity to pause and think. (Always dangerous).
In the year 2001, Microsoft released Windows XP. Apple released OS X 10.0. Since then, Apple has released 10.1, 10.2, 10.3, 10.4, and now 10.5. Each successive release of the Mac OS X has been substantially better than the last – each added new features, refined what was already there, improved user experience, and became more stable and robust. I have found it very difficult to locate specific examples of overall quality degradation between OS X releases. On top of this, Apple has also come up with other stunning products: The iPod. iSight. Airport. Apple TV. iPhone. Apple Retail Stores. Porting entire OS and all shipping hardware to intel architecture, and releasing several new generations of hardware across their entire line of server, pro, and consumer level computers. In short, Apple has been very busy delivering great products in a timely manner.
What has Microsoft done in the last 6 years? Well, I have to be honest here – I am clearly not a fan of the Redmond giant, and thus I may not be as aware of the accomplishments of Microsoft in the last 6 years as I am with Apple (I made the preceding list for Apple off the top of my head – I’m sure there is more that I’ve missed). As for Microsoft – they have released new versions of some of their software packages (Office, SQLServer, etc), and shipped Vista – which ultimately turned out to only get shipped because they removed many of the features that had folks excited from their early roadmap announcements (WinFS, anyone?).
One other item of note is that reports of Vista adoption success have generally been lukewarm at best – with several of the major vendors of windows hardware offering a way to remove vista in favor of XP on new hardware.
I read yesterday that Apple sold more than 2 million copies of OS X 10.5 in the first weekend it was released. This is staggering for a company that took 6 weeks to do the same thing with the previous release of their OS. I don’t know how long it took Microsoft to sell 2 million copies of Vista (though I suspect that it took longer than it took for those 2 million customers to decide they wanted their XP back) – the point here is that with Leopard, Apple customers are very eager to move up to the next OS. With windows, it seems that the adoption rate has been much slower, and caused more heartburn.
On a personal note – I write software for a living which runs on windows and on the mac. The vast majority of my customers are using windows, as you would expect given Microsoft’s overriding market share in the PC space. In addition to writing software, I get the joy of supporting it as well. I don’t get a lot of support calls – maybe 1 a day on average (for an install base of > 1000 customers, that’s pretty good, eh?) More and more frequently the calls are folks complaining that they just upgraded to Vista and now nothing works (not necessarily with my software – everything else they want to do, too). People HATE user account control, and invite me over to their house for dinner (er, no, thanks – you live in New Jersey, I’m in Idaho. Can’t make it), offer the hand of their daughter in marriage (erhm. I’m taken.), and generally refer to me as some sort of deity (no reason to correct them there… ) when I show them where to go in the control panel to shut the darn thing off. As the Vista release approached, I had to slap together a patch for my main app just so it would run on Vista in the first place, and applying it makes the dude with the dark glasses ask "Cancel or Allow". Customers hate that.
So, getting back to my original premise – I had a conversation at work that went something like this:
Co-Worker: "Ever notice how each release of OS X is a lot better than the previous, and that Apple has managed to release 5 iterations in the time it took Microsoft to release 1 that stinks?"
Me: "Yeah. Mythical Man Month, I think."
Now, The Mythical Man Month: Essays in Software Engineering is a book that I read as part of my coursework for my CS degree. It’s a fascinating book all about what not to do when developing software. Quoting from Wikipedia:
"Assigning more programmers to a project running behind schedule will make it even later, due to the time required for the new programmers to learn about the project, as well as the increased communication overhead. When N people have to communicate among themselves (without a hierarchy), as N increases, their output M decreases and can even become negative (i.e. the total work remaining at the end of a day is greater than the total work that had been remaining at the beginning of that day, such as when many bugs are created).
Group Intercommunication Formula: n(n − 1) / 2
Example: 50 developers -> 50(50 − 1) / 2 = 1225 channels of communication."
(I admit freely that I’m mathematically challenged, but that function is exponential)
There are a few other gems that I have taken from this book. The professor that had us read this book was fond of saying: "No matter how many women you assign the task, it will always take 9 months to have a baby." (i.e., some development tasks just take as long as they take, no matter what you do to shorten it)
He also used to say that if a single developer will take 1 year to complete a project, then 2 developers will take 3 years, 3 developers will take 5 years, and > 3 developers will never finish it. I’ve seen this in action – how many projects have been tossed aside and forgotten because a few devs could not agree on some fundamental methodology? (or, sometimes even worse, the team splits, the project forks, then the 2 forks never get finished either because they hit the same barrier)
I don’t profess to know anything at all about the corporate development squads of either Microsoft or Apple. However, I do know that the Cupertino Chargers are churning out a lot higher quality product, and doing so more frequently than the Redmond Rascals. I suspect that Microsoft’s OS development team consists of a whole heck of a lot more developers than Apple, but have no real idea what the numbers may be.
So, in The Mythical Man Month Brooks points out many of the worst mistakes software development teams and managers make – but "The tendency for managers to repeat such errors in project development led Brooks to quip that his book is called "The Bible of Software Engineering" because "everybody reads it but nobody does anything about it!" – Wikipedia Entry, second paragraph
Mr. Brooks – it would appear that some folks are actually doing better than others. Maybe this means that the Cupertino Chargers have not only read your playbook, but have in fact tried some of your suggestions – with fantastic results.