Microsoft tries to steer a better course on app development
- 28 February, 2008 09:44
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.
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 recently delayed until this year's third quarter, one quarter later than previously planned -- although Microsoft did issue what it described as a "feature-complete" CTP release of the database last Wednesday.
"Aligning the launch date was a PR exercise," said Greg DeMichillie, an analyst at Directions on Microsoft in Kirkland, Wash. DeMichillie, who worked as a developer within the STB for a decade, also remains unconvinced that Microsoft is now a paragon of agile development.
"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."
John Andrews, CEO of Evans Data, a market research firm that focuses on development tools, said via e-mail that Web-centric vendors such as Google and Salesforce.com are both much more nimble when it comes to software development, and that even IBM tops Microsoft in agility.
"I believe Microsoft attempts to do agile programming where possible, but the reality of its situation is that the complexity and size of the code base prevents it from truly implementing that coding process," Andrews wrote. "Now it's a matter of making itself semiagile wherever possible."
But Microsoft officials argue that being agile has less to do with shaving some time off of a product release schedule than it does with being able to ship higher-quality software in the first release of a product.
Users who hear that kind of talk "may roll their eyes" because of the shipment delay on SQL Server 2008, acknowledged Ted Kummert, a Microsoft corporate vice president who heads development of the database. "But we are driven by the end quality we feel we have to deliver, which lives on far after the RTM party we have on campus," he said. The CTP release of SQL Server 2008 that became available last week was the sixth issued thus far by Kummert's team.
The SQL Server and Visual Studio development teams have switched over completely to CTPs, which are interim software builds that provide a faster opportunity for feedback from users but aren't supported as extensively by Microsoft as full-fledged beta releases are. The Windows Server group used a combination of betas and CTPs during the development of Windows Server 2008, according to Microsoft officials.
Another key element of Microsoft's development process for enterprise products is its Technology Adoption Programs, which let companies get extensive handholding from the software vendor as they test and then go live with beta or CTP releases in production environments. Microsoft's customer service and support team manage the TAPs, and the company gathers feedback from participants both in the form of informal comments and more quantitative survey-type data, said Rich Kaplan, a vice president in the customer service unit.
Some users who have worked with the prerelease versions of the new products during the latest development cycle said that they noticed an increase in responsiveness and flexibility on the part of Microsoft.
"Almost everything that we asked for while testing SQL Server 2008 is now in the final product," said Umit Nazlica, database systems manager at Garanti Bank, a banking and financial services firm in Istanbul, Turkey, that is taking part in the TAP for the new database. For instance, IT staffers at Garanti requested stronger resource management and governance capabilities, as well as data compression and encryption improvements, Nazlica said.
The bank, which runs 140 instances of Microsoft's database with 11TB of data, also participated in the TAP for the current SQL Server 2005 release. The testing process has been much better this time around, according to Nazlica. "We had a lot more time to evaluate the product," he said. "And we were more experienced about how to work directly with the people at Microsoft."
Microsoft's development teams "truly are listening and really take into account what is said," said Michael Ruminer, an agile development consultant in Boston and a Microsoft Most Valuable Professional with a focus on its Visual Studio Team System software. "They don't take on a hubris in the product development that they know best."
Agile development can't simply be mandated from above by management, Ruminer said. But he added that when he talks to developers at Microsoft, he gets the sense that their managers are taking real action by removing obstacles to agility and needless process requirements. And he said that the company has made significant improvements to the Visual Studio testing suite after outside developers complained about it -- a step that Ruminer saw as evidence of Microsoft's increased responsiveness.
He did note, though, that there is "a lot of discussion about whether Microsoft is actually pushing out CTPs too quickly." That leaves some users and third-party developers feeling overwhelmed, and pressured to try all of the releases, Ruminer said. But to him, the upsides outweigh the potential negatives. "No one is forcing you to install the CTPs," he said.
Microsoft hasn't always been so responsive. For most of its history, the company adhered strictly to a development philosophy called Zero Defect, according to DeMichillie. Although that approach didn't explicitly forbid the company's development teams from using agile techniques, it demanded that they fix bugs before writing any new code, on the theory that fixing something right away would cost less in both time and money than addressing it later in the development process would.
Nor did Microsoft actively seek out advice from users. "Until about three or four years ago," Somasegar said, "our philosophy for the most part was, 'I know what I'm building is right for you. So as soon as I have something I think is ready, let me give it to you. And then I'll wait for your validation that I've done the right thing.'"
"And the feedback that we wanted was, 'Here are some bugs,'" added Bill Laing, general manager of Microsoft's Windows Server division. "It wouldn't change the product."
In addition to adopting the CTP process, the Visual Studio and SQL Server teams have done away with siloed teams of developers, testers and customer support workers wherever possible. Both adopted what Kummert described as a "feature crew" model, with smaller teams made up of five to 12 employees -- typically, a program manager along with a few developers and testers. "That way, a group can really own a particular feature," he said.
Somasegar said that using a feature crew approach, he was able to fast-track the development of some Visual Studio 2008 features related to building Office 2007 applications so they could be released in a service pack update for Visual Studio 2005 at the same time that the new desktop suite was released early last year.
Meanwhile, Microsoft's customer service organization has been enlisted by the STB units to gather and analyze feedback from early users. Kaplan said the findings are then shared with development managers at so-called Red Zone meetings that "absolutely help drive release decisions." The name was chosen, he noted, to emphasize the importance of bugs that need to be fixed before products are ready to ship.
Not everything fits perfectly into the CTP model. Laing said the Windows Server team will continue to rely on formal beta releases, even though they take longer for Microsoft to produce and for users to install. "I think it's a much bigger thing for a tester to roll out a piece of infrastructure like Windows Server," Laing said. "So we release both CTPs and betas, but we offer better support for betas to encourage testers to actually go into production with them."
That process worked well for Continental Airlines Inc. during the development of Windows Server 2008, said Dawn Getteau, a system architect at the Houston-based airline. "The release cycle was just right for Continental," Getteau said. "Even though we deployed the Windows Server 2008 beta in our production environment, it takes time to go through our change management, testing and validation process."
And Microsoft has also set clear limits on how flexible it is willing to get. For instance, despite last week's announcement that the company would release the details of some of its key APIs and communications protocols to rival vendors and open-source developers, Somasegar said he has no plans to accept external contributions to the source code of Microsoft's .Net programming framework.
"We want you to be successful, which is why we'll give you access to the .Net source code," he said. "But I don't know how to take input from a bunch of outsiders, pull it together and ship it in a timely manner as part of a product and then say to customers, 'Hey, please take a bet on running your business or home with this software.'"