Not all software is "Configuration Management Friendly." In fact, some packages seem as if they were designed to be "Configuration Management Resistant." Jenkins is an archetype of how software can frustrate attempts at automation. A number of "DevOps Despair"-inducing behaviors by the butler will be discussed. Conversely, Puppet's resource model has inherent strong assumptions as to how software behavior should be modeled. It also has a split personality between the DSL and natives types. A tale, fraught with peril, of attempting to implement a family of types and providers with common configuration will be told.