The TRUTH…you actually need at least 5 VMs to really do true development in SharePoint 2013:
1) Domain Controller – 2GB (@oscarprawata pointed out that on server core, this can be knocked down to 512MB)
2) SVR-SPWFE01 – 8GB
3) SVR-OWA01 – 8GB
4) CLIENT01 – 4GB
5) SVR-SPAPP01 – 8GB
Why? Domain Controller being separate is straight-forward. You need
a SharePoint instance for sure (SVR-SPWFE01), this can host the visual
studio for development of server and client side code. You need a OWA
instance because it won’t let you install on a SP instance. You need a
client machine because you have to install Visual Studio express for
Windows Phone development to do things with Push Notifications and mobile
programming. And the last instance is for doing true Search
development with a multi-role search architecture.
If you don’t have these FIVE, you can’t do every single development
task one would need to do in SharePoint 2013. Trust me, I have already
tried to get it down and it just doesn’t work.
The one that really pisses me off, is the Client machine. I don't understand why Microsoft chose to FORCE us to install Visual Studio Express to do Window Phone Development. It is ridiculous to have to do that. Its a PRIME example of why Windows Phone development hasn't taken off. They haven't been serious about preventing any inhibitors to development. They just haven't made it easy to train people in classrooms that need everything installed on a single machine (including Server and SharePoint, et all). It's also stupid to expect people to go through the hassle of dual booting their machines and losing productivity just to do Windows Phone development.
Total of at least 24GB of memory to run a full development environment.
Go buy an IBM X-Series server now!