In-Depth

Taking the Mystery out of Software Development

Some partners are restructuring their businesses around Visual Studio 2005 Team System. Should you do the same?

Management of software development projects has always been as much art as science.

Keeping on top of a software project requires several squishy people skills. Managers must call or talk to their developers constantly to determine the state of each person's aspect of the project. There's also the matter of discerning that one developer's "almost finished" means "barely started" while another's self-imposed deadline of Friday can be taken to the bank.

Then there's the instinct about software bugs that good software development managers hone with experience. This is the ability to know by examining a bug whether it's the type of problem that will take one developer 20 minutes to fix or the type of black hole that will consume every developer on the team and push back the whole project by two months.

Until recently, Microsoft's Visual Studio integrated development environment didn't concern itself with software development project management. The tool was designed to maximize each individual developer's productivity, and by most accounts had done the job pretty well.

While often viewed as a software development tool for enterprise customers, Visual Studio is the lifeblood of many Microsoft partners, from independent software developers to custom solution providers, either in a five-person local firm or at a global systems integrator. Even more so than in enterprise development shops, partners whose business and bottom line depend on the efficiency and effectiveness of their team development process may have the most to gain from the new changes to Visual Studio.

Given Visual Studio's prominence, any new capability is vitally important for the Microsoft partner community to understand and exploit. Microsoft's push to enable new capabilities for project teams -- called the Visual Studio Team System -- is an improvement worthy of evaluation. Microsoft began rolling out the capabilities with the November launch of Visual Studio 2005 and is wrapping up the first version now as Visual Studio Team Foundation Server becomes generally available.

The example of EDS Corp., one of Microsoft's largest global systems integrators and a Technology Adopter Partner working with the team elements of Visual Studio ahead of their general release, shows some of the ways partners can leverage the new capabilities.

"In a lot of projects, you have a project manager with a task list that goes around. There are always going to be 20 things on the list. We can actually get some sense of the project's velocity."
-- Etienne Tremblay, Lead Technologist, EDS

"We've run quite a few projects worldwide using the new Team Suite capabilities," says Aaron Kowall, chief technologist for the Plano, Texas-based company. What EDS is learning may help partners across the spectrum figure out how to get the most from the new capabilities.

A Team-Oriented Development Environment
Visual Studio has long been the domain of individual developers. The 2005 version brings many productivity improvements along familiar lines. There's integration of the latest enhancements of the .NET language, tight coupling with data-tier improvements in SQL Server 2005, new tools for Microsoft Office and consolidated Windows mobile development platforms.

But there's another dimension to the product this time around. Visual Studio 2005 adds the Team System, which is all about developers working together and getting projects finished on time and on budget. There are tools for tracking projects, figuring out how much of the code has been tested, for measuring the seriousness of bugs, for analyzing the productivity of the team, for determining how much coding is actually finished and for updating business managers and other non-developers on project progress.

Specifically, all this functionality is delivered in a series of new editions and elements. Visual Studio .NET 2003 brought job roles to the suite with the Enterprise Architect, Enterprise Developer and Professional editions. The 2005 version ties the roles together and adds some new ones. There are the new Team Editions in three versions: one each for Software Architects, Software Developers and Software Testers. Additionally there's a Team Test Load Agent. But the core of the team suite is a server product, Team Foundation Server, which pulls all the disparate developers and efforts together.

The individual IDEs connect to the Team Foundation Server, which acts as a data warehouse and report generator. By tracking various data culled automatically from various project team members' work, the server is able to provide development-specific progress reports on the metrics cited above. Such information is also revealed to non-development managers through a Windows SharePoint Services portal site and via a client called Team Explorer that can be used independently of the full version of Visual Studio.

Developer collaboration and project tracking aren't new concepts. Previously, it's been possible to tie together projects through third-party software, or to use Microsoft Project Server to keep tabs. But in the past, such approaches often required developers to stop what they were doing and switch to another application to update their status. This interruption often led to patchy participation and inconsistent results. Project-tracking systems that required developers to estimate their own progress, meanwhile, required the same level of manager interpretation as the old-fashioned phone call or face-to-face meeting. What does 50 percent done mean for a given developer?

That history makes Microsoft's decision to build the capability into the core IDE, and to have the reports be automatic based on source-code checks, very important. Because it's a given that Microsoft partners doing software development and custom application work will run Visual Studio, it's a key step in helping partners take the mystery out of their software development progress estimates and timelines.

Prashant Sridharan, group product manager for Visual Studio at Microsoft, says the Team System in Visual Studio 2005 was designed very much with Microsoft partners in mind, often more so than enterprise customers. "The most [significant] inroads we could make were all about making partners more productive," Sridharan says. "There is no question that the largest amount of software development teams resides in partner organizations."

Team System = Good Timing for EDS
When EDS looked to reshape its global custom software solution operations, the company found Visual Studio 2005 could help streamline the process.
In the past, EDS developers were part of regional divisions -- a geographically based division would have its own sales, consulting and development personnel who would work on projects locally. But simultaneous with the Nov. 21 launch of Visual Studio 2005, EDS launched nine technology centers dedicated to .NET development. Four of the centers are in North America, with others in the United Kingdom, Egypt, New Zealand, India and Brazil.

By centralizing .NET development in the centers, EDS believes the development teams will become even more skilled through specialization, and the company will have a development organization that can work around the clock for customers.

While the company has plans to use the model for J2EE and legacy development, .NET is the first step and the team capabilities of Visual Studio helped make the platform a logical first choice.

"We're separating our industry experts and front-line analysts from our back-end coding and testing activities," EDS' Kowall says. "The increased level of collaboration in Visual Studio 2005 fits that model quite well."

How EDS Uses Team System
The benefits of the Team System come in several areas. For one, EDS is able to use the collaboration capabilities enabled by the server to support the remote requirements of its new globally distributed .NET development centers.

Etienne Tremblay, lead technologist for EDS, says the company has other ways to enable long-distance collaboration, but that Team Foundation Server has made it easier and quicker to implement the kind of global operation EDS wants to establish.

What's more important than the availability of the information is the usefulness of the metrics that Visual Studio is now revealing for EDS. According to Tremblay: "Having better information is leading to better decisions. It is just a far more productive development environment."

One area where EDS is getting more information involves the rate at which new bugs are being created. "In a lot of projects, you have a project manager with a task list that goes around. There are always going to be 20 things on the list," Tremblay says. "Now we can see the number of tasks completed, period over period. We can actually get some sense of the project's velocity. A lot of this is baked into the metrics."

"Because all of this is being housed in the data warehouse with Team Foundation Server, we can actually do some reporting. Are we producing more defects per line, or are we actually generating additional bugs?" Tremblay says.

Tremblay has found that EDS project managers are indeed now less reliant on verbal assurances from staffers about their progress. "Historically, project management had been reliant on the best information that their staff is telling them as per progress. By using the metrics within the toolset, it's much more transparent to actually see where the project stands," he notes. He's also found that the integration within Visual Studio makes the progress tools work. "It's much more a part of the normal part of development, rather than in a work-tracking program."

In developing the Team System, Microsoft aimed to make bug tracking inherent, too. "A lot of times in the development process, things kind of fall on the floor," Microsoft's Sridharan says. "With Team System, because it's available and accessible for the vast majority of developers, the bug tracking system is more palatable and will give partners a great deal of accountability in making sure bugs are resolved."

EDS is taking advantage of a number of the bug testing and metrics provided by the Team System. Especially helpful are metrics on code coverage. "When you do unit testing, your unit test calls your code and tries to hit all the code paths. The code coverage is the metric that tells you how much of your code was actually covered by your unit tests. If your code coverage is 50 percent, that means you're missing some unit tests," Tremblay explains. "Now all these metrics get generated by the server. You may have 100 unit tests, but it only covers about 30 percent of your code. In the past, most companies used third-party tools to check code coverage, or it just wasn't being done."

In Tremblay's experience, the new transparency goes beyond the development project manager. It's now easier to pass metrics up to the consultants and business managers who may not be intimately familiar with the development process. That gives the opportunity for the customer-facing specialists to communicate more accurately with customers about how close the project is to being finished.

EDS was heavily involved in development of Team System. Tremblay feels it's a very good first effort, but he says there are areas that could be improved for version two. "One of the shortcomings of Team Suite is that there is no user interface testing. You can do automated tests to do almost everything -- not Windows forms, but you can do Web forms. [We] have someone who manually tests the Windows UI."

What's Next
Enhancements to the Team System are coming. Although Visual Studio 2005 is barely out the door, Microsoft has two more versions of Visual Studio on the drawing board.

Customer supportability is one area in the upcoming "Orcas" release that could hold more promise for partners. The Dynamic Systems Initiative is Microsoft's push for complete application lifecycle management across its systems. One of the goals there is to make it easier for developers to create applications with the IT department and end users in mind. Rather than throwing finished apps at the IT department and letting IT administrators figure out how to support the applications, DSI is partly about automating the creation of documentation and internal metrics that can give IT a clear understanding of how to deploy, support and scale customized applications. While this policy is frequently explained by Microsoft in terms of a process between developers and IT departments within the enterprise, it could have implications for helping partners deliver more supportable applications to their customers. Microsoft intends to build some of the DSI work into Orcas, which is currently billed as more than a year away.

Featured