Sorry about the verbosity. Use the tool that makes it's easy to get your job done. That's the point of automation, right?

History: I have used puppet in past gigs and last month I spent about a week trying to get used to chef to see if I would make the switch at my new gig.

I didn't leap.

Jargon: One unfortunate problem with both of these systems is the jargon overload. (recipes, templates, nodes, roles, attributes, providers) It goes on and on. I found Chef took it a step farther. (Knife, Shef, etc.)

Code Maturity: Suffice to say that I found Chef just a little too raw. It feels a lot like what puppet felt like in the .21/.22 timeframe 3-4 years ago. There's a lot of flux going on.

Not to say that hasn't happened in puppet either. (I re-discovered many great features in puppet that have only surfaced in the last few years. -- regex matching!)

Ruby: I didn't like all the ruby overload in Chef. (you need gem and rake before you can even get started) You can use ruby to solve complex problems in puppet a'la facter, but you don't have to if you don't want to.

Complexity: I didn't like the GUI focus on chef. I realize it's pretty and the puppet has a web interface in the works as an add on, but I feel that should be more decoupled.

Chef has a much more complex architecture. It might scale better, but there are lots of potential points of failure.

http://wiki.opscode.com/display/chef/Architecture

Chef needs couchdb, rabbitmq and solr in addition to the API server and web interface.

I just want a simple client/server interface that doesn't need a MVC framework on top of it and a complex data store behind it.

Puppet is a lot simpler in that department. (not to say there aren't lots of add ons to make it messier)

Getting work done: In the end, I went with what I knew. After spending a week of side hacking and barely being able to get basics done with Chef, I was able to go back to puppet and pound out my basic needs in a few hours. (package management, user management, config file templates)

Caveat about Modules: Puppet has a recent shift to using "modules" which are contributed by third parties. I didn't end up using these and I found a wide range in their quality. Be sure to peek under the covers and see what and how they are working before you dig in to these.