1. Готовая среда для исполнения кода программиста (тестирования)
2. Разделение проекта на системы (четкое описание API между системами)
3. Делегирование разработки разных систем разным разработчикам, причем чтобы они не знали друг друга и общались только через менеджера.