Fearless development with Drush, Vagrant and Aegir
You've probably 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?!
While tremendously useful all on it's own, integration with Drush, and a robust templating system, adds all kinds of hotness. You're only ever a single command 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, blueprints for building such environments are easy to share with the rest of your team. All the configuration is managed via Puppet (Chef support is planned), and versioned under Git by default. By sharing and using identical environments to collaborate on projects, you can all but eliminate the dreaded response "it works on my machine".
But wait, doesn't developing in a VM mean I can't use my favourite editor locally? Isn't it like developing on a remote server, via SSH? Not necessarily. The blueprint for which this system was originally developed provides a full Aegir system in your VM, and mounts most of the relevant directory tree via NFS, allowing you to edit everything locally. But with the convenience of being able to build a new platform or clone a site with a single click.
We're even working on a local (Jenkins-based) continuous integration server that can run your test suite regularly, behind the scenes, to ferret out any regressions recent changes may have made.
Anyway, be sure to checkout this session that'll cover all this and more!