This has a lot of overlap with the Inner Platform Effect. Eventually you have a new programming language softcoded without any of the quality or tools you&#x27;d expect from a &quot;real&quot; language.<p>In my current workplace, there&#x27;s a lot of internal business-logic which has been shoved sideways into INI files or database tables... Even SQL fragments used to generate other queries.<p>I think one of the major causes is that, somehow, the organization came to count off-cycle releases as a failure or black-mark, regardless of why they occur. So instead of improving the integration&#x2F;release process (and using solid and tested tools for expressing and testing business logic) everyone instead tries to cover their own ass, inventing buggy layers of indirection so that they can avoid being the scapegoat who asked for a new push.<p>IMO a very useful question is &quot;Who will change this, and how quickly must the change go through?&quot;<p>For example, If it&#x27;s an environment settings (e.g. database credentials) then it needs to be softcoded in a way that IT can edit and keep their own backups. But if it is business-logic that needs to be run validating against unit tests anyway, then by all means put it in &quot;real&quot; code!