Today I see the new Github team project, called Boxen: http://boxen.github.com/
I completely read their introduction for this project but I really didn't understand WHY should I use that? How it goes to simplify development process?
EDIT: I see that this tool has something for Ruby and NodeJs also.
NOTICE: I'm not affiliated with the github folks, or an authority on the exact implementation(yet), but have been following its evolution since hinted at months ago - the spread of masterless puppet is a great thing, which this project delivers
From the horses mouth(a very recent presentation on Boxen, with Q&A!): http://vimeo.com/61172067
github.com/boxen/boxen is a framework, which uses puppet as an engine on current OS X(10.8+ as of this writing) workstations so devs can start working on projects or 'manage' their own workstations with all the dependencies they'd need. github.com/boxen/our-boxen is an example of the 'master repo' of curated software dependencies for a project you'd collaborate on, which are hard-coded to github's auth and repo's. Once happy that it delivers everything your 'team' would need to work on a particular project(or group of projects,) you'd send the resulting repo to Heroku for hosting with boxen-web. Now for more specifics:
You can use your own repo, with the contents of our-boxen(a fork is NOT recommended) without boxen-web if working solo or kicking the tires.
Puppet can be run in traditional client-server mode(the Puppetlabs folks have come up with different names as their product has evolved, but it's now - I think - referred to as agent-master.) In my own theory, in order to have as little 'hooks' or background processes running on a developers workstation as possible, this uses puppet 'modules' that are run without contacting a 'master', which then installs software or makes configuration changes.
A manifest to specify your own user/machine can be created, but every time you run the boxen binary, and 'drift' is detected or enhancements/refinements for your team are added, a baseline gets 'enforced'. An example from a recent presentation( https://speakerdeck.com/wfarr/boxen ) is java security patches, while not project-specific, can add management to the teams workstations, side-by-side with your individual needs.
The boxen organization(github.com/boxen,) created by the github folks, hosts puppet modules known to work with boxen that can be added at the team or individual level, although you can always break out your own puppet and expand what it can do as you see fit.