Начните с развязки компонентов, где это возможно, и преобразуйте устаревший код в (переносимые) приложения, если это уже не так, и устаревший код не должен находиться под основным деревом проекта.
Любые новые функции должныбыть хорошо документированными и отделенными приложениями или самими общими библиотеками, даже если они переопределяют / взаимодействуют / зависят или даже monkeypatch унаследованный код.Вы хотите, чтобы большая часть вашего проекта находилась вне самого основного проекта, и устанавливалась через pip, как если бы они были сторонними приложениями.
Основное дерево проекта должно быть не намного больше, чем шаблоны основного проекта проекта.urls.py, settings.py, любые шаблоны конфигурации / развертывания и fabfile, а также любые основные приложения, которые будут редко настраиваться.
Каждая локализованная настройка должна быть либо самой «настройкой» приложений, либо небольшими изменениямиосновной проект (который должен быть воспроизведен с помощью fab или любого другого провайдера по вашему выбору)
Излишне говорить, что если каждая команда может принять участие в основном проекте, хороший рабочий процесс git / hg необходим,и используйте центральный CI-сервер с хорошим набором тестов.