Metody kaskadowania. Nowoczesne zarządzanie personelem: Kaskadowanie celów, czyli Jak przekazać strategię każdemu pracownikowi? Docelowa technologia kaskadowa

Lojalność pracowników każdej firmy wzrasta, jeśli znają jej strategię i wyobrażają sobie swój niewielki wkład w jej realizację. Przykładem ucieleśnienia tej idei może być duża organizacja o nazwie Związek Radziecki: cel strategiczny budowy socjalizmu był znany wszystkim, a zwykły górnik doskonale rozumiał, że wydobyte przez niego tony węgla w jednostce czasu były niezbędne do osiągnięcia To.

Już sam fakt komunikowania strategii motywuje pracowników („rozumiem, dokąd zmierzamy i co będzie się działo z firmą za trzy lata”). Dodatkowa motywacja pojawia się, gdy pracownik wie, co osobiście musi zrobić, aby osiągnąć wspólny cel. Narzędziem, które pomoże każdemu zakomunikować strategię firmy, mogą być cele kaskadowe w systemie Balanced Scorecard.

Typowy problem zarządzanie strategiczne- nieznajomość strategii przez osoby powołane do jej wdrożenia. Oczywiście sam fakt świadomości nie oznacza, że ​​każdy pracownik będzie oceniał swoje działania pod kątem korzyści dla wspólnej sprawy. Możesz zwiększyć gotowość personelu do udziału w realizacji strategii, jeśli włączysz go w rozwój działań mających na celu osiągnięcie celów strategicznych firmy, a także jeśli połączysz materiały i motywacja niematerialna z osiągnięciem celów strategicznych. Innymi słowy, pracownik będzie skupiony na realizacji strategii firmy, jeśli:

  • zna i rozumie strategię firmy jako całości;
  • dostrzega jego wkład w realizację strategii;
  • reprezentuje wkład współpracowników w realizację strategii;
  • brał udział w opracowywaniu działań niezbędnych do osiągnięcia celów strategicznych;
  • brał udział w opracowywaniu systemu celów i wskaźników dla swojej jednostki strukturalnej (stanowiska);
  • zmotywowany (finansowo i/lub niematerialnie) do osiągnięcia docelowych wartości przyjętych wskaźników;
  • posiada zasoby, wiedzę, umiejętności i infrastrukturę niezbędną do osiągnięcia swoich celów.

System Balanced Scorecard (BSC) został opracowany przez profesorów Kaplana i Nortona specjalnie jako narzędzie do wdrażania strategii. Po zidentyfikowaniu kluczowych celów w projekcjach „finanse”, „klienci”, „procesy biznesowe” i „infrastruktura/personel”, opracowywany jest zestaw wskaźników monitorujących ich realizację i ustalane są wartości docelowe dla tych wskaźników. Następnie zastanawiają się nad głównymi działaniami zmierzającymi do osiągnięcia celów. Opcja podstawowa Systemy BSS przedstawiono w tabeli. 1. A rozszerzony obejmuje wskaźniki nie tylko celów, ale także działań, polega na wskazaniu jednostek zaangażowanych w ich realizację, a także budżetów i harmonogramu ich realizacji (tabela 2).

Tabela 1. Podstawowa wersja systemu Balanced Scorecard
(firma - dostawca Internetu)

Należy pamiętać, że ten czy inny cel (na przykład „zapewnienie napływu nowych klientów”) osiąga się nie tylko poprzez specjalne wydarzenia. Należy także uwzględnić wpływ działań związanych z innymi celami tej samej prognozy oraz z celami innych prognoz (np. „procesy biznesowe” i „infrastruktura/personel”). Jednocześnie wielokrotna wzmianka w lista ogólna tego czy innego wydarzenia w kontekście różnych celów narusza zasadę zwartości – jedną z kluczowych przy budowaniu systemu BSC. Dlatego zaleca się powiązanie tego lub innego wydarzenia z jednym celem - tym, do którego przyczynia się w największym stopniu.

Tabela 2. Rozbudowana wersja systemu Balanced Scorecard
(firma - producent konstrukcji budowlanych)

Opcja systemu BSC pokazana w tabeli. 2, wyjaśnia poszczególnym jednostkom strukturalnym dokładnie, w jakich działaniach niezbędnych do osiągnięcia celów strategicznych uczestniczą i za pomocą jakich wskaźników będą oceniane rezultaty tych działań. Zawiera także informacje o budżecie poszczególnych działań i harmonogramie ich realizacji.

Istnieje jednak bardziej szczegółowa wersja BSC, która polega na budowaniu systemu celów, wskaźników i działań dla jednostki podziały strukturalne(tj. kaskadowe). Dzięki temu każda jednostka strukturalna przedsiębiorstwa (wydział, oddział, oddział itp.) posiada własny system BSC („mapa”), odzwierciedlający kluczowe cele tych jednostek, ich wskaźniki oraz działania niezbędne do ich osiągnięcia. „Mapa” wyjaśnia pracownikom ich udział w realizacji strategii firmy, pomaga kierownictwu ocenić pracę każdego pracownika (oddziału) i stanowi podstawę systemu motywacyjnego.

Przyjrzyjmy się głównym problemom, z jakimi borykają się firmy decydujące się na kaskadowanie systemu BSC na poziomy pionów strukturalnych i niżej.

PROJEKCJE NA POZIOMIE PRZEDZIAŁÓW KONSTRUKCYJNYCH

Zazwyczaj system BSC najwyższego poziomu ma cztery perspektywy: finanse, klienci, procesy biznesowe i infrastruktura/personel. Wspólne cele Firmy sformułowane w ramach tych prognoz zwykle tworzą łańcuch przyczynowo-skutkowy. Logika rozumowania jest taka, że ​​jest wykwalifikowana i zmotywowanych pracowników korzystając z rozwiniętej infrastruktury (sprzęt, oprogramowanie, flota transportowa itp.) są w stanie zapewnić potrzebne firmy jakość i szybkość procesów biznesowych. Usprawnione procesy biznesowe zapewniają przewagę nad konkurencją i przyczyniają się do zadowolenia klientów. Zadowoleni klienci i przewagi konkurencyjne z kolei stanowią przesłanki osiągnięcia celów finansowych (ryc. 1).


Obrazek 1.Łańcuchy przyczynowo-skutkowe celów w systemie BSC

Jak zastosować to w praktyce? Cele na „mapie” najwyższego poziomu są zapisywane począwszy od projekcji „finansowej”. Przede wszystkim firma musi odpowiedzieć sobie na pytanie: „Ile chcemy zarabiać i ile będziemy wydawać?” Drugie pytanie brzmi w następujący sposób: „Co powinniśmy zrobić, aby nasi klienci osiągnęli swoje cele finansowe?” Trzeci dotyczy projekcji „procesów biznesowych”: „Jak powinna być zorganizowana praca firmy, aby osiągnąć cele w ramach projekcji „klient” i „finanse”?” I wreszcie czwarte pytanie dotyczy tego, jakiego personelu i infrastruktury potrzebuje firma, aby osiągnąć cele z trzech głównych prognoz.

Jeśli chodzi o liczbę prognoz na poziomie spółki jako całości, w praktyce może być ona różna. Zazwyczaj, mówimy o o wydzielenie aspektu szczególnie istotnego dla firmy w osobną projekcję (np. „dostawcy”, „państwo”) i dodanie go do czterech „klasycznych”. Oczywiście, jeśli jest taka potrzeba, relacje firmy z dostawcami można rozpatrywać w projekcji „Procesy biznesowe”, a z państwem – w projekcji „rynek/klienci”.

System BSC na poziomie pionów strukturalnych zazwyczaj powtarza swój model na poziomie przedsiębiorstwa jako całości. Każdy oddział ma zwykle swoje własne „finanse” (na przykład budżet działu i kwotę przeznaczoną na premie), własnych „klientów” (współpracowników), własne „procesy biznesowe” („globalne” procesy firmy jako całości , w którym uczestniczy jednostka strukturalna, oraz procesy „lokalne” zachodzące w obrębie jednostki strukturalnej), a także własną „infrastrukturę/kadrę”. W ten sposób system BSC zamienia jednostkę strukturalną ( Zakład produkcyjny, dział logistyki, dział finansowy, dział IT itp.) w mini-firmę w ramach firmy. Każda jednostka strukturalna rozumie, że potrzebuje wykwalifikowanej kadry i rozwiniętej infrastruktury, aby szybko i sprawnie realizować swoją pracę (projekcja „procesów biznesowych”). Aby jednostka strukturalna mogła skutecznie współdziałać z klientami wewnętrznymi (współpracownikami z innych działów lub zarządem firmy), niezbędne są dobrze funkcjonujące procesy. To, jak skuteczna będzie ta interakcja, zależy między innymi od wyniki finansowe działów (zgodność z budżetem, otrzymanie zaplanowanej kwoty premii). Inaczej mówiąc, każdy dział strukturalny przedsiębiorstwa sprzedaje swój produkt (usługę) klientom wewnętrznym (i zewnętrznym), starając się w jak największym stopniu zaspokoić ich oczekiwania. Dlatego wewnętrzny wskaźnik satysfakcji klienta (colleague score) w firmach oparty na tej logice biznesowej jest standardowym wskaźnikiem w prawie wszystkich działach.

Możliwe są także modyfikacje „klasycznego” modelu BSC dla jednostek konstrukcyjnych. Przykładowo w systemie BSC jednego ze wschodnioeuropejskich zakładów dużego koncernu motoryzacyjnego znajdują się tylko trzy projekcje: „finanse”, „procesy biznesowe” i „infrastruktura/personel”. Odpada projekcja „klientów”: sam zakład nie powinien szukać klientów, ponieważ wszystkie zamówienia przychodzą do niego od koncernu, a model biznesowy nie przewiduje interakcji z klientami zewnętrznymi. Ściśle rzecz biorąc, klientami tego zakładu są inne przedsiębiorstwa koncernu, do którego dostarcza swoje produkty (części samochodowe). Kierownictwo zakładu uznało jednak, że w ramach projekcji „procesów biznesowych” można prześledzić aspekty relacji z innymi przedsiębiorstwami w ramach koncernu. Głównymi wskaźnikami, które poddano analizie, był odsetek usterek, liczba terminowo zrealizowanych zamówień oraz liczba reklamacji od klientów wewnętrznych.

Ciąg dalszy nastąpi

Typowym problemem zarządzania strategicznego jest nieznajomość strategii przez tych, którzy mają ją realizować. Oczywiście sam fakt świadomości nie oznacza, że ​​każdy pracownik będzie oceniał swoje działania pod kątem korzyści dla wspólnej sprawy. Możesz zwiększyć chęć personelu do udziału w realizacji strategii, jeśli zaangażujesz go w rozwój działań mających na celu osiągnięcie celów strategicznych firmy, a także jeśli powiążesz motywację materialną i niematerialną z osiągnięciem celów strategicznych . Innymi słowy, pracownik będzie skupiony na realizacji strategii firmy, jeśli:
  • zna i rozumie strategię firmy jako całości;
  • dostrzega jego wkład w realizację strategii;
  • reprezentuje wkład współpracowników w realizację strategii;
  • brał udział w opracowywaniu działań niezbędnych do osiągnięcia celów strategicznych;
  • brał udział w opracowywaniu systemu celów i wskaźników dla swojej jednostki strukturalnej (stanowiska);
  • zmotywowany (finansowo i/lub niematerialnie) do osiągnięcia docelowych wartości przyjętych wskaźników;
  • posiada zasoby, wiedzę, umiejętności i infrastrukturę niezbędną do osiągnięcia swoich celów.

System Balanced Scorecard (BSC) został opracowany przez profesorów Kaplana i Nortona specjalnie jako narzędzie do wdrażania strategii. Po zidentyfikowaniu kluczowych celów w projekcjach „finanse”, „klienci”, „procesy biznesowe” i „infrastruktura/personel”, opracowywany jest zestaw wskaźników monitorujących ich realizację i ustalane są wartości docelowe dla tych wskaźników. Następnie zastanawiają się nad głównymi działaniami zmierzającymi do osiągnięcia celów. Podstawową wersję systemu BSS przedstawiono w tabeli. 1. A rozszerzony obejmuje wskaźniki nie tylko celów, ale także działań, polega na wskazaniu jednostek zaangażowanych w ich realizację, a także budżetów i harmonogramu ich realizacji (tabela 2).

Tabela 1. Podstawowa wersja systemu Balanced Scorecard
(firma - dostawca Internetu)

Należy pamiętać, że ten czy inny cel (na przykład „zapewnienie napływu nowych klientów”) osiąga się nie tylko poprzez specjalne wydarzenia. Należy także uwzględnić wpływ działań związanych z innymi celami tej samej prognozy oraz z celami innych prognoz (np. „procesy biznesowe” i „infrastruktura/personel”). Jednocześnie wielokrotne wspominanie o konkretnym wydarzeniu na liście ogólnej w kontekście różnych celów narusza zasadę zwartości - jedną z kluczowych przy budowaniu systemu BSC. Dlatego zaleca się powiązanie tego lub innego wydarzenia z jednym celem - tym, do którego przyczynia się w największym stopniu.

Tabela 2. Rozbudowana wersja systemu Balanced Scorecard
(firma - producent konstrukcji budowlanych)

Opcja systemu BSC pokazana w tabeli. 2, wyjaśnia poszczególnym jednostkom strukturalnym dokładnie, w jakich działaniach niezbędnych do osiągnięcia celów strategicznych uczestniczą i za pomocą jakich wskaźników będą oceniane rezultaty tych działań. Zawiera także informacje o budżecie poszczególnych działań i harmonogramie ich realizacji.

Istnieje jednak bardziej szczegółowa wersja BSC, która polega na budowaniu systemu celów, wskaźników i działań dla poszczególnych jednostek strukturalnych (czyli kaskadowaniu). Dzięki temu każda jednostka strukturalna przedsiębiorstwa (wydział, oddział, oddział itp.) posiada własny system BSC („mapa”), odzwierciedlający kluczowe cele tych jednostek, ich wskaźniki oraz działania niezbędne do ich osiągnięcia. „Mapa” wyjaśnia pracownikom ich udział w realizacji strategii firmy, pomaga kierownictwu ocenić pracę każdego pracownika (oddziału) i stanowi podstawę systemu motywacyjnego.

Przyjrzyjmy się głównym problemom, z jakimi borykają się firmy decydujące się na kaskadowanie systemu BSC na poziomy pionów strukturalnych i niżej.

PROJEKCJE NA POZIOMIE PRZEDZIAŁÓW KONSTRUKCYJNYCH

Zazwyczaj system BSC najwyższego poziomu ma cztery perspektywy: finanse, klienci, procesy biznesowe i infrastruktura/personel. Ogólne cele przedsiębiorstwa, sformułowane w ramach tych prognoz, zwykle tworzą łańcuch przyczynowo-skutkowy. Logika rozumowania jest taka, że ​​wykwalifikowani i zmotywowani pracownicy, wykorzystując rozwiniętą infrastrukturę (sprzęt, oprogramowanie, flotę transportową itp.), są w stanie zapewnić wymaganą przez firmę jakość i szybkość procesów biznesowych. Usprawnione procesy biznesowe zapewniają przewagę nad konkurencją i przyczyniają się do zadowolenia klientów. Z kolei zadowoleni klienci i przewaga konkurencyjna są warunkiem osiągnięcia celów finansowych (rys. 1).


Obrazek 1.

Jak zastosować to w praktyce? Cele na „mapie” najwyższego poziomu są zapisywane począwszy od projekcji „finansowej”. Przede wszystkim firma musi odpowiedzieć sobie na pytanie: „Ile chcemy zarabiać i ile będziemy wydawać?” Drugie pytanie brzmi: „Co musimy zrobić, aby nasi klienci osiągnęli swoje cele finansowe?” Trzeci dotyczy projekcji „procesów biznesowych”: „Jak powinna być zorganizowana praca firmy, aby osiągnąć cele w ramach prognozy „klient” i „finanse”?” I wreszcie czwarte pytanie dotyczy tego, jakiego rodzaju personelu i infrastruktury potrzebuje firma, aby osiągnąć cele w ramach trzech głównych prognoz.

Jeśli chodzi o liczbę prognoz na poziomie spółki jako całości, w praktyce może być ona różna. Z reguły mówimy o wydzieleniu aspektu szczególnie istotnego dla firmy w osobnej projekcji (np. „dostawcy”, „rząd”) i dodaniu go do czterech „klasycznych”. Oczywiście, jeśli jest taka potrzeba, relacje firmy z dostawcami można rozpatrywać w projekcji „Procesy biznesowe”, a z państwem – w projekcji „rynek/klienci”.

System BSC na poziomie pionów strukturalnych zazwyczaj powtarza swój model na poziomie przedsiębiorstwa jako całości. Każdy oddział ma zwykle swoje własne „finanse” (na przykład budżet działu i kwotę przeznaczoną na premie), własnych „klientów” (współpracowników), własne „procesy biznesowe” („globalne” procesy firmy jako całości , w którym uczestniczy jednostka strukturalna, oraz procesy „lokalne” zachodzące w obrębie jednostki strukturalnej), a także własną „infrastrukturę/kadrę”. W ten sposób system BSC przekształca jednostkę strukturalną (dział produkcyjny, dział logistyki, dział finansowy, dział IT itp.) w mini-firmę w przedsiębiorstwie. Każda jednostka strukturalna rozumie, że potrzebuje wykwalifikowanej kadry i rozwiniętej infrastruktury, aby szybko i sprawnie realizować swoją pracę (projekcja „procesów biznesowych”). Aby jednostka strukturalna mogła skutecznie współdziałać z klientami wewnętrznymi (współpracownikami z innych działów lub zarządem firmy), niezbędne są dobrze funkcjonujące procesy. Od tego, jak skuteczna będzie ta interakcja, zależą także wyniki finansowe działu (zgodność z budżetem, otrzymanie zaplanowanej kwoty premii). Inaczej mówiąc, każdy dział strukturalny przedsiębiorstwa sprzedaje swój produkt (usługę) klientom wewnętrznym (i zewnętrznym), starając się w jak największym stopniu zaspokoić ich oczekiwania. Dlatego wewnętrzny wskaźnik satysfakcji klienta (ocena współpracowników) w firmach oparty na tej logice biznesowej jest standardowym wskaźnikiem w prawie wszystkich działach.

Możliwe są także modyfikacje „klasycznego” modelu BSC dla jednostek konstrukcyjnych. Przykładowo w systemie BSC jednego ze wschodnioeuropejskich zakładów dużego koncernu motoryzacyjnego znajdują się tylko trzy projekcje: „finanse”, „procesy biznesowe” i „infrastruktura/personel”. Odpada projekcja „klientów”: sam zakład nie powinien szukać klientów, ponieważ wszystkie zamówienia przychodzą do niego od koncernu, a model biznesowy nie przewiduje interakcji z klientami zewnętrznymi. Ściśle rzecz biorąc, klientami tego zakładu są inne przedsiębiorstwa koncernu, do którego dostarcza swoje produkty (części samochodowe). Kierownictwo zakładu uznało jednak, że w ramach projekcji „procesów biznesowych” można prześledzić aspekty relacji z innymi przedsiębiorstwami w ramach koncernu. Głównymi wskaźnikami, które poddano analizie, był odsetek usterek, liczba terminowo zrealizowanych zamówień oraz liczba reklamacji od klientów wewnętrznych.

Czasami używane są opcje z dużą liczbą projekcji. Na „mapie” najwyższego poziomu jednej firmy inżynieryjno-budowlanej - regionalnego dealera dużego światowego producenta konstrukcji budowlanych - zidentyfikowano sześć prognoz: „finanse”, „klienci”, „dostawca” (ze względu na szczególne znaczenie dla strategia firmy), „procesy biznesowe”, „infrastruktura” i „personel”. Kaskadowanie systemu BSC na drugi poziom polegało na opracowaniu kluczowych celów, wskaźników i działań z jednej strony dla realizacji projektów firmy, a z drugiej dla jednostek strukturalnych zaangażowanych w te projekty (sprzedaż, logistyka, projektowanie , konstrukcyjny i finansowy). Na „mapie” znalazło się także sześć prognoz poziomu projektu i poziomu podziałów strukturalnych. Inaczej mówiąc, celem nadrzędnym (np. utrzymanie i doskonalenie relacji z głównym dostawcą) był cel firmy jako całości i każdego pracownika z osobna. To samo dotyczyło zapewnienia satysfakcji klientów wewnętrznych, utrzymywania standardów korporacyjnych i osiągania celów w zakresie wyników finansowych.

Jak powstają „mapy” celów i wskaźników jednostek strukturalnych?

Budowanie „mapy” celów, wskaźników i działań dla jednostek strukturalnych (kaskadowanie) jest najsłabiej rozwiniętą (zarówno w teorii, jak i praktyce) częścią systemu BSC. Wynika to częściowo z „dziecinnego” wieku samej koncepcji i, co za tym idzie, braku doświadczenia. Istnieje jednak ogólny algorytm kaskadowy:

  1. Po stworzeniu systemu celów strategicznych i wskaźników najwyższego szczebla (jako całości firmy) opracowywany jest pakiet działań niezbędnych do osiągnięcia celów strategicznych.
  2. Dla każdego wydarzenia ustalane są wskaźniki, na podstawie których określa się powodzenie jego realizacji, pracę uczestników (w tym odpowiedzialnych) oraz, jeśli to konieczne, budżet i terminy.
  3. Tworzy się matryca, na której jednej osi znajdują się wszystkie działania, a na drugiej wszystkie jednostki strukturalne. Na podstawie tej macierzy można określić:
      a) jakie jednostki strukturalne są zaangażowane w realizację danego działania;
      b) w jakich działaniach uczestniczy ta lub inna jednostka strukturalna.

    Na podstawie wygenerowanej matrycy sporządzane są „mapy” celów, wskaźników i działań dla jednostek strukturalnych. Z punktu widzenia dyrektor generalny działania są często celami tej czy innej jednostki strukturalnej.

  4. Ustalana jest lista prognoz, w ramach której zostaną opracowane cele, wskaźniki i działania pionów strukturalnych (przeważnie są to prognozy „klasyczne”: „finanse”, „klienci”, „procesy biznesowe” i „infrastruktura/personel”) ).
  5. Każda jednostka strukturalna, w oparciu o opracowaną matrycę działań i własne rozważania, musi określić, w jaki sposób przyczyni się do osiągnięcia celów strategicznych sformułowanych na „mapie” przedsiębiorstwa. Oprócz systemu celów firmy i matrycy działań, system BSC opiera się na wstępnej analizie mocnych stron i Słabości tę jednostkę strukturalną. Ponadto zaleca się przeprowadzenie wewnętrznej ankiety działów, aby wyjaśnić, jakich produktów (usług) potrzebują od innych działów i jakie produkty (usługi) sami przekazują do innych działów strukturalnych.
  6. Każda jednostka strukturalna formułuje swoje kluczowe cele w projekcjach systemu BSC, określa wskaźniki niezbędne do ich pomiaru i oceny oraz opracowuje działania niezbędne do osiągnięcia celów (tworzenie „mapy” w oparciu o zasadę „oddolną” ).
  7. Równolegle, w oparciu o te same podstawowe informacje (pkt 5), tworzone są warianty „map” dla podziałów strukturalnych na zasadzie „od góry do dołu”. Mogą tego dokonać menedżerowie wyższego szczebla, specjalnie utworzona centrala Grupa robocza lub konsultanci zewnętrzni (możliwe i odpowiednie są opcje łączone).
  8. Wersję „mapy” jednostki strukturalnej X, stworzoną przez nią samodzielnie („oddolnie”), porównuje się z wersją „mapy” opracowaną dla tej jednostki przez władzę scentralizowaną lub zewnętrznych konsultantów („odgórnie”). ”). Zidentyfikowane różnice są omawiane, w wyniku czego opracowywana jest opcja kompromisowa (system celów, wskaźników, wartości docelowych i działań).
  9. Dodatkowo monitorują powiązanie systemu BSC z systemem budżetowania, raportowaniem wewnętrznym i motywacją pracowników.

Oczywiście, jeśli pracownicy zaangażują się w tworzenie „map”, stopień ich oporu wobec zmian (innowacji) będzie znacznie niższy. Ponadto zazwyczaj oferują wiele przydatnych pomysłów na temat możliwych działań, projektów i inicjatyw, które pomogą osiągnąć strategiczne cele firmy.

LINK DO SYSTEMÓW RACHUNKOWOŚCI BUDŻETOWEJ I ZARZĄDZAJĄCEJ

Jeśli jednostka strukturalna ma własną prognozę „finansową”, uważa się ją za ośrodek odpowiedzialności finansowej. Zakłada to oczywiście, że firma posiada systemy budżetowania i rachunkowość zarządcza, a w idealnym przypadku system cen transferowych. W rachunku zysków i strat każdej jednostki strukturalnej (ośrodka odpowiedzialności finansowej) pojawi się albo „zysk” (jeżeli „przychody” wewnętrzne przekroczyły kwotę wydatków), albo „strata” (jeżeli kwota wydatków przekroczyła kwotę kosztów wewnętrznych). „przychody”) lub „0” (jeżeli kwota wydatków odpowiada kwocie „przychodów”) wewnętrznych. Cele finansowe podziały strukturalne wiążą się z reguły z osiągnięciem zaplanowanych wartości klucza wskaźniki finansowe. Dodatkowo w projekcji „finansowej” departamenty te uwzględniają docelową wartość premii, jaką spodziewają się otrzymać, jeśli zmieszczą się w budżecie i osiągną docelowe wartości wskaźników dla innych prognoz. Na przykład, jeśli wewnętrzny wskaźnik zadowolenia klienta („projekcja „klienci”) odpowiada planowanemu, osiągany jest średni wynik zgodnie z wynikami profesjonalnych testów, zgłaszana jest określona liczba propozycji ulepszeń („personel”), usterka wskaźnik jest spełniony, dopuszczalna liczba naruszeń standardów wewnętrznych („procesy biznesowe”).

GŁĘBOKOŚĆ KASKADOWA: CZY CZYSZCZĄCY POTRZEBUJE „MAPY”?

Po utworzeniu „mapy” celów strategicznych, wskaźników i kluczowych działań najwyższego szczebla tworzone są podobne „mapy” dla głównych zastępców dyrektora generalnego - ds. produkcji, marketingu, zaopatrzenia, finansów. Oczywiście od urzędników wyższego szczebla firmy wymaga się znajomości i zrozumienia strategii firmy jako całości oraz ich wkładu w jej realizację. Jeśli chodzi o dalsze kaskadowanie (na trzeci, czwarty itd. poziom hierarchii), wielu menedżerów wątpi w jego wykonalność. Jeden z moich znajomych (reżyser organizacja budowy) powiedział mi, że słowo „strategia” Główny inżynier jego firma jest utożsamiana z grą sprzedawaną w sklepie” Świat dziecka" I nie więcej. Ale tworząc „mapę” celów, wskaźników i działań dla swojego głównego inżyniera (drugi poziom hierarchii), reżyser ma nadzieję przekonać go, że strategia nie jest gra planszowa, ale czynnik przetrwania biznesu w warunkach rosnącej konkurencji. Dyrektor ma nadzieję w przyszłości osiągnąć poziom brygadzistów (trzeci poziom hierarchii). Kaskadowanie na czwarty poziom (murarzy, malarzy, pomocników) wydaje mu się bezużytecznym ćwiczeniem. Swoje stanowisko uzasadnia niskim poziomem wykształcenia i ogólnej kultury tych pracowników („oni nawet nie znają takich słów jak strategia”) oraz brakiem lojalności wobec firmy („dziś u mnie pracują, a jutro przeniosą się do do innej firmy”).

Innymi powodami rezygnacji z „głębokiego” kaskadowania są chęć zachowania poufności („wprowadzenie wszystkich pracowników firmy do strategii to woda na młyn konkurencji”) oraz oszczędność czasu i zasobów przeznaczanych na sporządzanie takich „map” podziałów strukturalnych. Pierwszy argument nie wytrzymuje krytyki: jeśli strategia nie będzie znana tym, którzy mają ją wdrożyć, nie zostanie wdrożona. Jeśli chodzi o drugie, istnieje wiele opinii na ten temat. Wpływ na to może mieć na przykład to, jakim typem menadżerów są menadżerowie firmy – ci, którzy zawsze pytają: „Ile nas to będzie kosztować?”, lub ci, których interesuje: „Co nam to przyniesie?” Problem w tym, że sumę „mianownika” (kosztów projektu) można mniej więcej dokładnie oszacować, natomiast sumy „licznika” (efektu realizacji projektu w formie pieniężnej) już nie. Można mówić jedynie o wzroście zarządzalności firmy, zmniejszeniu liczby konfliktów i o tym, że po wprowadzeniu systemu Balanced Scorecard zamiast 20-minutowej przerwy na lunch menadżer zaczął pozwalać sobie na jak najwięcej jak 40...

Różne są sposoby myślenia o tym, że w Hewlett Packard wszystkich 140 tysięcy pracowników ma swoje własne „mapy” kluczowych celów, wskaźników i działań. Niektórzy powiedzą, że nie dbają o pieniądze, więc bawią się zabawkami do zarządzania, a inni powiedzą, że są bardzo zadowoleni ze swojego „zaawansowanego technologicznie” laptopa i najprawdopodobniej winę za to ponosi system BSC . Według badań przeprowadzonych w 2004 roku przez Horvath & Partners w niemieckojęzycznym środowisku biznesowym (Niemcy, Austria, Szwajcaria) 75% ankietowanych firm posiada „mapę” najwyższego poziomu, 44% stworzyło takie „karty” dla szkół średnich poziomie jednostek funkcjonalnych, a 10% „przesłało” pomysł każdemu pracownikowi.

Oczywiście ogólnofirmowego systemu BSC nie tworzy się z dnia na dzień. Opracowane „mapy” drugiego poziomu są „dopracowane” i sfinalizowane przez pewien czas, ponieważ na pierwszym etapie prawie niemożliwe jest uwzględnienie wszystkich niuansów związanych z udziałem w realizacji strategii konkretnej jednostki strukturalnej . Dopiero potem rozpoczyna się kaskadowanie na trzeci i kolejne poziomy hierarchii organizacyjnej. Jednakże przerwa pomiędzy kaskadowaniem na drugi i kolejne poziomy nie powinna być zbyt duża, aby pracownicy zaangażowani w budowę systemu BSC nie stracili zapału. Ogólnie rzecz biorąc, z jednej strony trzeba się spieszyć powoli, z drugiej strony trzeba kuć żelazo, póki jest gorące.

„KARTY” DLA PODZIAŁÓW KONSTRUKCYJNYCH

Formułując cele strategiczne, firmy zazwyczaj kierują się zasadą zaproponowaną przez R. Kaplana: Dwadzieścia to dużo („Dwadzieścia wystarczy”). Inaczej mówiąc, na „mapie” firmy nie powinno znajdować się więcej niż dwadzieścia kluczowych celów (jest to przewidywalna liczba kluczowych aspektów działalności). Przy sporządzaniu „map” dywizji strukturalnych warto kierować się tą samą zasadą: np. dyrektor ds. logistyki, dyrektor ds. marketingu i dyrektor finansowy również powinni mieć po około 20 celów każdy.

Ponieważ jeden cel można zmierzyć i opisać nie jednym, ale kilkoma wskaźnikami, na „mapie” może znajdować się 40, 60 lub nawet więcej wskaźników. Ich pełna lista jest niezbędne kierownikowi jednostki strukturalnej do kompleksowej oceny swojego „lenna”, ale ocenianie jego pracy według wszystkich tych wskaźników jest mało wskazane. Po pierwsze, niektóre wskaźniki po prostu informują o stanie konkretnej jednostki organizacyjnej, ale nie są bezpośrednio powiązane z wynikami pracy pracowników tej jednostki. Przykładowo stopień zużycia tartaków zakupionych niedawno do tartaku (użytkowanych przez inną firmę) może zainteresować dyrektora generalnego (projekcja „infrastruktury”), ale trudno na jego podstawie ocenić funkcjonowanie tego tartaku. jednostka konstrukcyjna (w odróżnieniu od, powiedzmy, odsetka usterek, liczby reklamacji wewnętrznych czy wolumenu zamówień zrealizowanych na czas).

Po drugie, zbyt duża liczba wskaźników utrudnia postrzeganie informacji. Warto w tym miejscu przypomnieć znaną zasadę Pareto i założyć, że uwzględnienie 20% wskaźników pozwala ocenić sukces konkretnej jednostki organizacyjnej o 80%. Innymi słowy, zaleca się wybrać te kluczowe z listy wskaźników danej jednostki, a resztę uznać za dodatkowe. Kluczowe wskaźniki jednostki strukturalnej są przeglądane przez wyższą kadrę kierowniczą w określonych odstępach czasu, a ich pełna lista (wraz z dodatkowymi) jest niezbędna pracownikom tej jednostki, aby mogli wykonywać swoje zadania terminowo i wysokiej jakości ( w ramach ustalonych budżetów).

Przykładowo system BSC wspomnianej firmy inżynieryjno-budowlanej obejmuje 17 celów strategicznych i 41 wskaźników. Z tej listy kierownictwo firmy wybrało 9 kluczowych, służących do operacyjnego monitorowania pracy działu:

  • odchylenie od planu kosztów działu;
  • zobowiązania do zapłaty jako procent zakupów;
  • liczba skarg wewnętrznych;
  • liczba naruszeń algorytmu współpracy z głównym dostawcą;
  • czas przestoju spowodowany brakiem niezbędnych zasobów;
  • liczba naruszeń planowanych terminów dostaw;
  • procent wad zakupionych zasobów;
  • koszty zawarcia małżeństwa;
  • liczba niezgodności listy zakupów ze specyfikacją.

Rozszerzona lista wskaźników (zakładająca rzadsze monitorowanie wartości przez kierownictwo lub zawierająca wskaźniki przeznaczone do wykorzystania w obrębie działu) obejmuje następujące wartości:

  • kwota zakupu;
  • wielkość zaległych zobowiązań;
  • stała część wynagrodzenia pracowników działu;
  • zmienna część wynagrodzenia;
  • punktowa ocena pracy pracowników działu przez współpracowników;
  • procent zgodności kwalifikacji pracowników z docelowym zestawem kompetencji;
  • ogólny wskaźnik zadowolenia personelu itp.

PODŁĄCZENIE „KARTY” Z SYSTEMEM MOTYWACYJNYM

Bezpośrednie uzależnienie wynagrodzeń od osiągania wskaźników docelowych jest zagadnieniem złożonym. Warto zrozumieć, że 2% odchylenie od docelowej wartości wskaźnika X z punktu widzenia całej firmy może być bardziej problematyczne niż 10% odchylenie wskaźnika Y. Dlatego też odpowiedź na pytanie o powiązania „mapy” celów i wskaźników z systemem motywacyjnym, często stosują system wag, przypisując każdemu wskaźnikowi określony poziom istotności. Ważne jest również, aby nie dopuścić do sytuacji w kompanii, która rozwinęła się na jednym ze statków: kapitan dawał marynarzom premie za każdego złapanego szczura. Stworzony przez niego system motywacyjny doprowadził do tego, że marynarze zaczęli aktywnie hodować szczury, aby maksymalizować przychody z ich sprzedaży...

Budując system motywacyjny w BSC często trzeba rozwiązać następujący dylemat. Z jednej strony system motywacyjny powinien w miarę możliwości uwzględniać realizację całego spektrum celów (w przeciwnym razie pracownicy mogą koncentrować się wyłącznie na celach, z którymi ten system jest powiązany, pomijając pozostałe cele), z drugiej strony, powinno być proste i zrozumiałe (a zatem zakładać uwzględnienie ograniczonej liczby wskaźników). Jako opcję kompromisową można zaproponować „powiązanie” miesięcznego wynagrodzenia pracownika z 3-5 kluczowymi wskaźnikami, a płatności okresowe (kwartalne, półroczne, roczne, w związku z zakończeniem projektu) mogą zależeć od większego liczba wskaźników.

Ponadto należy wziąć pod uwagę specyfikę poziomu hierarchii organizacyjnej i charakter wykonywanej pracy. Na przykład praca głównego marketera jest uważana za kreatywną. Relatywnie rzecz biorąc, może nie pojawiać się w biurze tygodniami i raz na kwartał może wpaść na kolejny genialny pomysł, który podniesie konkurencyjność firmy. W przypadku takich pracowników wiele firm używa bardzo prosty system motywacja - duża pensja (plus premie za pomysły) lub zwolnienie. A system motywacji pracowników, na przykład tartaku, może być bardziej złożony: obejmować stałą kwotę wynagrodzenia, premie za osiągnięcie docelowych wartości określonych wskaźników (na przykład liczba propozycji ulepszeń, wydajność na liczbę pracowników, koszt terminowo zrealizowanych zamówień, procent oszczędności budżetowych) oraz kary za odchylenia od innych wskaźników (na przykład procent usterek, ilość odpadów, koszt nieplanowanych napraw sprzętu z winy działu, liczba skarg wewnętrznych).

Istnieją systemy motywacyjne oparte na zasadzie kija i marchewki (zarówno kary, jak i premie), a także takie, które odmawiają „kija” (tylko „marchewka”) lub „marchewki” (tylko „kij”). Każdy z nich może być najbardziej odpowiedni w określonych sytuacjach i opiera się na systemie celów i wskaźników BSC. Ciekawą opcją jest trójstopniowy system motywacyjny, który uwzględnia osiągnięcia konkretnego pracownika (poziom 1), jego działu (poziom 2) oraz całej firmy (poziom 3).

JAK PODOBNE SĄ SYSTEMY BSC PODOBNYCH DZIAŁÓW STRUKTURALNYCH RÓŻNYCH FIRM?

Czy istnieją standardowe systemy celów, wskaźników i działań dla działu logistyki, działu finansów, działu IT, działu marketingu itp.? Czy system BSC jest identyczny dla kierowcy pracującego w szkole biznesu i kierowcy pracującego w firmie telekomunikacyjnej?

Aby odpowiedzieć na te pytania, należy pamiętać, dlaczego firmy korzystają z systemu BSC. Jej głównym celem jest zakomunikowanie strategii pracownikom firmy. A strategia zawsze kojarzy się z wyjątkowością. To na jasnym zrozumieniu wyjątkowości Twojej oferty kierowanej do klientów budowane są skuteczne strategie.

A skoro strategia jest unikalna, to wyjątkowy będzie także system celów strategicznych, wskaźników i działań na najwyższym poziomie. W związku z tym unikalne będą także systemy celów, wskaźników i działań jednostek strukturalnych. Oczywiście nie można powiedzieć, że systemy BSC kierowców pracujących w szkole biznesu i w firmie telekomunikacyjnej będą się radykalnie różnić. Ich „mapy” są częściowo podobne, a częściowo nie. Na przykład kierowca pracujący w szkole biznesu potrzebuje podstawowej wiedzy po angielsku, ponieważ często musi jechać na lotnisko, aby spotkać się z zagranicznymi partnerami. A kierowca firmy telekomunikacyjnej ma obowiązek utrzymywać samochód pomalowany na firmowe kolory w doskonałej czystości, gdyż jest to część strategia marketingowa firmy.

Kaskadowanie ma na celu zapewnienie praktycznej realizacji słynnej zasady ideologa systemu BSC: „Uczyń strategię codzienną pracą każdego”. Strategia firmy będzie opłacalna tylko wtedy, gdy każdy z jej pracowników (w tym sprzątaczka i kierowca) będzie jasno zrozumieć, jaki dokładnie wkład wnosi w jego realizację i w jaki sposób płaca. Właśnie temu celowi służy proste i pomysłowe narzędzie do zarządzania – system Balanced Scorecard.

    Władysław Tołkacz, Dyrektor Akademii Controllingu w Szkole Biznesu Galaktika, Kierownik Katedry Controllingu w Instytucie Prywatyzacji i Zarządzania.

Obecnie coraz więcej właścicieli i menedżerów najwyższego szczebla zastanawia się nad narzędziami i działaniami, które podniosą konkurencyjność i efektywność firm oraz wdrożą zaplanowaną strategię.

W tym artykule omówimy udane doświadczenie realizacja projektów wdrożenia systemu zarządzania przez cele na przykładzie spółek Toyota Centrum Dniepropietrowsk i Lexus Dniepropietrowsk Centrum, z wykorzystaniem narzędzi pozwalających powiązać wynik końcowy konkretnego pracownika z celami strategicznymi i zadaniami firmy.

Jednym z takich narzędzi realizacji strategii jest powszechnie znane Zrównoważony system wskaźniki (Zrównoważona Karta Wyników), opracowany przez profesorów R. Kaplana i D. Nortona. Ten system pozwala menedżerom przełożyć cele strategiczne firmy na przejrzysty plan działań operacyjnych działów i kluczowych pracowników, a także ocenić wyniki ich działań pod kątem realizacji strategii za pomocą kluczowe wskaźniki efektywność. Kolejnym równie znanym narzędziem jest system Zarządzanie według celu, zaproponowany przez Petera Druckera w latach 50. Istota takiego zarządzania sprowadza się do dekompozycji celów biznesowych dla każdego pracownika na poziomie operacyjnym. Rozkład to proces kaskadowania (dekompozycji) strategii i celów firmy dla każdego poziomu organizacji od najwyższego do najniższego. Proces kaskadowy polega na sekwencyjnym przenoszeniu do każdego działu przedsiębiorstwa utworzonego drzewa celów i działań strategicznych (w kierunku poziomym i pionowym). W efekcie powstają „mapy celów” zarówno dla poszczególnych działów strukturalnych firmy, jak i dla stanowisk (integracja pionowa). A także proces koordynowania danych na „mapach celów” i działań pomiędzy działami na tym samym poziomie hierarchii (integracja pozioma). Za podstawę kaskadowania przyjmuje się strukturę organizacyjną przedsiębiorstwa.

Projekt budowy i wdrożenia docelowego systemu zarządzania obejmuje kilka etapów:

1. Utworzenie drzewa celów strategicznych.

Każda firma ma cele strategiczne w takiej czy innej formie. Warunek konieczny jest ich wyraźna formalizacja i brak sprzeczności. Najlepszym sposobem zdefiniowania celów korporacyjnych jest sformułowanie ich w oparciu o kierunki biznesowe niezbędne do wdrożenia strategii. W tym przypadku dobrze jest zastosować schemat zaproponowany przez D. Nortona i R. Kaplana dla 4 komponentów: „Finanse”, „Klienci i marketing”, „Procesy biznesowe”, „Personel i systemy” . Odpowiadając na pytania dla każdej perspektywy, można sformułować cele oraz odpowiadające im działania i wskaźniki.

Na przykład podczas tworzenia mapy strategicznej w firmie Centrum Toyoty („Almaz Motor”, „Almaz System”), zespół top managerów i menadżerów liniowych określił około 20 celów na przyszłość:

  • Finanse: Zwiększ zysk firmy o N%
  • Klienci i Marketing: Zapewnij satysfakcję klientów na poziomie N% i powyżej średniej w całej sieci dealerów
  • Procesy biznesowe: Zapewnij produktywność pracy na poziomie współczynnika N
  • Personel i systemy: Formularz rezerwa kadrowa na stanowiska kierownicze

2. Kaskadowanie celów strategicznych.

Po utworzeniu drzewa celów strategicznych - „CO” konieczne jest dalsze wyjaśnienie zadań i działań, które mają na celu osiągnięcie określonych celów - „JAK”, a także określenie działów zaangażowanych w ich realizację - „KTO ”

Tym samym zdefiniowane cele strategiczne i wskaźniki Najwyższy poziom Działy i stanowiska niższego szczebla wykorzystywały organizacje do śledzenia ich wkładu w realizację ogólnych celów firmy. Każdy cel powstał przy użyciu technologii SMART.

Cele jednostek tworzą się z celów wyższego rzędu poprzez:

A) uwzględnienie celów jednostki wyższego poziomu na mapie, jeśli jednostka następnego poziomu ma wpływ na realizację tego celu (przykładowo „Zrealizuj plan sprzedaży X jednostek samochodów w salonie samochodowym” jest część integralna cel „Zrealizuj plan sprzedaży Y samochodów w regionie”);

B) powielanie celów wyższej dywizji, ale z własnymi wartościami docelowymi (np. „Wzrost bazy aktywnych klientów o 20% w porównaniu do roku ubiegłego”, „...o 10%”);

V) definicje nowy cel co jest powiązane ze strategicznym i wpływa bezpośrednio lub pośrednio na jego realizację (przykładowo „Zapewnij poziom zadowolenia klientów na poziomie +5% średniej sieci” przekłada się na cel „Przestrzegaj standardów ustalonych w przedsiębiorstwie”);

G) kombinacja celów strategicznych, które wspiera dana jednostka oraz celów indywidualnych, ważnych dla danego działu lub stanowiska, których nie da się sformułować w oparciu o cele wyższego szczebla.

Opracowując system celów i wskaźników dla wszystkich poziomów organizacji, nie należy oczekiwać, że każde stanowisko będzie miało wpływ na wszystkie cele i wskaźniki systemu najwyższego poziomu. Organizacja tworzy swoją wartość poprzez łączenie różnych umiejętności wszystkich pracowników na każdej funkcji.

Na przykład jedna z podstawowych zasad Lexusa, „dążenie do doskonałości”, jest widoczna zarówno w produkcji pojazdu wysokiej jakości, jak i obsłudze klienta. Aby zrealizować strategiczny cel, jakim jest „zwiększenie satysfakcji klienta”, dział sprzedaży musi o to zadbać wysoka jakość obsługa, podkreślaj wszystkie korzyści, jakie klient uzyska z posiadania samochodu, a dział serwisu musi zapewniać wysokiej jakości obsługę posprzedażną, oferować szybkie i opłacalne rozwiązania problemów. Jednak wszystkie te cele są możliwe tylko wtedy, gdy menadżer potrafi stworzyć zespół profesjonalistów. Proces ten obejmuje wszystkie etapy, począwszy od selekcji odpowiedni ludzie organizowanie ciągłych szkoleń i rozwoju. Zarządzanie wynikami ma szczególne znaczenie: wyznaczanie celów, ocena i informacja zwrotna.

Zwracamy uwagę na tłumaczenie pierwszej części przydatnego artykułu na temat tworzenia transakcyjnych aplikacji biznesowych z wykorzystaniem architektury mikroserwisowej.

Architektura mikrousług wykorzystuje usługę jako jednostkę modułowości. Każda usługa to odrębny proces biznesowy lub obiekt biznesowy, który wykonuje określone działanie w celu uzyskania określonego rezultatu. Przykładowo sklep internetowy korzystający z tej architektury mógłby składać się z mikrousług takich jak Zamów usługę(Obsługa zamówienia), Obsługa klienta(Obsługa klienta), Katalog(Usługa katalogowa) itp.

Każda usługa ma jasne granice, co znacznie ułatwia utrzymanie modułowości aplikacji w miarę upływu czasu. Architektura mikrousług ma inne zalety, w tym możliwość wdrażania i skalowania usług niezależnie od siebie.

Niestety podział aplikacji na usługi nie jest tak prosty jak się wydaje. Jak wspomniano wcześniej, modelami jest kilka różnych aspektów aplikacji Tematyka transakcje i żądania są trudne do oddzielenia. Przyjrzyjmy się przyczynom tych trudności.

Problem nr 1: Podział modelu domeny

Wzorzec modelu domeny to w dobry sposób implementacja złożonej logiki biznesowej. W modelu domeny dla sklepu internetowego uwzględnione zostaną klasy takie jak Zamówienie, Zamów przedmiot, Klient, Produkt. Na zajęciach z architektury mikroserwisów Zamówienie I Zamów przedmiot są częścią usługi Zamówienie, Klasa Klient jest częścią usługi Klient i klasa Produkt należy do serwisu Katalog.

Problem z podziałem modelu domeny na usługi polega na tym, że klasy często odwołują się do siebie. Na przykład, Zamówienie odnosi się do Klient kto to zrobił i Zamawiać rzeczy odnosić się do Dobra. Co zrobić z linkami, które naruszają granice usług? Później zobaczymy, jak koncepcja Aggregate z DDD (Domain Driven Design) rozwiązuje ten problem.

Mikrousługi i bazy danych

Charakterystyczną cechą architektury mikrousług jest to, że dane należące do usługi są dostępne wyłącznie poprzez interfejs API tej usługi. Przykładowo w sklepie internetowym Dział Zamówień posiada bazę danych zawierającą tabelę ZAMÓWIENIA, natomiast Dział Obsługi Klienta posiada własną bazę danych, w której znajduje się tabela KLIENCI. Dzięki tej enkapsulacji usługi są luźno powiązane, a programista może zmienić projekt swojej usługi bez konieczności koordynowania działań z programistami pracującymi nad innymi usługami. Podczas wykonywania aplikacji usługi są od siebie izolowane. Na przykład usługa nigdy nie będzie czekać na zakończenie blokady bazy danych należącej do innej usługi. Z drugiej strony funkcjonalne partycjonowanie bazy danych utrudnia zachowanie integralności danych oraz realizację wielu typów zapytań.

Problem nr 2: Transakcje

Tradycyjna aplikacja monolityczna może polegać na transakcjach w celu egzekwowania reguł biznesowych. Wyobraźmy sobie na przykład, że klienci sklepu internetowego posiadają limit kredytowy, który należy sprawdzić przed złożeniem nowego zamówienia. Aplikacja musi zapewniać, że wielokrotne jednoczesne próby złożenia zamówienia nie przekroczą limitu kredytowego Klienta. Jeśli zamówienia i klienci znajdują się w tej samej bazie danych, to trywialnym rozwiązaniem problemu jest zastosowanie transakcji (z odpowiednim poziomem izolacji):

ROZPOCZNIJ TRANSAKCJĘ… WYBIERZ CAŁĄ ZAMÓWIENIE ZE ZAMÓWIEŃ GDZIE CUSTOMER_ID = ? … WYBIERZ KREDYT_LIMIT OD KLIENTÓW GDZIE CUSTOMER_ID = ? … WSTAW DO ZAMÓWIEŃ … … DOKONAJ TRANSAKCJI
Niestety w podejściu zorientowanym na mikrousługi nie możemy zastosować tak prostego podejścia do utrzymania spójności danych. Tabele ZAMÓWIENIA i KLIENCI należą do różnych usług i można uzyskać do nich dostęp wyłącznie poprzez API. Mogą nawet znajdować się w różnych bazach danych.

W w tym przypadku Tradycyjnym rozwiązaniem byłyby transakcje rozproszone, jednak nie jest to technologia odpowiednia do nowoczesnych zastosowań. Twierdzenie CAP wymaga od programisty dokonania wyboru między dostępnością a spójnością, a dostępność jest ogólnie preferowanym wyborem. Poza tym wiele nowoczesne technologie, takie jak większość baz danych NoSQL, nie obsługują nawet zwykłych transakcji, nie mówiąc już o transakcjach rozproszonych. Zachowanie integralności jest również ważne, dlatego potrzebujemy innego rozwiązania. Poniżej zobaczymy, że rozwiązaniem jest użycie architektury sterowanej zdarzeniami (opartej na komunikatach) opartej na Event Sourcing.

Problem nr 3: Zapytania do bazy danych

Oprócz utrzymania integralności danych wyzwaniem są także zapytania do baz danych. W tradycyjnych aplikacjach monolitycznych zapytania wykorzystujące łączenia są niezwykle powszechne. Możesz na przykład łatwo znaleźć ostatnio zarejestrowanych klientów i ich duże zamówienia korzystając z żądania:

WYBIERZ * OD KLIENTA c, ZAMÓW o GDZIE c.id = o.ID ORAZ o.ORDER_TOTAL > 100000 AND o.STATE = "WYSYŁANO" ORAZ c.CREATION_DATE > ?
Nie możemy zastosować tego rodzaju żądania w sklepie internetowym zorientowanym na mikroserwisy. Jak wspomniano wcześniej, tabele ZAMÓWIENIA i KLIENCI należą do różnych usług i można uzyskać do nich dostęp wyłącznie poprzez API. Niektóre usługi mogą nawet nie korzystać z bazy danych SQL. Można jednak zastosować metodę zwaną pozyskiwaniem zdarzeń, która sprawia, że ​​znajdowanie informacji jest jeszcze trudniejsze.

Zobaczymy później, że rozwiązaniem jest przechowywanie zmaterializowanych widoków przy użyciu podejścia znanego jako segregacja odpowiedzialności za zapytania poleceń (CQRS). Ale najpierw przyjrzyjmy się kwestii projektowania opartego na domenie (DDD) podczas tworzenia mikrousług.

Agregaty DDD jako elementy składowe mikrousług

Jak widać istnieje kilka kwestii, którymi należy się zająć, aby móc pomyślnie tworzyć aplikacje wykorzystujące mikroserwisy. Rozwiązanie niektórych z tych problemów można znaleźć w książce Erica Evansa, którą warto przeczytać, Domain-Driven Design. Opisuje podejście do projektowania złożonego oprogramowanie, co jest bardzo przydatne przy tworzeniu mikroserwisów. W szczególności projektowanie oparte na domenach umożliwia utworzenie modułowego modelu domeny, który można dystrybuować między usługami.

Co to są agregaty?

W Domain-Driven Design Evans definiuje kilka elementów składowych modeli domen. Wiele z nich stało się częścią codziennego języka programistów, w tym Entity, Value object, Service, Repository itp. Jednak jeden element składowy – agregat – został w dużej mierze zignorowany przez programistów, z wyjątkiem purystów DDD. Okazuje się jednak, że kluczem do rozwoju mikroserwisów są agregaty.

Agregat to skupisko obiektów domeny, które można uznać za pojedynczą całość. Składa się z encji głównej i ewentualnie jednego lub większej liczby innych powiązanych encji i obiektów wartości. Przykładowo model domeny dla sklepu internetowego zawiera agregaty takie jak Zamówienie I Klient. Jednostka Zamówienie składa się z jednostki głównej Zamówienie, jeden lub więcej obiektów wartości pozycji zamówienia wraz z innymi obiektami wartości, takimi jak Cena, Adres dostawy I Szczegóły płatności. Jednostka Klient składa się z esencji Klient oraz kilka obiektów wartościowych, takich jak informacja o dostawie I Informacja o płatności.

Korzystanie z agregatów dzieli model domeny na części, które są łatwiejsze do zrozumienia indywidualnie. Definiuje również zestaw operacji, takich jak ładowanie i usuwanie. Agregat jest zwykle ładowany z bazy danych jako całość. Usunięcie agregatu powoduje również usunięcie wszystkich obiektów. Korzyści z agregatów wykraczają jednak daleko poza modułowość modelu dziedzinowego, ponieważ agregaty muszą przestrzegać pewnych zasad.

Relacje międzyagregacyjne muszą używać kluczy podstawowych

Pierwsza zasada jest taka, że ​​agregaty zawsze odnoszą się do siebie nawzajem poprzez unikalny identyfikator (taki jak klucz podstawowy), a nie bezpośrednie odniesienia do obiektów. Na przykład, Zamówienie odnosi się do jego Klient, używając CustomerId zamiast odniesienia do obiektu klienta. W ten sam sposób, Zamów przedmiot odnosi się do Produkt za pomocą ProductID.

Podejście to bardzo różni się od podejścia tradycyjnego, w którym klucze obce w modelu domeny są uważane za złą praktykę. Użycie identyfikatora zamiast odniesienia do obiektu oznacza, że ​​agregaty są luźno powiązane. Możesz łatwo umieszczać różne jednostki w różnych usługach. W rzeczywistości logika biznesowa usługi składa się z modelu domeny, który jest zbiorem agregatów. Na przykład OrderService zawiera agregat Zamówienie, a CustomerService zawiera agregację Klient.

Jedna transakcja tworzy lub aktualizuje jedną agregację

Druga zasada jest taka, że ​​transakcja może utworzyć lub zaktualizować tylko jedną agregację. Kiedy wiele lat temu po raz pierwszy przeczytałem o tej zasadzie, nie miała ona żadnego sensu! W tym czasie tworzyłem tradycyjne, monolityczne aplikacje oparte na RDBMS, więc transakcje mogły aktualizować dowolne dane. Obecnie to ograniczenie jest idealne w przypadku architektury mikrousług. Dzięki temu transakcja jest zawarta w ramach usługi. Limit ten jest również zgodny z limitami transakcji większości baz danych NoSQL.

Podczas opracowywania modelu domeny kluczową decyzją jest wielkość każdego konkretnego agregatu. Idealnie jednostki powinny być małe. Poprawia to modułowość poprzez podział obowiązków. Jest to bardziej wydajne, ponieważ jednostki są zwykle w pełni obciążone. Dodatkowo, ponieważ każdy agregat jest aktualizowany sekwencyjnie, użycie mniejszych agregatów zwiększy liczbę jednoczesnych żądań, które aplikacja może obsłużyć, poprawiając w ten sposób skalowalność. Zmniejsza to również prawdopodobieństwo, że dwóch użytkowników będzie próbowało zaktualizować to samo urządzenie w tym samym czasie.

Z drugiej strony, ponieważ agregat stanowi zakres transakcji, konieczne może być zdefiniowanie większego agregatu, aby konkretna aktualizacja była niepodzielna.

Przykładowo, powiedziano powyżej, że w modelu domenowym sklepu internetowego Zamówienie I Klient- są to odrębne jednostki. Alternatywą jest zrobienie Zamówienie część jednostki Klient. Zaleta dużej jednostki Klient polega na tym, że aplikacja będzie mogła atomowo sprawdzić limit kredytowy. Wadą tego podejścia jest to, że łączy w sobie funkcjonalność Zamówienie I Klient w tym samym serwisie. Zmniejsza to skalowalność, ponieważ transakcje aktualizujące różne zamówienia dla tego samego klienta nie będą mogły być realizowane równolegle. Ponadto dwóch użytkowników może powodować konflikt, jeśli będą próbować edytować różne zamówienia od tego samego klienta. Wraz ze wzrostem ilości zamówień wzrasta jednostkowa ładowność Klient będzie coraz droższe. Ze względu na te problemy najlepiej jest, aby jednostki były jak najmniejsze.

Nawet przy wymogu tworzenia lub aktualizowania w ramach transakcji tylko jednego agregatu aplikacje muszą nadal utrzymywać spójność między agregatami. Na przykład serwis Zamówienie należy sprawdzić, czy nowa jednostka Zamówienie nie przekroczy całkowitego limitu kredytowego Klienta. Jest kilka na różne sposoby zachowując spójność. Jedną z opcji jest oszukanie aplikacji i utworzenie/aktualizacja wielu agregatów w ramach jednej transakcji. Jest to możliwe tylko wtedy, gdy wszystkie agregaty należą do tej samej usługi i są przechowywane w tym samym RDBMS. Inną, lepszą opcją jest utrzymanie spójności między agregatami przy użyciu podejścia opartego na zdarzeniach.

Używanie zdarzeń do utrzymywania spójności danych

Nowoczesna aplikacja ma różne ograniczenia dotyczące transakcji, które utrudniają utrzymanie spójności danych między usługami. Każda usługa ma swoje własne dane, ale korzystanie z transakcji rozproszonych nie jest realną opcją. Ponadto wiele aplikacji korzysta z baz danych NoSQL, które nie obsługują nawet zwykłych transakcji lokalnych, nie mówiąc już o transakcjach rozproszonych. Dlatego nowoczesna aplikacja musi korzystać z modelu transakcji sterowanego zdarzeniami, znanego jako ostatecznie spójne.

Co to jest wydarzenie?

Jak mówi słownik Merriam-Webster (i Captain Obvious), „wydarzenie” to coś, co się dzieje (zdarza się):

W tym artykule definiujemy zdarzenie domeny jako coś, co przydarzyło się agregatowi. Zdarzenie to zazwyczaj zmiana stanu. Rozważmy na przykład jednostkę Zamówienie. Do zdarzeń zmieniających jego stan zaliczają się m.in Zamówienie utworzone, Zamówienie anulowane, Zamówienie zostało wysłane. Zdarzenia mogą oznaczać próby naruszenia zasad biznesowych, np. limitu kredytowego Klient.

Korzystanie z architektury sterowanej zdarzeniami

Usługi korzystają ze zdarzeń, aby zapewnić spójność między agregatami w następujący sposób: agregat publikuje zdarzenie za każdym razem, gdy wydarzy się coś zauważalnego. Na przykład zmienia się jego stan lub następuje próba naruszenia reguły biznesowej. Inne agregaty subskrybują wydarzenie i odpowiadają na nie, aktualizując swój własny stan.

Sklep internetowy sprawdza limit kredytowy Klienta podczas tworzenia zamówienia, wykonując następującą sekwencję kroków:

  1. Jednostka Zamówienie, który jest tworzony ze statusem NEW, publikuje zdarzenie OrderCreated.
  2. Jednostka Klient otrzymuje powiadomienie o zdarzeniu OrderCreated, rezerwuje kredyt na zamówienie i publikuje zdarzenie CreditReserved.
  3. Jednostka Zamówienie otrzymuje powiadomienie o zdarzeniu CreditReserved i zmienia swój status na ZATWIERDZONY.
Jeśli kontrola kredytowa nie powiedzie się z powodu niewystarczających środków, jednostka Klient publikuje zdarzenie CreditLimitExceeded. To zdarzenie nie odzwierciedla zmiany stanu, ale raczej reprezentuje nieudaną próbę naruszenia reguł biznesowych. Jednostka Zamówienie otrzymuje powiadomienie o tym zdarzeniu i zmienia jego stan na ODWOŁANY.

Architektura mikrousług jako sieć agregatów sterowanych zdarzeniami

W tej architekturze logika biznesowa każdej usługi składa się z jednego lub większej liczby agregatów. Każda transakcja wykonywana przez usługę aktualizuje lub tworzy jeden agregat. Usługi utrzymują spójność danych między agregatami za pomocą zdarzeń.

Charakterystyczną cechą tego podejścia jest to, że agregaty są słabo połączone cegiełki. Można je wdrożyć jako monolityczną aplikację lub jako zestaw pojedynczych usług. Na początku projektu możesz zastosować architekturę monolityczną. Później, gdy wielkość Twojego zespołu aplikacji i programistów będzie rosła, możesz łatwo przejść na architekturę mikrousług.

Streszczenie

Architektura mikrousług funkcjonalnie dzieli aplikację na usługi, z których każda odpowiada konkretnemu obiektowi biznesowemu lub procesowi biznesowemu. Jednym z głównych wyzwań związanych z tworzeniem aplikacji biznesowych opartych na mikrousługach jest to, że transakcje, modele domen i zapytania nie pozwalają na rozdzielenie ich na usługi. Można podzielić model domeny, stosując koncepcję „zagregowanego” z Domain Driven Design. Logiką biznesową każdej usługi jest model domeny składający się z jednego lub większej liczby agregatów DDD.

W ramach każdej usługi transakcja tworzy lub aktualizuje pojedynczy agregat. Ponieważ transakcje rozproszone nie są opłacalną technologią dla nowoczesnych aplikacji, zdarzenia służą do zachowania spójności między agregatami (i usługami).

W drugiej części artykułu przyjrzymy się, jak wdrożyć solidną architekturę sterowaną zdarzeniami przy użyciu Event Sourcing, a także jak wdrożyć zapytania w architekturze mikrousług przy użyciu CQRS.