У вас есть большая тройка: контроль версий, сборка в один клик через Maven и ваш сервер непрерывной сборки и отслеживание ошибок. Похоже, вы, ребята, тяготеете к гибким методологиям, и поэтому вам следует постоянно пытаться поддерживать транковую версию вашего продукта в состоянии, близком к поставляемому.
Когда вы решите сделать свой первый выпуск, создайте ветку для своей версии ствола для этого выпуска. Определитесь со схемой маркировки и обязательно отметьте версию филиала. Например, ваш первый выпуск может быть 1.0.4530, где 1 означает первую версию, 0 означает, что это первый кандидат на выпуск, а 4530 - это номер изменения управления версиями. Вы тестируете эту ветку релиза и исправляете в ней важные ошибки. Через некоторое время вы выпускаете другого кандидата на выпуск, скажем, 1.1.4807. Этот процесс повторяется еще пару раз (скажем), ваш выпуск становится достаточно хорошим, и вы выпускаете версию 1.3.5167.
Между тем, ваша новая разработка происходит только в версии ствола, и время от времени вам нужно будет объединять исправления ошибок из ветки релиза 1.x обратно в ствол. Позже вы отделите ветку 2.x от ствола, чтобы повторить процесс для вашего второго выпуска. Обычно у вас будет несколько активных ветвей (плюс ствол), причем развитие ограничено стволом, и каждая ветвь будет оставаться нетронутой и независимой от развития.
Вы, ребята, разберетесь во всем, и ваши проблемы с координацией работы разработчиков станут менее частыми. Но почти все эти проблемы будут ограничиваться стволом, а не ветвями релиза.