> keeping things synchronised isn't that hard in practice
I disagree, I think how difficult it is to keep things synced varies significantly between users. Sure, its easy if your work is consistent and you're disciplined but if you find yourself switching between very different projects frequently the overhead of syncing machines and setting up software repeatedly can become significant.
Each client gets a "team" in bitbucket and orchestration becomes no harder than
git pull && vagrant up.
It works great on projects that have a simple structure (webserver/db) and projects that have complex configurations with ES/Redis as well.
The trick is to always treat configuration as code and never make manual changes to a VM (or more correctly, always make a manual change then a change to configuration code).
As an entirely added side benefit I can pull a project from two years ago down and be up in a fraction of the time without polluting my host OS.
Even when that project is currently on 14.04 with particular weird dependencies (exactly this version of wkhtmltopdf etc).
Longer term I'll probably look at docker or something but vagrant/ansible has worked out great (some projects aren't even using ansible, just a bash script).
I disagree, I think how difficult it is to keep things synced varies significantly between users. Sure, its easy if your work is consistent and you're disciplined but if you find yourself switching between very different projects frequently the overhead of syncing machines and setting up software repeatedly can become significant.