Developer Product Briefs
Managing a Project With Visual Studio Team System
Visual Studio Team System's many tools provide a wealth of information on the health and progress of a project.
- By Peter Varhol
Managing a Project With Visual Studio Team System
VSTS can provide a wealth of information on the health and progress of a project.
by Peter Varhol
June 28, 2006
Managing modern software projects is hard. Software is more complex, with more functions, to be sure. But that's not the only issue. There are an increasing number of dependencies between components, and those components rely more on operating system and network services that add additional layers of complexity. There are more technologies to understand and apply, and many of these technologies are so new that few developers have become experts with them.
The trend toward distributed software is also an important factor. Many people work on different parts of the software, and bringing all the parts together requires detailed planning, flawless execution, and even a bit of luck. Mixing legacy components with new components in a loosely coupled architecture is possible in theory, but often a headache in practice.
Despite better tools, the use of ever-more sophisticated methodologies, and often-heroic individual efforts, most projects still don't come in on time. The failure doesn't reflect upon any individual or function within the project; rather, it is the nature of software development and how we organize and manage the process.
There is no silver bullet to managing a project to come in on time and budget. Hard work makes a difference, but it is more important to work smart. The key to successful software project management is unbiased information. Project managers have to know when a development effort starts going off track, what is sending it off track, what factors are affected, and how a problem in one area can snowball across the entire project.
Control is another aspect of successful project management. Software developers might be loath to consider their effort controlled, but that's precisely how a good project manager keeps efforts coordinated and on track. It is an orchestration between all members of the development team, one that depends on the quality of information available and the ability to act on that information.
This is where Visual Studio Team System excels. Thanks to code quality tools, built-in process support, integration with project management tools, and a host of other features, Team System provides a wealth of information on the health and progress of a project. And it does so not by requiring a specific regimen, but rather by tying together data from a variety of tools that developers use.
Define a Project Portal
At the most fundamental level, you can start by defining both a project portal and a methodology to use for the project. The portal is both a Web site and a database for project information such as work item queries. Team System supports two methodologies, the Microsoft Solutions Framework and Agile development. For Visual Studio users, this portal is accessible through the IDE; others who aren't running Visual Studio can access it through the Web site.
Many development teams spend a significant amount of time establishing and maintaining a project portal. Creating one with just a few clicks of the mouse button is a good start, but continually populating it with data and creating reports can be a full-time job on some projects.
Team System tries to make that process less time-consuming and more of a natural part of the project process. If you're using Microsoft productivity products such as Excel and Project, it provides seamless integration across data sources. For example, you might start by entering the requirements list into a spreadsheet to plan and track individual software requirements.
Team System provides a default task list for use in Excel, making it possible to get a jump start on planning. Once imported into Excel, the default list can be customized and expanded to include specific requirements and tasks that fulfill those requirements. If you are used to listing requirements and tasks in Excel, this feature makes it possible to continue doing so while leveraging the Team System database.
Further, the same Team System database can populate Microsoft Project. The means that you can create your detailed requirements and task list in Excel, then import that same list into Project for more detailed planning. Once that list is in Project, you can assign resources, work out dependencies, and schedule tasks. This data is also stored in the project database, providing the opportunity to bring it back into Excel, prepare custom reports, and make it available to other project tools.
Last, Team System provides stock reports based on both the methodology selected and the type of information desired. One often-overlooked area in project management is quality. Certainly quality figures in the success of the software itself, but it is less visible than schedules and resources.
Track Application Quality
Team System provides features that enable you to track application quality and use quality data to manage the overall project. For example, development teams can easily create, maintain, and run unit tests and load tests. While these might usually be considered developer and tester tools, they also provide information about the project as a whole.
For the project manager, Team System aggregates the testing results and provides them as reports. You can view, for example, the number of unit tests created, how many of them were actually executed, and the number failed over time. Add in the number of bugs found, and you can make some assessments on the progress the development team is making at finding and fixing bugs.
For example, if the number of bugs found is low, it might at first glance seem that the project is approaching an acceptable level of quality. However, Team System reports provide the opportunity to drill down into the data, correlate unit test numbers, and discover that unit tests are few and code coverage is poor. Instead of reaching the end of the project, the development team has more work to do.
Perhaps the best thing about using the Team System project management features is that they are well-integrated with many existing development practices. Developers who are used to running unit tests, filing bug reports, and performing code reviews will have to change few of their accepted ways of working. That puts better information into the hands of the project manager.
Software project management will never be easy. There is too much detail, and too many interacting components, for there to be a single way to manage projects. Even the best information, and the best efforts based on that information, might not be enough to keep a project on track and at a high level of quality.
But no project manager can succeed without detailed and up-to-date information on project parameters. If this data can be collected during normal work processes, and analyzed visually with little effort, it makes the lives of project managers much easier. That is what Team System brings to the table for software project managers.
About the Author
Peter Varhol is Editor of FTPOnline. Reach him at firstname.lastname@example.org.
Peter Varhol is the executive editor,
reviews of Redmond magazine and has more than 20 years of experience as a software
developer, software product manager and technology writer. He has graduate degrees
in computer science and mathematics, and has taught both subjects at the university