Decyzja, czy udostępnić interfejs nietechnicznego personelu do modyfikowania reguł biznesowych, zależy w dużej mierze od kilku czynników, w tym celów projektu, kosztu projektu, czasu jego trwania oraz stosunku znanych do nieznanych w projekt.
Na przykład, jeśli uważam, że nikt nie użyje interfejsu reguł, prawdopodobnie zrezygnowałbym z jego implementacji. Gdybym jednak miał powód, by sądzić, że zmiany będą częste i że różni użytkownicy końcowi oczekiwaliby, że będą obowiązywać inne reguły, to rozważę pracę nad budowaniem takiej funkcjonalności.
Postanowiłem to zrobić w ramach projektu i minęło wiele lat, zanim ta funkcja była powszechnie używana. Podejrzewałem, że w końcu będziemy mieć użytkowników końcowych, którzy sami chcieliby dostosować rzeczy, dlatego zaimplementowaliśmy tę funkcjonalność w częściach.
Zaczęło się jako coś, z czego mogli korzystać tylko niektórzy ludzie, np. Programiści lub administratorzy. Interfejs był niezgrabny, ale użyteczny, jeśli wiesz, co robisz. Ale zanim produkt był prawie gotowy, logika zaplecza silnika reguł przydała się, a nasz zespół projektowy dał mu piękny interfejs użytkownika zorientowany na klienta.
Gdybym miał to zrobić inaczej, mógłbym wybrać inną architekturę bazy danych tylko dlatego, że krzywa uczenia się jest wysoka. Krótko mówiąc, wczesne zbudowanie go doprowadziło do wielu późniejszych funkcji skierowanych do klienta, bez konieczności wracania do kodu i zmiany go tak, aby zawierał wszystkie reguły dynamiczne.