This is where Team Foundation Server enters the picture. It provides one tool that easily and effectively allows all the different roles on the team to work together. By facilitating effective communication between team members, it improves project productivity and success.
Let's look at some of the ways Team Foundation Server will help your team members communicate better. While we covered some of these topics in detail earlier in the book, it's worth another look here.
Centralized information - This is by far the most important point, and one of the most important things you can take away from this book. The ability to store all the information about your project in one place is seriously powerful. Having all your source code, design documents, meeting notes, wish lists, and bugs, just to name a few, makes it easy to gauge the overall health and status of your project.
Moreover, having a central store of all your data makes it easy to cross-reference that data, allowing you to tie your bugs to the source code that fixes them and to associate your requirements with specific areas of code. Instead of lots of different systems, Team Foundation Server gives you one place to go to find out everything about the project. This centralized store of information is also easy to back up and maintain.
Document management - Many people overlook the fact that Team Foundation Server can do much more than just track work items or versions of source code. You can also use it to track changes made to any documents related to your project. In effect, you are version controlling your documents, which is a very effective way of doing document management.
You can track every change made to your documents, regardless of the document type - Word, Excel, PowerPoint, it doesn't matter. You will always know who made what changes, and when they made them. In addition, you can use the security model built into Team Foundation Server to allow or restrict access to any document in the project, enabling you to keep documents restricted to those who have the appropriate access. Finally, and this point ties back into the previous section, you have all your documents in one place; anyone interested in project information knows where to go to find the latest version, plus any previous versions, of any documentation.
Work item tracking - This is best way that Team Foundation Server enables teams to communicate more effectively. No more will you be bedeviled by e-mails that get lost or misinterpreted. No more will you be faced by Excel spreadsheets containing requirements, where you have to wonder whether a particular requirement has been completed, or even if this is the latest spreadsheet with the requirements.
The work item tracking system gives you a quick, effective, in-depth way of tracking all the different tasks associated with your projects. Combined with the reports in Team Foundation Server, it gives you an excellent snapshot at any time of your project's health. Instead of having to spend hours compiling project information from myriad files, you can quickly run a couple of reports that will probably provide richer, more in-depth information than your old way of doing things.
Seamless tool integration - The ability to allow users to use the tools they are comfortable with to work with project data makes them very productive. The ability to review work items, create new work items, and update work item statuses, all without having to leave his comfort zone of Microsoft Project, makes for a happy project manager. In addition, with the Microsoft Office Integration being mostly seamless, users will be able to quickly and easily access and make the most of the data in Team Foundation Server.
Let's not overlook the benefit to the developers. Having all the work item tracking and source control integrated into Visual Studio just makes their life that much easier. No more having to switch to a different application to review and track bugs. No more having to switch to a different application to access the source control system. Instead, everything can be done from the comfort of the IDE. And because all the other project members are hooked into Team Foundation Server via Team Explorer or some other environment, all project data are quickly and easily communicated to all the team members.
Using the Team Foundation Object Model, you can solve the problem of team members working in multiple platforms. In fact, a Microsoft partner company called Teamprise (www.teamprise.com) has already solved this problem for you. Many enterprises do Java development in addition to .NET development. Teamprise has developed a Team Foundation Server client that is written entirely in Java. The advantage of this approach is that it will run from any location that has a suitable Java Runtime Environment (JRE) such as Linux, Unix, Solaris, Windows, and even Mac OS X.
Figure 14-1 shows how the Teamprise plug-in looks within the Eclipse IDE on Windows.
By bringing together both of the main development platforms used today, Java and .NET, you can use Team Foundation Server to manage all your IT development. By using the Team Foundation Server's version control and work item tracking elements together for all your development, you can easily generate reports that span your entire development team.
Besides the Eclipse plug-in, Teamprise also provides a cross-platform standalone client for Team Foundation Server, similar to Team Explorer. This client provides most of the same abilities as Team Explorer, but, as with the Eclipse plug-in, it runs on multiple platforms. Teamprise also provides a command-line client similar to the one that comes with Team Foundation Server. This client could be highly useful in a Unix or Linux environment, particularly when used in automating builds.
In previous chapters, you learned about TeamPlain from devbiz Business Solutions (www.teamplain.com). It provides a nice way to access the work item tracking system of Team Foundation Server through a Web browser. This product, built off the Team Foundation Object Model, allows users on multiple platforms to leverage their Team Foundation Server for maximum use. Figure 14-2 shows a screenshot of this Web application.
Also, recall that in Chapter 11 you built a very simple Web application for accessing the work item tracking system. This is another example of extending Team Foundation Server across multiple platforms. Please refer to that chapter for the details of that application.
Let's now go back to our communication example from the previous section, and see how you could use Team Foundation Server to enable a better flow of communication between the different roles. Again, this is not necessarily how to do things, but it is an example of how Team Foundation Server can help.
The business analyst begins defining requirements in Team Foundation Server, using scenario work items. To create these work items, he opens Team Explorer, navigates to the appropriate team project, right-clicks on the Work Items folder, and selects Add Work Item⇨Scenario. This opens a new scenario work item. As he creates these work items, he assigns them to the project manager, by selecting the manager's name in the Assigned To field of the Status section of the form.
The project manager checks his assigned work items in Team Explorer by running the "My Work Items" query in Team Explorer. To run this, he navigates to the team project, opens the Work Items folder, then the Team Queries folder, and double-clicks the "My Work Items" query. This shows him there are new scenarios that have been assigned to him. He begins to break the scenarios into tasks for his developers, using Microsoft Project. He can get a head start on this by opening the Development Project Plan project file that exists in the team project. In the Documents folder for the team project, under the Project Management folder, is a Microsoft Project file called Development Project Plan.mpp. Double-clicking this file opens it in Microsoft Project, where the manager can then connect to Team Foundation Server and begin making tasks. When he is done, he synchronizes Microsoft Project with Team Foundation Server, creating new work items in Team Foundation Server for the developers. While he is doing this, the business analyst has discovered more requirements. Instead of sending an e-mail, he adds the scenario work items to Team Foundation Server. The Project Manager, later that day, reruns his "My Work Items" query, sees the new scenarios, modifies his project plan, and syncs his plan again with Team Foundation Server.
Each developer runs the "My Work Items" query to see what work items he has been assigned in Team Foundation Server. Seeing the new work items that were created by the project manager, they begin their work. The next day, one of the developers leaves the company. The project manager opens his project plan, begins to reassign work items to developers, and syncs again with Team Foundation Server. Now, when developers pull their list of work items to work on the next day, their schedules will be automatically adjusted to take into account the missing developer.
As you can see, having a central repository for all the information related to the project really does play a crucial role in providing effective communication among team members. The integration with tools that team members are used to using, such as Microsoft Project, the work item tracking system, and the version control system, all play a vital part in increasing the power of communication within the team.