Ключевое преимущество наличия выделенной машины для сборки (за исключением CI, модульных тестов и даже автоматических сборок) состоит в том, чтобы обеспечить наличие чистой , предсказуемой и воспроизводимой среды сборки.
Одно это должно привести к более стабильной версии продукта. Это поможет вам найти проблемы с вашим решением и базой кода раньше, чем когда вы уже развернули / выпустили его. Типичным примером могут быть компоненты, которые были GAC'ами на компьютере разработчика, но отсутствуют в развернутом продукте.
Автоматизированные сборки полезны, потому что они удаляют человеческий элемент - то есть они повторяют одни и те же шаги каждый раз (например, они не так склонны забывать шаги сборки) - что дает вам предсказуемость. Если вы запускаете тот же скрипт сборки с тем же источником, вы должны получить тот же вывод. Это важно для правильного управления выпуском.
По мере того, как вы разрабатываете среду сборки, ее можно расширять, чтобы обеспечить большую поддержку команде разработчиков - особенно после того, как команда начинает расти. Остальное можно обсудить - реализовать, если вы (или ваша команда) сможете увидеть, насколько важно снизить риск или усилие для вашего проекта.
Непрерывная интеграция (CI), в основном, позволяет вам заранее узнать, есть ли какие-либо конфликты с источником / решением вашего проекта - то есть до того, как остальная часть вашей команды получит сломанную базу кода, когда они обновят свой источник из системы контроля версий.
Основным преимуществом здесь является более быстрое разрешение неработающих кодовых баз - обычно, когда они еще свежи в памяти людей (поскольку, теоретически, они просто вносили изменения в репозиторий контроля версий). Люди должны следить за этим, однако ..