L'utilizzo di un motore di regole come Drools è già stato menzionato.
Lasciare una gran parte della configurazione agli utenti finali presenta un inconveniente tipico rispetto alla manutenzione della programmazione:
- Le modifiche hanno un effetto immediato sul sistema di produzione in corso;
- Il controllo delle versioni è assente;
- Il design è ad-hoc;
- La documentazione è assente;
- Un utente finale non è abituato alla "logica" di un sistema software.
Quindi è richiesto uno sviluppo sufficiente ed estremamente attento.
Crea una progettazione dettagliata, con storie dettagliate: interfacce utente finali.
Solo dopo aver soddisfatto i requisiti tecnici, una concezione tecnica, cerca lo / gli strumento / i corretto / i. Quindi i tempi di sviluppo sono distribuiti proporzionali alle parti del carico di lavoro.
Un avvertimento: non memorizzare dati complessi (centinaia di nodi grafici) in diverse tabelle di database, quando tali dati sono come un documento; memorizzare meglio tali dati come XML in una singola tabella (JAXB). È meglio se si può passare da un grafico all'altro, invece di avere tutto distribuito - anche con JPA.
Un'altra nota: questo software dovrebbe tipicamente assistere nella pianificazione,
non necessariamente essere prescrittivo. Il cliente spesso vuole solo ottimizzare, fare cose veloci e imparziali. Ciò significa che le eccezioni manuali dovrebbero probabilmente essere gestite e documentabili.