W pierwszej części cyklu na temat złożoności w Architekturze Korporacyjnej
przyjęliśmy, że estymatorem złożoności systemu / układu jest liczba
stanów, w których może się on znaleźć. Zmniejszanie złożoności będzie
więc polegało na zmniejszaniu liczby stanów systemu / układu systemów,
których może się on znaleźć. Dzisiaj napiszę o pierwszym ze sposobów
zmniejszania liczby stanów, jakim jest upraszczanie.
Upraszczanie
Poniższy
rysunek przedstawia 4 systemy A, B, C i D połączone ze są każdy z
każdym. Każdy z tych systemów może się znaleźć w jednym z 6 możliwych
stanów, czyli każdy z systemów ma złożoność 6.
Wyjściowy układ 4-rech systemów o całkowitej złożoności 1.296 stanów |
Ponieważ systemy są od siebie mocno zależne, to cały układ 4-rech systemów ma złożoność 6 * 6 * 6 * 6 = 1.296 stanów, w których może się znaleźć (dla lepszego wyobrażenia, w miejsce systemów możemy z powodzeniem wstawić kostki do gry).
Upraszczanie takiego układu polega na likwidacji stanów, w których może się on znaleźć. Zastosowanie metody upraszczania oznaczać może np. zmniejszenie liczby stanów wybranych lub wszystkich systemów (kostek) przedstawionego układu. Jeśli dla każdego z systemów zmniejszylibyśmy liczbę jego stanów z 6 do 5 (czyli zamiast kostek sześciościennych zastosowalibyśmy kostki pięciościenne), to układ wynikowych miałby już złożoność 5 *5 * 5 * 5 = 625, czyli o blisko 50% mniejszą od złożoności układu wyjściowego.
Układ uproszczony poprzez zmniejszenie liczby stanów każdego z systemów |
Dla architektury korporacyjnej oznacza to, że usunięcie nawet małej liczby zbędnych funkcjonalności / kroków procesów istotnie zmniejszy złożoność architektury, jako całości. Dla przykładu: czy funkcja windykacji koniecznie musi wysyłać cokwartalne raporty? Jeśli nie - zrezygnujemy z nich. W efekcie uzyskamy istotne zmniejszenie złożoność procesów biznesowych i systemów informatycznych firmy, co przełoży się zmniejszenie kosztów ich utrzymania i rozwoju.
Inne zastosowanie metody upraszczania może polegać na usunięcie całego jednego systemu (kostki) z układu.
Układ uproszczony poprzez usunięcie jednego z systemów |
W efekcie usunięcia jednego z systemów otrzymamy układ o złożoności 6 * 6 * 6 = 216 stanów, czyli uzyskamy blisko 85% zmniejszenie złożoności.
Przechodząc do architektury korporacyjnej – usuwając całe funkcje biznesowe osiągamy istotne zmniejszenie złożoności. Przykładami działań zmniejszających złożoność architektury korporacyjnej w ten sposób mogą być outsourcing lub konsolidacja (standaryzacja) funkcji przedsiębiorstwa.
Zakończenie
Za estymator złożoności systemu (lub układu systemów) przyjęliśmy liczbę znaczących stanów, w których ten system może się znaleźć. Zmniejszanie złożoności polega więc na zmniejszaniu liczby tych stanów. Jeśli chcemy zmniejszyć złożoność danego układu, to musimy zmniejszyć liczbę znaczących stanów układu np. zmniejszając liczbę funkcji realizowanych przez systemy, konsolidując redundatne funkcjonalności systemów czy zmniejszając liczbę punktów decyzyjnych w procesie biznesowym.Przedstawione metody upraszczania zmniejszające liczbę znaczących stanów układu systemów są oczywiste. Jednak to co jest istotne i nie jest takie oczywiste, to to, że nawet niewielkie zmniejszenie liczby stanów pojedynczego elementu układu systemów istotnie zmniejszam nam liczbę stanów całego układu. W pierwszym przykładzie ujęcie jednego z sześciu stanu ze wszystkich systemów zmniejszyło nam liczbę istotnych stanów układu (złożoność) o blisko 50%. W przykładzie drugim usunięcie jednego z 4-rech systemów (25% układu) zmniejszyło nam liczbę istotnych stanów układu (złożoność) o 85%.
Stosowanie przedstawionych sposobów zmniejszania złożoności przez upraszczanie jest ograniczone przez liczbę koniecznych stanów układu, które muszą istnieć, aby uzyskać wymagane efekty działania tego układu. Dalsze upraszczanie powodowałoby by utratę potencjału wymaganego do realizacji funkcji przedsiębiorstwa. Złożoność układu daje się jednak zmniejszać dalej, tylko innymi metodami. Napiszę o nich w następnym artykule.
Źródła
- Sessions R., Simple Architectures for Complex Enterprises, 1 edycja kindle 2010, Microsoft Press.
- Sessions R., A Fundamental Metric for Predicting IT Success, ObjectWatch, Inc., 2012, http://www.objectwatch.com/whitepapers/ComplexityMetricSessions-100.pdf, [2012-07-14].
Moim zdaniem bardzo fajnie opisany problem. Pozdrawiam serdecznie.
OdpowiedzUsuń