Whether you are building a house or developing a computer application, certain things need to be accomplished. Most people use to-do lists to define what needs to be done on the project and who needs to do it. Every project manager tracks his to-do list differently. Some use applications, such as Microsoft Excel or Microsoft Project. Others develop in-house tools, or buy third-party products to help with the information workload. Still others use Post-it notes on their desk. Sometimes all a project needs is a small Excel spreadsheet to manage it, while other times a detailed Microsoft Project is required. The fact is, there is no need to use a wrecking ball when all you need is a small hammer.
One of the problems with using, say, Microsoft Excel to track the requirements of a development project is providing the information from the spreadsheet to all the members of the team, and keeping the spreadsheet updated with the latest information. Sure, you can share out the spreadsheet on a file share, or possibly make use of Windows SharePoint Services, but you may still run into conflicts with keeping the file updated. With very complicated projects, team members may have great difficulty figuring out what they are supposed to be working on.
There is no good way to tie requirements from that spreadsheet back to the source code that solves that requirement. There is no good automated way to alert testers that a bug they found has been fixed in the latest build of the application, and they need to test it. There is no good way to display the latest status on the project to all the project stakeholders.
Microsoft recognized all these limitations, along with others, in the development process of computer applications, and has tried to address a majority of them with the work item tracking system in Visual Studio Team System. This system tracks all the work that needs to be accomplished to complete your application. It contains mechanisms for assigning the work, tracking its history, and running reports to enable management and project stakeholders to understand the status of a project. All the information for the work item tracking system is stored on the data tier of the Team Foundation Server. Microsoft provided some basic templates for project management, based off their best practices, to enable teams to get up and running with Team System quickly and effectively. Finally, they recognized that each team and project is different. Therefore, they have made the work item tracking system easily customizable and extensible, allowing users to conform the product to how they work, instead of having to change how they work to fit the product.
This chapter covers the work item tracking system of Visual Studio Team System. You will learn the difference between a work item and a work item type. And you will receive a basic introduction to the different work items that are provided for you via the MSF Agile methodology. Next, you create your own custom work item type, import it into your Team Foundation Server, and create a new work item of that type. You will learn how to edit an existing work item type, both by hand and by using a third-party tool. Once you have this basic understanding of work items, you will move into how to administer them. You'll learn about creating a work item, searching for work items, and using Microsoft Excel and Project to access the work item information. Finally, you examine the work item object model, and how you can build a simple ASP.NET Web site to access your custom work item type.