inset
'Agile Innovation' to Speed Development
Aug. 28, 2006

Steve Ballmer, Microsoft's CEO, is hinting that Microsoft will reposition its future development strategy as "agile innovation," compared with the current "integrated innovation," in an effort to speed up release cycles and add new Web-based services to its stable of traditional software products. Speaking at Microsoft's Financial Analyst Meeting in July 2006, Ballmer indicated that the company needs to be more agile and predictable in delivering products and services. But loosening the level of integration in Windows and other products will not be easy, and will require changes to Microsoft's development processes and culture.

Integrated Innovation

Integrated innovation was part of Microsoft's core development philosophy in the early part of this decade and was often touted by Bill Gates when he was chief software architect, as well as other Microsoft executives, as a key advantage Microsoft has over open-source projects such as Linux. The term means that Microsoft products do more than merely use or run on other Microsoft's products—they are designed to exploit each other's key features and technologies. At its simplest, integrated innovation should mean that products work better together—Office is a good stand-alone product, but it should be an even better product when used in conjunction with Microsoft server software, such as Exchange and SharePoint.

At a deeper level, integrated innovation also means that products build on the same technologies. For example, during the development of SQL Server 2005, significant effort was expended to add support for writing stored procedures with .NET Framework Common Language Runtime languages in addition to SQL Server's proprietary T-SQL language. In a similar manner, all Microsoft's server applications should use the Microsoft Management Console to host the management snap-ins needed to configure and manage the services.

How It Helped Microsoft

Although integrated innovation provided customers with advantages such as a consistent development and management environment, the main advantages of integrated innovation accrued to Microsoft.

Competitive advantage. Microsoft's partners and competitors are not able to integrate their products tightly with Microsoft's. For example, while Microsoft will meet with competitors and help them use the available APIs that the platforms expose, Microsoft is less likely to change the Windows OS to improve the reliability or performance of the Apache Web server running on Windows, as it has done for its own Internet Information Services (IIS) Web server.

Promote new products. Integrating a new technology with a popular product can help assure the success of the new product. For example, by integrating Office and Windows SharePoint Services (WSS) and shipping WSS as part of Windows Server, Microsoft is able to use the popularity of Office and Windows Server to encourage people to try SharePoint. Competitors and even partners do not get such a boost.

Integration Problems

Integration, however, comes at a price—it increases dependencies that complicate coordination between teams, makes critical tasks such as producing regular builds of the products more complex, and slows down the development cycle.

For example, one reason for the delays to Windows Vista, Visual Studio 2005, and SQL Server 2005 is that integrated innovation created a large number of dependencies between the teams responsible for various components of these products, as well as teams responsible for other products that depended on those products. These teams were typically responding to different customer constituencies and therefore had different priorities, giving them little incentive to cooperate and communicate effectively.

Furthermore, dependencies became circular, blocking the progress of all teams. For example, during the development of Visual Studio and SQL Server 2005, the SQL team needed the .NET Framework, which comes from the developer division, but the developer division needed SQL Server in order to build the .NET Framework-based database tools.

In addition, integrated innovation can force a team to integrate many new technologies in one release, which complicates debugging. For example, the Windows Vista team had to work with a new graphics framework (the Windows Presentation Foundation, code-named Avalon), a new communications framework (the Windows Communication Foundation, code-named Indigo), and an updated security model (User Account Control). Because all of these components were fundamentally new code, which naturally contain more bugs, the Vista team had to work on unstable code, or stop development to determine the root cause of bugs and then wait for the owner of the component to fix them.

In addition, some teams may have had dependencies on technologies that were later pulled from Vista, such as the WinFS file system. The work that a team put into their component related to WinFS in preparation for the Windows launch may have delayed the finalization of their component—and Vista itself.

Finally, integrated innovation was not always achieved. For example, Visio 2007, part of the Office System, will not use the same user interface as other Office 2007 products, and Office will use the older COM-based Visual Basic for Applications development technology, five years after its replacement, the .NET Framework, was announced.

More recently, Microsoft announced that a widely used free version of SQL Server, the Microsoft Desktop Engine (MSDE) integrated by many ISVs into their own products, will not work on Vista. Thus, some ISVs and corporate developers who were updating their applications to work on Vista learned only months before the product's release that Microsoft has not integrated a critical component of their software.

Agile Innovation

To help reduce the time it takes between product releases and become more predictable, Ballmer has said that Microsoft will embrace a process in which new components or technologies are allowed to ship independently, and then (and only then) moved into related products at the appropriate time.

Although the change in priority could help Microsoft ship products more quickly, it has its own set of problems, including the risk of sending a mixed message to customers. For example, Office has been able to ship on a more predictable schedule without major delays because it has often declined to take dependencies on code from other divisions. So while Microsoft promotes the advantages of the .NET Framework to customers and partners, it cannot use Office to showcase the .NET Framework—Office has not used the .NET Framework in flagship products such as Word and Excel.

Even with a move toward agile innovation, Microsoft is unlikely to go as far in this direction as some of its competitors, such as Linux distributions that include an independently developed OS (Linux) and Web Server (Apache).

The new development philosophy may also make it difficult for Microsoft to differentiate its products from partners' products, if they all access the services of the OS via the same APIs rather than extensions to the OS kernel, meaning there could be less differentiation between running SQL Server and running Oracle on Windows Server.

Getting Agile

Microsoft will need to take several steps to translate the new vision into results, including the following:

Delegate product reviews. Traditionally, one of Microsoft's product development strengths was the "BillG" product review, during which a product team undergoes an extensive questioning from Bill Gates about their product plans. Because of his companywide knowledge, Gates was in a unique position to question teams about the integration of products. But because of all his other duties (chairman of the board and his many speaking engagements at Microsoft and industry events) and the vast number of products requiring review, Gates wasn't always able to conduct timely reviews. Ray Ozzie, who assumed the role of chief software architect in spring 2006, does not have as many duties and therefore should be more available for product reviews. However, with Ozzie's focus on Windows Live, Office Live, and other online services, he may still need to delegate some product reviews to other senior managers, such as Bob Muglia, the senior vice president of Server and Tools, or Steven Sinofsky, the senior vice president of Windows and Windows Live engineering, and these reviews will need to address the correct level of integration that can be accomplished and still release products in a timely manner.

Reduce dependencies. Architects and senior managers will need to restrain their enthusiasm for new technologies until the technology is truly ready. The recent transfer of Steven Sinofsky from Office to Windows might help reduce dependencies within Windows, based on his tenure leading the Office team, during which time Office shipped new releases every two to three years but failed to support such technologies as the .NET Framework. But an OS is more complicated than a productivity suite and is likely to have more internal dependencies. In addition, because Windows is the preferred ship vehicle for many technologies, the Windows team cannot ignore components like the .NET Framework in the same manner that Office has.

Keep number of changes manageable. To reach its goal of faster release cycles, Microsoft will also have to avoid the temptation for "blockbuster" releases, especially with maturing products such as Windows and Office. At this point in their lives, their architectures should be stabilizing and each release should implement a manageable number of new features and changes to existing features. Major architectural changes will need to be made sparingly. For example, if Microsoft modifies the network stack to improve performance, security, and to support emerging network protocols, then other architectural change might need to wait for a follow-on release.

Muglia has long talked of getting into a cycle of alternating major and minor releases, with a more predictable roadmap and release schedule. But long product cycles may be hard to undo. Microsoft has encouraged development teams for products like SQL Server and Windows to release ancillary component updates (such as Report Services for SQL and SP2 for Windows XP), which in turn promotes longer release cycles. And missing a release means waiting up to five years for the next release, but adding more technology is what makes the release late in the first place.

Realistically schedule releases. Another traditional Microsoft strength had been its optimism about the power of software. Although such optimism allows it to dream big, the company hasn't demonstrated the ability to accurately forecast how long it takes to develop and test large products. Microsoft will need to encourage its development teams to be more realistic in developing feature specifications for new versions that can be developed and tested in less time. Such features may be smaller, more defined components, with few dependencies on other components or products, for which widespread integration can occur after their release.

Availability and Resources

For additional coverage of the 2006 Financial Analyst Meeting, see "Five Businesses Head into FY'07" on page 21 of the Sept. 2006 Update.

For an overview of a Bill Gates review, see "Bill Gates Reviews Focus Product Development" on page 29 of the Apr. 2003 Update.

QUOTE: Steve Ballmer on Integrated Innovation

'On the R&D side, this focus on innovation and integration as opposed to integrated innovation, where we really [try] to incubate and then integrate, as opposed to integrate things while they're being incubated, that's a major focus on improving the agility of our R&D machine.'