niedziela, 19 maja 2013

Złożoność EA (3) - Zmniejszanie złożoności przez upraszczanie

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].