Are there any components of Team Foundation Server and Team System that can assist in the process of releasing software? Indeed, there is. You can slice up the release management process as a lifecycle within the larger software development lifecycle. In a nutshell, release management involves four phases:
Planning - The process of creating a release plan
Implementation - Executing the release plan
Testing - The final QA and user acceptance testing process
Deployment - Shipping the product
The release plan can be created using the same tools that a project manager would use, Microsoft Excel or Project. You can create an area within the Team Project called Release (by right-clicking on Team Project, selecting Team Project Settings⇨Areas and Iterations, and adding a Release node to the project, as shown in Figure 17-2).
Then you can associate all your release management oriented tasks to this area.
You could alternatively create a custom work item called Release Task for this purpose. How do you effectively choose whether to create an area or a custom work item? If your tasks are structurally the same as other tasks in Team System (in other words, there are no custom transitions and so forth), you should pick the area approach. If customization is required, then the new work item approach will work well for you.
You should execute a release management project just as you would a software development project. You can identify risk at the beginning, track the progress of your project, and make note of blocking issues that may arise.
The next phase involves testing the application. You can store your test cases (for user acceptance testing) in manual tests, which would then allow you to create a last-minute change request if the desired functionality has not been obtained (or if hidden bugs are uncovered). You can automate your user acceptance testing to some degree by using unit tests that enforce your business requirements. Finally, you can use tools such as the Framework for Integrated Testing (FIT) to allow customers to test all of your business logic. FIT works by providing the user with a table in Word format. Into this table, the user inserts a range of values and the expected outputs. Then the user's data are compared to the output generated from your classes. You can learn more about FIT on its Web site at http://fit.c2.com/.
The deployment piece of the release management cycle involves shipping a master CD to a manufacturer. Team Foundation Server fits in during the creation of a custom build that cleans up your project for deployment. Postdeployment, you can also look over the effectiveness of your release and do a postmortem on the process.