Coding Horror

programming and human factors

New Year's Resolutions -- for Microsoft

For better or worse, I've been a Microsoft fan since Windows 3.1. Microsoft is far from perfect, but the alternatives were always so much worse. Can you imagine a dystopian future where we're all running IBM's OS/2 2004 and Lotus Notes Express? Brr. I get a chill just thinking about it. The other contenders have similar glaring flaws. Oracle*? Intel? Sun? Apple? Thanks, but no thanks. To quote Winston Churchill:

Many forms of Government have been tried, and will be tried in this world of sin and woe. No one pretends that democracy is perfect or all-wise. Indeed, it has been said that democracy is the worst form of government except all those other forms that have been tried from time to time.

Microsoft succeeds not because they're an evil monopoly, but because they release decent products that are relatively easy to use. Most of the time.

Personally, I think Microsoft's biggest enemy isn't Google, Linux, Yahoo, or the relegation of PCs to a niche. Microsoft's biggest enemy is Microsoft. The company has grown so large that it can't turn the massive battleship fast enough to respond to competitive pressures. The BusinessWeek article Troubling Exits at Microsoft outlines the scale problems Microsoft faces:

Some workers express frustration that Microsoft is so busy protecting its PC-based businesses that it comes up short when competing on the Web. Take the customer relationship management (CRM) market -- software that companies use to track sales and customer service activities. Microsoft targeted it 2 1/2 years ago with a traditional software package, Microsoft CRM. Today roughly 4,000 companies run the software for nearly 100,000 staff. Not bad, but Microsoft hasn't been nearly as successful as Salesforce.com Inc., a trailblazer of Web-based CRM software, with 308,000 users at 17,000 companies.

The secret to Salesforce.com's success: the speed with which it can update its software. Microsoft last updated its original CRM software in January, 2004, with plans for a new version in first quarter, 2006. Meanwhile, Salesforce is constantly fixing bugs and adds features without interruption to the customer or added expense. All customers need to do is open a Web browser to run the program. Microsoft CRM boss Brad Wilson argues that business software is complex and best sold as a package that customers run on their own computers. "This is really about business process where you've got multiple steps," Wilson says. "It is a much more extensive thing that often requires a lot of people, a lot of time, and a lot of resources."

Perhaps most tellingly, it's been five years since the release of Windows XP. That's the longest gap between Windows releases ever.

There's also internal criticism at the Mini-Microsoft blog, which if anything, is evidence that corrective forces are already at work within Microsoft. Microsoft, the company everyone loves to hate, has adopted transparency and blogging aggressively. So aggressively, in fact, you'd almost mistake them for a Web 2.0 company. For example, Scott Koon says the product manager for ASP.NET is the best thing going for it. I agree. I can point to a dozen Microsoft blogs off the top of my head that are absolutely amazing-- incredibly smart, articulate people any talented developer would be privileged to work with.

But blogging and transparency alone won't be enough. What else can Microsoft do to shed the bureaucracy problem? If you were Microsoft, what would your new year's resolutions be? Here are a few of my suggestions:

  • For Windows products, release betas earlier and to larger audiences. Incorporate substantial user feedback before the product ships. Office 12 and Visual Studio 2005 are good examples of how to do this-- but make sure there's ample time to actually implement the suggestions and not just defer all the suggestions to some unspecified future release.
  • For web-based solutions, do away with formal releases entirely and treat them as works in progress, ala Atlas.
  • Stop being shy about releasing service packs. Why does Visual Studio 2003 have no service packs after nearly 3 years? Because it's bug free? Yeah.
  • Don't let eeyore design your products.
    .. if you reward people for demonstrating that they excel at process excellence then, well, hell, forget if you actually ship features. Look at all these pretty, beguiling graphs about promising features! And fetch me a crop of dithering middle managers! If you openly reward and promote people for killing work by bemoaning the risk and the testing cost and localization impact of each feature and interrogating a DCR as if it were Dan Brown shackled in-front of a wild-eyed, hot-poker wielding Pope, well, everyone is going to grab pitchforks and jump on that "No can do! No can ship!" bandwagon.

    It makes me think of how many feature meetings I've had and what a small percent of those features have actually ever shipped. Not that every feature is a good idea, but it's damn near wake-worthy sometimes for a feature to actually get out into shipping bits. Que Eeyore: "Oh no. Now we have to support it. I suppose a hotfix request will come in any moment now..."

Most of these suggestions are ways to speed up the software development cycle at Microsoft. The hallmark of Web 2.0 companies is that they evolve faster, as ex-Microsoft employee Mark Lucovsky, who now works for Google, so famously pointed out:

When an Amazon engineer fixes a minor defect, makes something faster or better, makes an API more functional and complete, how do they "ship" that software to me? What is the lag time between the engineer completing the work, and the software reaching its intended customers? A good friend of mine investigated a performance problem one morning, he saw an obvious defect and fixed it. His code was trivial, it was tested during the day, and rolled out that evening. By the next morning millions of users had benefited from his work. Not a single customer had to download a bag of bits, answer any silly questions, prove that they are not software thieves, reboot their computers, etc. The software was shipped to them, and they didn't have to lift a finger. Now that's what I call shipping software.

I think Microsoft is doing the right things-- but they need to do them a lot faster. Company size and red tape be damned. Otherwise that much-maligned dinosaur advertising campaign for Microsoft Office is going to seem awfully prophetic in retrospect.

* What's the difference between God and Larry Ellison?

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Overflow and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: https://infosec.exchange/@codinghorror