Microsoft may be the world's largest software vendor, but it would also top most outside counts of the number of crimes committed against good coding practices.
Whether it's for shipping software too late (Windows Vista, SQL Server 2005) or too early (Windows ME), releasing products that are too insecure (Outlook Express 5.5 and 6.0, Internet Explorer 5.5) or too locked-down (Vista again), making too few changes (Visual Studio 2003) or too radical of an alteration (Office 2007's ribbon interface), or writing code that is too bloated and complicated (Vista one more time) or too dumbed-down (Bob), Microsoft rarely catches a break from its critics.
Obviously, it's not that Microsoft lacks for talent among its 31,000 developers. But the sheer size of the company's programming workforce, and the number, heft and widespread popularity of its products, conspire to create an environment that can be inconducive to efficient coding.
If you believe executives within Microsoft's server and tools division, though, 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 (for the server and tools business), Microsoft has embraced new development tactics to help its programmers get products to market faster while also writing better code and being more responsive to feedback from users.
What sort of tactics? Things such as gathering feedback from users before embarking on the writing of any code; replacing or 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; and 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 in an interview this month. "We just realized 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."
That transformation, which began four years ago, will culminate on Wednesday, when Microsoft formally launches the 2008 versions of Windows Server, SQL Server and Visual Studio -- each of which was developed using some or all of the new techniques listed above -- at an event in Los Angeles.
Skeptics still abound. For one thing, they point out that despite Microsoft's newfound commitment to user feedback and development flexibility, actually releasing the three new products simultaneously didn't turn out to be possible.