There is key data you should compile to plan a deployment. Otherwise, you may be unprepared for the installation and it may be unnecessarily complicated. Here are some of the data points you should collect:
Hardware infrastructure - This includes a full audit of all the target systems that will be used alongside Team System. This audit should be undertaken in consultation with your operations team. Equipment usually takes time to order, therefore you may want to consider dates - a nontrivial requirement because they will affect the dates in which you can start the deployment. Part of the hardware infrastructure review includes writing a maintenance plan, which includes backup/recovery, a maintenance task list for administrators to perform regularly, and so forth. Your operations team should be deeply involved in this process.
Software infrastructure - List all the software required for the deployment, and the software currently in place in your environment. The software check may reveal systems with incompatible software, in which case the operations team must upgrade the target systems before starting the deployment process. A close consultation with your operations team is key to obtaining a solid understanding of the target environment. Another element that can't be understated is licensing. Do you have all the necessary licenses for Team System? A good place to start is look at the 1:1 correspondence between the software you need and licenses you need. After that, you will need to look at client access licenses (CALs) for those who will be accessing Team Foundation Server without a Team Edition.
Network infrastructure - Your network infrastructure may appear deceptively simple, but there are many things to consider including security settings, user account settings, topology challenges, and so forth. For example, if you have governance rules in place, your user accounts may have special restrictions such as password policies that will complicate a deployment. Another scenario is that ports may need to be opened on your network to allow Team Foundation Server communication to flow through. In order for the ports to be opened, a security audit might be required. It's important to note not only the components that are required, but also the process behind those components.
Project documentation - Find all documents relating to your software development process and the documents supporting that process, including templates, lists, and so on. If some of these seem ad hoc, not to worry. Team System provides a solid mechanism for aggregating and publishing software project assets.
Build requirements - The complexity of your build may depend on many factors, including what type of software you are developing, if you are building a multiplatform or distributed solution, and so forth. The key information you will want to record includes what needs to be built, what you are expecting as a release at the end of the build process, and if any special tasks are required along the way (for example, automatically copying files via FTP to another server).
Source code - How much source code do you have? Where is it stored? What policies and procedures have you put in place to track versions and integrate source code? You must document all of this to decide how you will migrate the code and what approach to take to configure Team Foundation Version Control.
Another thing you can do that can't be understated is creating a checklist before deployment. Figure 1-2 shows the installation checklist available in the Visual Studio Team Foundation Installation Guide. It breaks down the installation steps for both single-server and dual-server deployments.
You can create a personal checklist in Excel that reflects the software, hardware, and tasks you need to accomplish to successfully deploy Team System. Figure 1-3 shows an inventory of software, which you can check off as you obtain it. Once all the software has been checked off the list, for example, you know that you are ready for the deployment.