You've most likely heard of Vagrant by now. It's the command-line tool that allows you to "create and configure lightweight, reproducible, and portable development environments."
So why is developing in a VM any better than developing on a local xAMP stack? Because it's not just about Drupal. Who hasn't developed a site locally, only to have it blow up once it's deployed to staging or (gasp!) production systems? By modeling those production systems in your local environment you significantly reduce the risks and time wasted. Oh, and it helps with reproducing bugs locally, since you're not hacking on the live site, right? Right?!
With Vagrant, you're only ever a command or two away from building (or rebuilding) a development environment perfectly suited to you, or a test environment nearly identical to your production systems. In fact, you can have several such environments going at once. Want to check that your module works behind a Varnish cache, under both Apache and Nginx? Yeah, it can do that.
Better yet, such environments are easy to share with the rest of your team. All the configuration can be managed via Puppet, Chef, Ansible, shell scripts, etc. and thus maintained under version control. By sharing and using identical environments to collaborate on projects, you can all but eliminate the dreaded response "it works on my machine".
So, whether you want a quick Drupal 8.x site to hack on a core issue, a full Aegir system in your VM, or a local client or testing environment for your continuous delivery system, be sure to checkout this session that'll cover all this and more!