Microsoft is not only the world's largest software vendor; many pundits would put it top of their list for crimes against good coding practice.
Microsoft regularly comes under fire – whether for shipping software too late (Windows Vista, SQL Server 2005) or too early (Windows ME), or for releasing products that are too insecure (Outlook Express 5.5 and 6.0, Internet Explorer 5.5) or too locked-down (Vista again).
The software giant rarely gets a break from its critics – who complain when it makes too few changes (Visual Studio 2003) or too radical of an alteration (Office 2007's ribbon interface), or when it writes code that is too bloated and complicated (Vista one more time) or too dumbed-down (Bob).
Obviously, it's not that Microsoft lacks for talent among its 31,000 developers. But the sheer size of the workforce, and the number, heft and widespread popularity of its products conspire to create an environment that's just not conducive to efficient coding.
However, if you believe executives within Microsoft's server and tools division the software vendor has become a much more agile developer over the past few years. Led by that unit (which is still known internally by its old acronym STB or server and tools business) Microsoft has embraced new development tactics.
What sort of tactics? Well, things such as gathering feedback from users before embarking on the writing of any code. Or replacing and augmenting the conventional model of alpha and beta releases with its Community Technology Preview (CTP) program, which uses a "release early, release often" approach to testing software in the field. Or creating independent "feature crews" that can quickly build specific features and communicate directly with users about them.
"I don't know that there was an 'Aha!' moment," Soma Somasegar, senior vice president in charge of Microsoft's development tools, said earlier this month. "We just realised that we're building products for customers, not just for technology's sake. So the sooner we could engage with our customers, the better we could make it from an architecture, feature, quality and scalability perspective – all of the things that customers care about."
First fruits of the policy
That transformation, which began four years ago, culminated this week, when Microsoft formally launched the 2008 versions of Windows Server, SQL Server and Visual Studio. Each of these was developed using some or all of the new techniques listed above.
Sceptics abound. For one thing, despite its new commitment to user feedback and development flexibility, Microsoft couldn't actually manage to release the three new products simultaneously.
Visual Studio 2008 has been available since November, while Windows Server 2008 was released to manufacturing earlier this month. Meanwhile, RTM on SQL Server 2008 was delayed by three months to the third quarter of 2008 – although Microsoft did issue a "feature-complete" CTP release of the database last week.
"Aligning the launch date was a PR exercise," said Greg DeMichillie, an analyst at Directions on Microsoft. DeMichillie, who worked as a developer within the STB for a decade, remains unconvinced that Microsoft has turned over a new leaf. "Clearly, CTPs and the other changes deliver a benefit," he said. "Users get earlier glimpses of products, and Microsoft gets feedback earlier. But the jury is still out on whether Microsoft is going to ship software more quickly and reliably as a result."