Для совместной разработки программных проектов используются системы версионного контроля (subversion. git). Системы контроля версий можно разделить на две группы: распределенные и централизованные. Так же используются инструменты для сборки проектов (ant, maven).
Система управления версиями - программное обеспечение для облегчения работы с изменяющейся информацией. Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение, и многое другое.
Распределённые системы управления версиями. Такие системы используют распределённую модель вместо традиционной клиент-серверной. Они, в общем случае, не нуждаются в централизованном хранилище: вся история изменения документов хранится на каждом компьютере, в локальном хранилище, и при необходимости отдельные фрагменты истории локального хранилища синхронизируются с аналогичным хранилищем на другом компьютере. В некоторых таких системах локальное хранилище располагается непосредственно в каталогах рабочей копии.
Централизованная система, то есть данные хранятся в едином хранилище Хрнилище может располагаться на локальном диске или на сетевом сервере.