środa, 22 maja 2013

Złożoność EA (4) - Business case zmniejszania złożoności architektury

Zgodnie z definicją CUEC (ang. Consortium for Untangling Enterprise Complexity): złożoność, to cecha systemu, która powoduje, że jest on trudny w użyciu, w zrozumieniu, w zarządzaniu i/lub trudny do implementacji.

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.

Liczba stanów estymuje nam liczbę testów, które trzeba przeprowadzić, estymuje ilość linii kodu, które zawiera program oraz estymuje ilość analizy, którą trzeba przeprowadzić, aby go zrozumieć. Innymi słowy liczba stanów wpływa na koszty rozwoju systemu. W jakim stopniu?

Sessions R. twierdzi, że zależność kosztów rozwoju i utrzymania systemu od jego złożoności jest liniowa. Niestety na poparcie tej tezy nie podaje przekonującego dowodu.

Wg Garnera usunięcie zbędnej złożoności zmniejsza TCO liczone na jednego użytkownika o ok. 50%. Badania nad złożonością w przedsiębiorstwach opublikowane przez MIT CISR podają, że blisko połowa złożoności w przedsiębiorstwie to "zła" złożoność (zła, tzn przynosi więcej trudności dla firmy niż wartości dla klienta). Zestawienie tych dwóch faktów pokrywa się z tezą Session'a.

Gdyby przyjąć, że zależność kosztów rozwoju i utrzymania systemu (biznesowego i/lub informatycznego) od jego złożoności, jest liniowa (przemawia za tym teza Sessions'a oraz badania Gartnera i MIT CISR), to zmniejszenie złożoności systemu o 85% (co jest możliwe - patrz poprzedni wpis nt. złożoności) powinno nam zmniejszyć koszty rozwoju o 85%! Gra jest zatem zdecydowanie warta świeczki!

Źródła:

  • Mieritz L., Frameworks that Matter: Using TCO and TVO to Identify, Develop and Drive Business and IT Improvements, 2009, Gartner, s.10.
  • Sessions R., A Fundamental Metric for Predicting IT Success, ObjectWatch, Inc., 2012, http://www.objectwatch.com/whitepapers/ComplexityMetricSessions-100.pdf, [2012-07-14].
  • Mocker M., Ross J.W., Rethinking Business Complexity, MIT CISR Research Brefing, Volume XIII, Number 2, February 2013, http://cisr.mit.edu/blog/documents/2013_0201_RethinkingBusinessComplexity_MockerRoss.pdf, [2013-05-22].

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

sobota, 11 maja 2013

Rodzaje strategii a architektura korporacyjna (2)

W poprzednim artykule na temat typów strategii opisałem koncepcję value disciplines opublikowaną przez Treacy i Wiersema w 1993 roku.  Treacy i Wiersema przebadali wtedy czterdzieści firm będących liderami w swoich branżach i wyróżnili 3 rodzaje stosowanych przez te firmy strategii dostarczania wartości klientom:

Strategia doskonałości operacyjnej (ang. operational excellence)
Służy dostarczaniu wartości typu najlepszy koszt całkowity (ang. best total cost), poszukiwanej przez klientów ceniących najlepszy stosunek ceny do jakości (niekoniecznie samą cenę) oraz łatwość dokonania transakcji i późniejszej obsługi. Strategia operational excellence polega na maksymalizacji efektywności (efektywność = stosunek uzyskiwanych wyników do ponoszonych kosztów) procesów wytwarzania i dostarczania produktów klientom firmy. Dzięki temu firmy stosujących te strategie wytwarzają produkty dobrej jakości i dostarczają je klientom w sposób tani dla firmy i bezproblemowy dla klientów. W tej strategii zysk pochodzi z każdej transakcji, więc głównym kryterium sukcesu strategii tego typu jest skala sprzedaży. Firmy stosujące strategie tego rodzaju oferują zatem niewielką liczbę produktów (różnorodność jest wrogiem efektywności), stosują małe marże (aby konkurować ceną) ale realizują dużą liczbę transakcji.

Strategia bliskich stosunków z klientami (ang. customer intimacy)
Służy dostarczaniu wartości typu najlepsze rozwiązanie całościowe (ang. best total solution) klientom szukającym rozwiązania najlepszego in total m.in. za cenę utraty części niezależności. Liderzy dostarczania wartości best total solution zarabiają na szerokości i długości relacji z klientem. Realizują to poprzez oferowanie im dopasowanych produktów w dopasowany sposób. Posiadają więc w ofercie szeroki zakres customizowanych produktów i muszą potrafić budować z nich dopasowane rozwiązania całościowych problemów klienta.

Strategia przywództwa produktowego (ang. product leadership)
Służy dostarczaniu wartości typu najlepszy produkt (ang. best product) skierowanej do klientów ceniących sobie produkty najlepsze z możliwych, najmodniejsze ale przez to przeważnie droższe. Źródłem sukcesu liderów tej strategii jest zwinność: szybkość w zidentyfikowaniu nowego wynalazku lub pomysłu, szybkość wytworzenia nowego produktu oraz szybkość i głośność wprowadzenia go na rynek.

Zdolności biznesowe dla różnych typów strategii

Wg Treacy i Wiersema liderzy muszą wybrać jeden rodzaj strategii i doskonalić się w jej realizacji aż zostaną mistrzami świata w dostarczaniu jednego rodzaju wartości. Wybrać, tzn. m.in. określić i doskonalić te zdolności biznesowe, które są kluczowe w dostarczaniu wybranego rodzaju wartości. Skoro firmy wybierające różne rodzaje strategii dostarczają różne rodzaje wartości, to nie trudno się domyślić, że dla każdej ze strategii inne zdolności biznesowe będą kluczowymi zdolnościami firmy:

Zdolności biznesowe w strategii operational excellence
W strategii operational excellence strategicznymi zdolnościami decydującymi o przewadze konkurencyjnej są efektywne, zestandaryzowane procesy produkcji i dostarczania oraz sprzedaży i obsługi. Nie da się ich jednak zbudować raz na zawsze, więc obok ww. procesów ważnymi umiejętnościami firmy będą umiejętność zarządzania tymi procesami oraz umiejętność ciągłego doskonalenia ich jakości i efektywności.

Zdolności biznesowe w strategii customer intimacy
W strategii typu customer intimacy źródłem zysku jest relacja z klientem. Strategicznymi zdolnościach takich firm będą więc: pozyskiwanie klientów posiadających potencjał na długą współpracę (jednorazowy klient to kiepski klient), gromadzenie szerokiej wiedzy o kliencie, rozwój relacji z klientem, customizowanie produktów i budowanie z nich dopasowanych rozwiązań. Doskonalenie polega tutaj na customizowaniu obsługi oraz pogłębianiu doświadczenia i wiedzy firmy (ekspertyzy) w dziedzinie rozwiązywanych problemów klientów.

Zdolności biznesowe w strategii product leadership
Wreszcie dla  firmy stosującej strategię typu product leadership strategicznymi zdolnościami będą pozyskiwanie nowych pomysłów i identyfikowanie okazji (również spoza firmy), szybka i głośna komercjalizacja produktu, praca nad rynkiem: edukacja, wydarzenia, programy early adopters, R&D (ang. research and devcelopment), innowacyjność (proces biznesowy), kreatywność oraz zarządzanie ryzykiem (każde nowe przedsięwzięcie jest obarczone wysokim ryzykiem). Doskonalenie jest uzyskiwane poprzez stosowanie nowoczesnych technologii oraz skracanie czasu R&D.

Zdolności IT dla różnych typów strategii

Skoro dla firm stosujących różne typy strategii różne zdolności biznesowe mają znaczenie strategiczne (tzn. firma musi je umieć robić lepiej od konkurentów), to podobnie będzie z technologiami informatycznymi używanymi do wspierania tych zdolności. Dla firm stosujących różne typy strategii różne technologie informatyczne będą miały znaczenie strategiczne. Zanim jednak przejdę do opisywania różnic w stosowaniu IT w poszczególnych typach strategii, poklasyfikujemy sobie same technologie. B.Ballengee proponuje taką oto ciekawą klasyfikację:




gdzie:
  • IT core'owe, to: CRM, ERP, Manufacturing Execution Systems (MES), Warehouse Management Systems (WMS), Human Resource Information System (HRIS)
  • IT brzegowe dzieli się na 4 rodzaje:
    - visibility: portale dla pracowników, klientów, dostawców …
    - semantic integrity: integracje wewnątrz i między-firmowe EAI,FTP, SOA, web services,
    - analytics: data marts, database marketing
    - reach: wireless field sales and service, customer alerts

IT w firmach doskonałych operacyjnie
W firmach stosujących strategie typu operational excellence, głównym zadaniem IT będzie wspieranie procesów biznesowych - stosowane technologie informatyczne decydują o ich efektywności i niezawodności. Największą wartość strategiczna będzie wiec miało IT core'owe (ogolnofirmowe): wysokowolumenowe, niskokosztowe systemy transakcyjne i zestandaryzowane aplikacje (wszelka różnorodność jest wrogiem efektywności).

Przy budowie architektury IT takich firm znajdą zastosowanie rozwiązania best of breed, czyli integrowanie produktów typu COTS (ang. commercial of the shelf - produkty z półki) pochodzących od różnych dostawców lub best of suite, czyli preintegrowane zestawy COTS’ów pochodzących od jednego dostawcy. Stosowanych systemów COTS się nie customizuje, tylko dopasowuje się do nich procesy biznesowe firmy. W takich firmach zastosowanie znajdą również rozwiązania cloud'owe typu SaaS (ang. software as a service) zapewniając dostęp do procesów biznesowych światowej klasy.

Strategicznymi zadaniami stojącym przez nadzorem IT w takich firmach (którego elementem jest architektura korporacyjna) jest pilnowanie standardów, eliminowanie redundancji, maksymalizacja reużycia i finansowanie ogólnofirmowych zdolności IT.

IT w firmach o bliskich stosunkach z klientami
W firmach stosujących strategię customer intimacy głównym zadaniem technologii informatycznych będzie standaryzacja i dostęp danych o kliencie oraz integracja procesów biznesowych możliwa dzięki standaryzowaniu współdzielonych lub wymienianych danych. Największą wartość będą więc miały brzegowe technologie informatyczne stosowane i rozwijane blisko klienta, ale z zachowaniem ogólnofirmowych standardów technologicznych i standardów danych. Najważniejsze zdolności IT w takich firmach, to jeden widok klienta (ang. single view of customer), narzędzia do identyfikacji segmentów i potrzeb klientów, narzędzia do analizy wartości klienta i możliwości jej zwiększania (cross selling).

Patrząc na architekturą IT takich firm w centrum znajdziemy ogólnofirmowy system CRM do standaryzacji danych o klientach i integracji procesów a także standardowe platformy aplikacyjne i workflow’owe oraz rozwiązania cloud’owe typu PaaS (ang. platform as a service). Na brzegu, blisko klientów, aplikacje niestandardowe, często zmienne, rozwijane przez lokalne zespoły informatyków, ale koniecznie z zachowaniem standardów danych i technologicznych.

Strategicznymi zadaniami stojącym przez nadzorem IT w takich firmach (którego elementem jest architektura korporacyjna) będzie standaryzacja danych i wykorzystywanych technologii, właścicielstwo danych o kliencie, spójność w zarządzaniu i użyciu danych o klientach oraz decydowanie gdzie customizować, w jakim stopniu a gdzie nie.

IT u liderów produktowych
W firmach stosujących strategię product leadership głównymi zadaniami technologii informatycznych będzie wsparcie R&D oraz wsparcie współpracy pomiędzy ludźmi biorącymi udział w tych procesach. Więc strategiczną wartość będą miały np. narzędzia do modelowania i symulacji oraz systemy do współpracy.

Jeśli natomiast chodzi o architekturę IT: na brzegu znajdziemy aplikacje niestandardowe, pochodzące od dostawców niszowych, jak najbardziej zaawansowane natomiast standaryzacja ograniczy się do jedynie do usług infrastrukturalnych, więc zastosowania znajdą rozwiązania cloud’owe typu IaaS (ang. infrastructure as a service).

Nadzór IT w takich firmach będzie się zajmował głównie określaniem stopnia autonomii jednostek odpowiedzialnych za innowacje, decydowaniem co reużywać/standaryzować a co nie oraz decydowaniem co integrować (jaka standaryzacja danych jest potrzebna).

Podsumowanie podejść do zastosowań technologii informatycznych w przedsiębiorstwach realizujących różne typy strategii przedstawia poniższa tabela.


Zakończenie

Po 20 latach od powstania koncepcja Treacy & Wiersema klasyfikacji typów strategii biznesowych jest wciąż szeroko stosowana w literaturze biznesowej i akademickiej. Pomimo, że modele biznesowe i zastosowania technologii informatycznych znacznie się od tamtego czasu rozwinęły, to zaproponowany sposób myślenia wciąż znajduje zastosowanie.

Mnie koncepcja ta pozwala mi na lepsze zrozumienie strategii firmy, ułatwia mi identyfikowanie braków tej strategii, ukierunkowuje moje myślenie przy projektowaniu architektury strategicznej IT, pomaga w ocenie dopasowania i przy projektowaniu odpowiedniego nadzoru IT, pozwala zidentyfikować zdolności biznesowe i IT istotne strategiczne (które powinny być realizowane wewnątrz przedsiębiorstwa) i odróżnić je od zdolności wspierających (które można outsource’ować). Pozwala mi szybko ocenić, czy dany projekt, rozwiązanie jest zgodny ze strategią (typem strategii), czy jest neutralny, czy też wręcz degraduje potencjał istotny strategicznie.

Generalnie - koncepcja Treacy & Wiersema pozwala mi lepiej dopasowywać architekturę IT do długoterminowego sposobu działania firmy. Poprzez fokusowanie myślenia pozwala mi budować strategicznie dopasowaną (nie do strategii, ale do typu strategii) architekturę korporacyjną. O konkretnych zasadach fokusujących, czyli o pryncypiach architektonicznych, napiszę w następnym artykule.

Bibliografia

  • Ballengee B., Enterprise Architecture: Time for IT to Break Out! [w:] Kappelman L. A. (ed), The SIM Guide to Enterprise Architecture,  Auerbach Publications, 2009.
  • Treacy M., Wiersema F., Customer Intimacy and Other Value Disciplines, Harward Business Review, January-February, 1993, s.84-93.
  •  Weill P., Ross J.W., IT Governance - How Top Performers Manage IT Decision Rights for Superior Results, HARVARD BUSINESS SCHOOL PRESS, MASSACHUSETTS, 2004.