A decisão de expor uma interface para o pessoal não técnico modificar as regras de negócios depende em grande parte de vários fatores, incluindo os objetivos do projeto, o custo do projeto, a vida útil do projeto e a proporção de conhecidos e desconhecidos no projeto.
Por exemplo, se eu acreditasse que ninguém usaria a interface de regras, provavelmente optaria por não implementá-la. No entanto, se eu tivesse motivos para acreditar que as mudanças seriam frequentes e que diferentes usuários finais esperariam que regras diferentes fossem implementadas, consideraria trabalhar na criação dessa funcionalidade.
Eu escolhi fazer isso em um projeto e levou anos para que o recurso fosse amplamente utilizado. Eu suspeitava que eventualmente teríamos usuários finais que desejariam personalizar as coisas, então implementamos essa funcionalidade em partes.
Tudo começou como algo que somente certas pessoas, como desenvolvedores ou administradores, poderiam usar. A interface era desajeitada, mas utilizável se você soubesse o que estava fazendo. Porém, quando o produto estava quase completo, a lógica de back-end do mecanismo de regras foi útil e nossa equipe de design ofereceu uma interface de usuário bonita e voltada para o cliente.
Se eu fosse diferente, poderia escolher uma arquitetura de banco de dados diferente apenas porque a curva de aprendizado é alta. Mas, resumindo, construí-lo cedo levou a muitos recursos voltados para o cliente mais tarde, sem as dores de cabeça de ter que voltar no código e refatorá-lo para incluir todas as regras dinâmicas.