What's in this chapter?
Heterogeneous teams are ones that comprise team members who focus on different technologies, languages, and tools. A typical example of a heterogeneous team is a team that maintains an application with a web front-end written in ASP.Net MVC, an iPad app, a Windows Phone app, and an Android app sitting on a business logic layer composed of RESTful APIs written in C# that calls out to Java web services. The system may also create batches of data as CSV files that get pushed over FTP to a folder where a COBOL application on the mainframe picks them up at a specified time each night for further processing.
Inside this team, you have Microsoft .NET developers, Java developers, COBOL developers, Objective-C developers, and C++ developers all needing to work together to create a seamless application suite. Typically, each group would have its preferred version control tool that would integrate with its toolset.
Managing changes in separate version control repositories based on the technology in use means that creating builds and gathering check-in data, as well as coordinating changes, become much more complex. Team Foundation Server offers these kinds of teams the ability to coordinate their version control tooling by offering two types of version ...