La decisione di esporre un'interfaccia per il personale non tecnico per modificare le regole di business dipende in gran parte da diversi fattori, inclusi gli obiettivi del progetto, il costo del progetto, la durata del progetto e il rapporto tra sconosciute nel progetto.
Ad esempio, se credessi che nessuno userebbe l'interfaccia delle regole, probabilmente opterei per l'implementazione. Tuttavia, se avessi motivo di credere che i cambiamenti sarebbero frequenti e che i diversi utenti finali si aspetterebbero che esistano regole diverse, allora prenderei in considerazione la possibilità di lavorare su tali funzionalità.
Ho scelto di farlo su un progetto e ci sono voluti anni prima che la funzione fosse mai utilizzata in modo esteso. Sospettavo che alla fine avremmo avuto utenti finali che vorrebbero personalizzare le cose da sé, quindi abbiamo implementato questa funzionalità in pezzi.
È iniziato come qualcosa che solo alcune persone, come sviluppatori o amministratori, potrebbero utilizzare. L'interfaccia era goffa, ma utilizzabile se sapevi cosa stavi facendo. Ma quando il prodotto si stava avvicinando al completamento, la logica del backend del motore delle regole è stata utile e il nostro team di progettazione ha fornito un'interfaccia utente bella e orientata al cliente.
Se dovessi farlo diversamente, potrei scegliere una diversa architettura di database solo perché la curva di apprendimento è alta. In breve, la sua creazione ha portato presto a molte funzionalità rivolte ai clienti senza il mal di testa di dover tornare nel codice e refactoring per includere tutte le regole dinamiche.