Ops teams should always strive towards implementing the best application configuration strategy and infrastructure as code solution that will work best for each scenario. However, Puppet, Chef, Ansible, and other similar products may not be the right solution for every project and team. Depending on the DevOps maturity of the team, flexible delivery capabilities needed, feature plugin issues, or off-release work cycles, building a custom solution could be the steps needed get a team from manually editing configurations in production to a fully automated continuous integration pipeline. We want to avoid the scenario where “when you’ve got a hammer, every problem looks like a nail”.