Я веду разработку и так и так.
Локальная разработка удобна, когда вы делаете простое приложение.
Но как только вам нужно иметь точную копию продакшена или вам требуется ставить много специфичного софта, который точно не нужен вам в вашей системе, то лучше использовать виртуалку.
Ну а возможность снять снимок виртуальной машины - это вообще отдельная приятная вещь.
Вариантов синхронизации множество. Я бы предложил rsync (самый правильный вариант) или sshfs.
Билдфарм можно посмотреть в репозитории. Он использует ant (+ant-contrib), зато практически не зависит от платформы разработки. Fabric тоже удобен, но он заточен под Unix системы.