A typical information-system development project today is characterized by team work where team members are not necessarily collocated, but possibly distributed around the globe. This has led to increased demands regarding collaboration. To enable this collaboration, effective tooling needs to be in place to support the development processes.
As fundamental tools have stabilized and become commodities, the focus on tooling improvement for individual developers has shifted to teams of developers and now to geographically distributed development teams. Tools make it possible to address the core requirements of a distributed development environment, make the status of a project transparent to all participants, and help to disperse knowledge from individual team members.
In this chapter, we will discuss three primary areas of tools that assist with global software development projects. The first are fundamental tools, which provide the necessary foundation to build a development process. Based on these fundamental tools are additional tools that support the automation of projects. Finally, once the projects have been automated, tools for task-focused, context-based and process-focused development try to increase the productivity of a distributed team.