Algorithms in Business

everywhere

Elastyczne reguły biznesowe – elastyczny biznes

Reguły biznesowe a zwinność aplikacji

Jak wygląda świat realny?

W dzisiejszych czasach najlepiej funkcjonują firmy, które błyskawicznie potrafią reagować na zmiany oraz ruchy konkurencji. Często dokładnie wiadomo co trzeba zmienić, jak zorganizować kampanię reklamową, jak przestawić parametry sterujące naszym biznesem, aby z dużym prawdopodobieństwem odnieść sukces. Niestety w takich momentach często okazuje się, że nasze systemy informatyczne nie są przygotowane na takie zmiany, nie są wystarczająco elastyczne i konfigurowalne.

Przeprowadzenie, wydawało by się, dość szybkiej zmiany czasem trwa i kosztuje zaskakująco dużo. Wymaga dużego wysiłku zarówno ze strony działu IT jak i biznesu. Problemy zaczynają się nawet jeśli zmiana dotyczy jednego systemu, w którym nie została przewidziana możliwość zmiany danego parametru.  Przed prawdziwym wyzwaniem staje firma, gdy trzeba przeprowadzić zmianę w dwóch, trzech, pięciu systemach, która wymaga dewelopmentu firm zewnętrznych, a dodatkowo dla zachowania spójności działania organizacji trzeba zsynchronizować „go live” wszystkich rozwiązań…

Jak mogło by to wyglądać w świecie idealnym?

Kiedy potrzebujemy zmienić sposób naliczania prowizji, sposób podejmowania decyzji dla kredytu, stawki przy wyliczaniu kosztów czy dowolny inny parametr – wchodzimy do dedykowanego dla biznesu rozwiązania, wprowadzamy zmianę, określamy od kiedy ma obowiązywać, publikujemy i już. Wszystkie systemy, które wykorzystują dany algorytm czy parametr w tym samym momencie, bez udziału firm zewnętrznych lub nawet działu IT zaczynają działać według nowych parametrów. Rozwiązanie realizowane jest bez CR-ów, analizy, negocjacji, odbioru…

A w momencie realizacji nowego systemu, nowej funkcjonalności, pewien reużywalny fragment biznesowej logiki już mamy gotowy.

Zbyt piękne żeby mogło być prawdziwe? Nie do końca…

Częste próby

Wiele firm podczas przygotowywania dokumentacji do zamówienia, tworzy wymagania określając, które parametry i stawki można zmieniać z poziomu aplikacji przez pracowników firmy, próbując osiągnąć konfigurowalność biznesową systemów.

W ten sposób niestety rzadko udaje się w pełni osiągnąć zamierzony cel. Po pierwsze  ciężko jest przewidzieć, to co będziemy potrzebować w przyszłości, a każdy taki parametr podnosi koszty implementacji systemu. Po drugie, często pojedynczy parametr to za mało. Nierzadko zmiana dotyczy nie tylko pojedynczych parametrów ale całego algorytmu.

Jak się zbliżyć do ideału?

Można to zrobić w sposób efektywny i przy okazji obniżyć koszty stworzenia systemu – przy użyciu zewnętrznego silnika obliczeniowego. Rozwiązanie, które jest przeznaczone dla osób z biznesu oraz może funkcjonować jako centralna usługa obliczeniowa dla zewnętrznych systemów informatycznych.

W takim scenariuszu, przygotowując wymagania dla nowego projektu, zbieramy wszystkie wymagania konfiguracji biznesowej dla wszelkich parametrów, stawek, algorytmów i zamykamy w jednym punkcie – integracja z silnikiem obliczeniowym, silnikiem decyzyjnym. W szczegółowej specyfikacji, należy wskazać punkty systemu, w których ma on odpytać silnik decyzyjny zamiast wywoływania „zaszytych w kodzie”   algorytmów.

Powoduje to, że dostawca będzie miał do przygotowania jeden, wygodny dla niego fragment w aplikacji tzw. fasadę. Ten fragment będzie łączył się z usługą silnika obliczeniowego, przekazywał wymagane dane dla wybranego algorytmu i odbierał wynik. Wszędzie gdzie będzie wymagane obliczenie, decyzja czy pobranie stawki, wystarczy, że zostanie użyta ta fasada.

Dzięki temu, nie będzie potrzebny czas ze strony dostawcy na to, aby analizować algorytmy, wyceniać, implementować czy testować. Nie będzie też potrzeby tworzenia żadnej specjalnej funkcjonalności czy ekranów umożliwiających zmianę – wszystko to zapewnia już silnik obliczeniowy.

Dodatkowym zyskiem z takiego podejścia jest to, że wyodrębniliśmy całe algorytmy do zewnętrznego rozwiązania, więc zmiany, które będą możliwe do przeprowadzenia, bez udziału dostawcy są dużo większe, można zmieniać całe algorytmy nie tylko stawki czy parametry.

Pozostaje pytanie, kto przygotuje te algorytmy. Tu jest wybór, albo my, albo dostawca rozwiązania lub też firma trzecia. Można wybrać scenariusz, który jest dla nas wygodniejszy lub tańszy.

A co dalej… tworząc następny system, można wykorzystywać już raz stworzone algorytmy lub dokładać brakujące, z których w przyszłości mogą skorzystać inne rozwiązania.

A co z już istniejącymi  systemami…?

Tu sprawa nie jest prosta. Moim zdaniem warto pomyśleć o powolnej migracji, ale głównie w przypadku wprowadzania dużych zmian w konkretnych obszarach. Oczywiście, jeśli jesteśmy przekonani, że możliwość błyskawicznej zmiany algorytmów, stawek parametrów oraz uniezależnienie się od zewnętrznego dostawcy jest dla nas na tyle ważne, to może warto zainwestować dodatkowe finanse specjalnie na takie działania.

Dlaczego w takim razie się tylko zbliżamy?

Jeśli planowana zmiana będzie wymagać dodatkowego parametru, który do tej pory nie był wykorzystywany przez nasz biznes? Cóż, w tym przypadku należy się pogodzić z tradycyjnym scenariuszem. I tak w takim przypadku często wiąże się to z koniecznością modyfikacji wybranych systemów – dodania nowego pola do bazy, dodania nowego pola na formularzu do jego wprowadzenia, modyfikacji szablonów dokumentów i itp.

Całe szczęście 80% zmian w stawkach i algorytmach dotyczy poszczególnych wartości liczbowych i sposobu liczenia, więc nie wymaga nowych parametrów. W następnym artykule (Zastosowanie silnika reguł biznesowych w systemie IT) opisałem jak zaprojektowaliśmy fragment systemu, tak aby nawet takie sytuacje wykluczyć praktycznie do zera.

Powrót

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>