The document discusses challenges with developing infrastructure using Puppet in production environments. It describes how editing and committing code directly to production leads to chaos. To address this, it recommends using branches to represent environments, committing code changes to branches, and then using Mcollective to update Puppet on nodes in that environment. This allows for independent development without impacting production. It also acknowledges the reality that hardcoded values and site-specific code and data can still lead to slow development cycles.