Provisioning is a very hot topic right now and for good reasons. Our guess forgot to mention that once an environment has been fully configured, that an image of the VM should be taken and stored in the repository for future reuse. This will avoid having to download everything again a second time. The future seems to be around hypervisors. I think Windows 10 will have a client hypervisor (Hyper-V), which will allow creating images and reusing images of a complete environments. Other provisioning tools like Puppet, Chef, Chocolatey should be used for things that the hypervisor images does not do well. These things are few in numbers.
Frankly, I am starting to think of tools like Puppet and Chef as testing tools rather than provisioning tools. They are great at doing testing!