Application development has always been carried out by teams, with team members playing various roles in the project. In most cases, no single solution has tied all the team members together. Instead, each role used a product or service that worked well for that role, regardless of whether that solution communicated easily and seamlessly with products used by other roles. This is one example of the communication challenges between team members. Such problems with communication ultimately lead to problems with your project.
With agile processes and projects, communication plays a major role. Most agile projects stress a close relationship with customers, including effective communication using tools and methods they know and understand. The MSF for Agile Software Development Process attempts to address some of the communication challenges with two of its guiding principles. One is to foster open communication. MSF for Agile Software Development advocates that for team members to be their most effective, all information must be readily available and transparently shared among all team members. In addition, this sharing of information and increase in communication, leads to working toward a shared vision, another MSF principle.
Also, developers and other project members who have to communicate over disparate platforms, including Linux, Macintosh, and Windows, face severe challenges. Enabling communication among different tools on different platforms can be a monumental process. Luckily, as you will see shortly, Team Foundation Server's extensibility is able to overcome this issue.