계단식 방법. 현대 인사 관리: 계단식 목표, 또는 각 직원에게 전략을 전달하는 방법은 무엇입니까? 타겟 캐스케이딩 기술

회사 직원의 충성도는 전략에 대해 잘 알고 전략 구현에 대한 작은 기여를 상상하면 높아집니다. 이 아이디어의 구현 예는 소련이라는 대규모 조직이 될 수 있습니다. 사회주의 건설이라는 전략적 목표는 모든 사람에게 알려져 있었고 일반 광부는 달성하기 위해 단위 시간당 채굴한 석탄 톤이 필요하다는 것을 분명히 이해했습니다. 그것.

전략을 전달한다는 사실 자체가 직원들에게 동기를 부여합니다(“나는 우리가 어디로 가고 있는지, 3년 안에 회사에 무슨 일이 일어날지 이해합니다”). 직원이 공통 목표를 달성하기 위해 개인적으로 무엇을 해야 하는지 알 때 추가적인 동기 부여가 나타납니다. 회사의 전략을 모든 사람에게 전달하는 데 도움이 되는 도구는 균형성과표 시스템에서 계단식 목표가 될 수 있습니다.

일반적인 문제 전략적 관리- 전략을 실행하도록 요청받은 사람들의 전략에 대한 무지. 물론 단순한 인식 사실이 각 직원이 공통 원인에 대한 혜택 측면에서 자신의 행동을 평가한다는 의미는 아닙니다. 회사의 전략적 목표 달성을 위한 활동 개발에 인력을 참여시키고 자료와 비물질적 동기전략적 목표 달성과 함께. 즉, 직원은 다음과 같은 경우 회사 전략 실행에 집중하게 됩니다.

  • 회사의 전략 전체를 알고 이해합니다.
  • 전략 실행에 대한 그의 기여를 확인합니다.
  • 전략 실행에 대한 동료의 기여를 나타냅니다.
  • 전략적 목표를 달성하는 데 필요한 활동 개발에 참여했습니다.
  • 그의 구조 단위 (위치)에 대한 목표 및 지표 시스템 작성에 참여했습니다.
  • 허용된 지표의 목표 값을 달성하려는 동기(재정적 및/또는 비물질적)
  • 목표를 달성하는 데 필요한 자원, 지식, 기술 및 인프라를 갖추고 있습니다.

균형성과표(BSC) 시스템은 특히 전략 구현 도구로 Kaplan 교수와 Norton 교수가 개발했습니다. "재무", "고객", "비즈니스 프로세스" 및 "인프라/인력" 예측에서 주요 목표를 식별한 후 해당 목표 달성을 모니터링하기 위한 일련의 지표가 개발되고 이러한 지표에 대한 목표 값이 설정됩니다. 다음으로 목표 달성을 목표로 하는 주요 활동을 생각합니다. 기본옵션 BSS 시스템은 표에 나와 있습니다. 1. 그리고 확장된 지표에는 목표뿐만 아니라 활동에 대한 지표도 포함되며, 구현과 관련된 단위, 구현 예산 및 시기를 나타내는 것도 포함됩니다(표 2).

표 1.균형성과표(Balanced Scorecard) 시스템의 기본 버전
(회사 - 인터넷 제공업체)

이 목표 또는 저 목표(예: "신규 고객 유입 보장")는 특별 이벤트를 통해서만 달성되는 것이 아니라는 점을 기억해야 합니다. 또한 동일한 예측의 다른 목표 및 다른 예측의 목표(예: "비즈니스 프로세스" 및 "인프라/인력")와 관련된 활동의 영향을 고려해야 합니다. 동시에, 반복적으로 언급됨 일반 목록서로 다른 목표의 맥락에서 하나 이상의 이벤트는 BSC 시스템을 구축할 때 핵심 요소 중 하나인 소형화 원칙을 위반합니다. 따라서 특정 이벤트를 하나의 목표, 즉 가장 크게 기여하는 목표와 연관시키는 것이 좋습니다.

표 2.균형성과표(Balanced Scorecard) 시스템의 확장 버전
(회사 - 건축 구조물 제조업체)

표에 표시된 BSC 시스템 옵션. 2, 개별 구조 단위에 참여하고 있는 전략적 목표를 달성하는 데 필요한 활동과 이러한 활동의 ​​결과를 평가할 지표를 정확히 설명합니다. 또한 개별 활동의 예산과 실행 시기에 대한 정보도 포함되어 있습니다.

그러나 개인을 위한 목표, 지표 및 활동 시스템을 구축하는 것을 포함하는 보다 자세한 BSC 버전이 있습니다. 구조적 구분(즉, 계단식). 결과적으로 회사의 각 구조 단위(부서, 지점, 사업부 등)에는 해당 단위의 주요 목표, 목표 달성에 필요한 지표 및 활동을 반영하는 자체 BSC 시스템(“지도”)이 있습니다. "지도"는 회사 전략 실행에 대한 직원의 참여를 설명하고 경영진이 각 직원(부서)의 작업을 평가하는 데 도움을 주며 동기 부여 시스템의 기초 역할을 합니다.

BSC 시스템을 구조적 부서 수준 이하로 계단식으로 적용하기로 결정한 회사가 직면한 주요 문제를 고려해 보겠습니다.

구조적 분할 수준의 투영

일반적으로 최상위 BSC 시스템은 재무, 고객, 비즈니스 프로세스, 인프라/인력이라는 네 가지 관점을 제시합니다. 일반적인 목표이러한 예측 내에서 공식화된 회사는 원인과 결과의 사슬을 형성하는 경향이 있습니다. 추론의 논리는 자격이 있고 의욕이 넘치는 직원, 개발된 인프라(장비, 소프트웨어, 운송 차량 등)를 사용하여 다음을 제공할 수 있습니다. 필요한 기업비즈니스 프로세스의 품질과 속도. 간소화된 비즈니스 프로세스는 경쟁사보다 우위를 점하고 고객 만족에 기여합니다. 만족한 고객과 경쟁 우위, 이는 재정적 목표를 달성하기 위한 전제 조건을 구성합니다(그림 1).


그림 1. BSC 시스템의 목표 원인 및 결과 체인

이것을 실제로 어떻게 적용하나요? 최상위 "지도"의 목표는 "재정" 투영부터 시작하여 작성됩니다. 우선, 회사는 “얼마나 벌고 싶고, 얼마를 쓸 것인가?”라는 질문에 답해야 합니다. 두 번째 질문이 들리네요 다음과 같이: “고객이 재무 목표를 달성하려면 어떻게 해야 합니까?” 세 번째는 "비즈니스 프로세스" 예측에 관한 것입니다. ""고객" 및 "재무" 예측의 틀 내에서 목표를 달성하기 위해 회사의 작업을 어떻게 구성해야 합니까?" 마지막으로 네 번째 질문은 회사가 상위 3개 전망 내 목표를 달성하기 위해 어떤 인력과 인프라가 필요한지에 대한 것입니다.

회사 전체의 예측 수는 실제로 다를 수 있습니다. 원칙적으로, 우리 얘기 중이야회사에 특히 중요한 측면을 별도의 예측(예: "공급업체", "상태")으로 분리하고 이를 4개의 "전통적인" 측면에 추가하는 방법에 대해 설명합니다. 물론 원할 경우 회사와 공급업체의 관계를 "비즈니스 프로세스" 투영에서 볼 수 있고, 국가와의 관계를 "시장/고객" 투영에서 볼 수 있습니다.

구조 부문 수준의 BSC 시스템은 일반적으로 회사 전체 수준에서 해당 모델을 반복합니다. 각 부서에는 일반적으로 자체 "재정"(예: 부서의 예산 및 보너스에 할당된 금액), 자체 "고객"(동료), 자체 "비즈니스 프로세스"(회사 전체의 "글로벌" 프로세스)가 있습니다. , 구조 단위가 참여하는 구조 단위 내에서 발생하는 "로컬" 프로세스) 및 자체 "인프라/인력". 따라서 BSC 시스템은 구조 단위 ( 생산 작업장, 물류부, 재무부, IT부 등)을 회사 내 미니컴퍼니로 변화시켰습니다. 각 구조 단위는 작업(“비즈니스 프로세스” 예측)을 빠르고 효율적으로 수행하려면 자격을 갖춘 인력과 개발된 인프라가 필요하다는 것을 이해합니다. 구조 단위가 내부 고객(다른 부서의 동료 또는 회사 경영진)과 성공적으로 상호 작용하려면 제대로 작동하는 프로세스가 필요합니다. 이 상호 작용이 얼마나 성공적일지는 무엇보다도 다음에 달려 있습니다. 재무 결과부서 (예산 준수, 계획된 보너스 금액 수령). 즉, 회사의 각 구조적 부서는 내부(및 외부) 고객에게 제품(서비스)을 판매하여 고객의 기대를 최대한 충족시키려고 노력합니다. 따라서 이러한 비즈니스 로직을 기반으로 한 기업의 내부 고객 만족도 지수(동료 점수)는 거의 모든 부서의 표준 지표가 됩니다.

구조 단위에 대한 "고전적인" BSC 모델의 수정도 가능합니다. 예를 들어, 대규모 자동차 회사의 동유럽 공장 중 하나의 BSC 시스템에는 "재무", "비즈니스 프로세스" 및 "인프라/인력"이라는 세 가지 예측만 있습니다. "고객" 예측이 중단됩니다. 모든 주문이 우려 사항에서 나오고 제3자 고객과의 상호 작용이 비즈니스 모델에서 제공되지 않기 때문에 공장 자체가 고객을 찾아서는 안 됩니다. 엄밀히 말하면, 이 공장의 고객은 해당 공장이 제품(자동차 부품)을 공급하는 다른 관심 기업입니다. 그러나 공장 경영진은 "비즈니스 프로세스" 예측 프레임워크 내에서 해당 문제 내에서 다른 기업과의 관계 측면을 추적하는 것이 가능하다고 생각했습니다. 분석된 주요 지표로는 불량률, 정시 완료 주문 건수, 내부 고객 불만 건수 등이 있습니다.

계속됩니다

전략 관리의 전형적인 문제는 전략을 실행하도록 요청받은 사람들이 전략을 무시하는 것입니다. 물론 단순한 인식 사실이 각 직원이 공통 원인에 대한 혜택 측면에서 자신의 행동을 평가한다는 의미는 아닙니다. 회사의 전략적 목표 달성을 목표로 하는 활동 개발에 인력을 참여시키고 물질적 및 비물질적 동기를 달성에 연결하면 전략 실행에 직원의 참여 ​​준비를 높일 수 있습니다. 전략적 목표. 즉, 직원은 다음과 같은 경우 회사 전략 실행에 집중하게 됩니다.
  • 회사의 전략 전체를 알고 이해합니다.
  • 전략 실행에 대한 그의 기여를 확인합니다.
  • 전략 실행에 대한 동료의 기여를 나타냅니다.
  • 전략적 목표를 달성하는 데 필요한 활동 개발에 참여했습니다.
  • 그의 구조 단위 (위치)에 대한 목표 및 지표 시스템 작성에 참여했습니다.
  • 허용된 지표의 목표 값을 달성하려는 동기(재정적 및/또는 비물질적)
  • 목표를 달성하는 데 필요한 자원, 지식, 기술 및 인프라를 갖추고 있습니다.

균형성과표(BSC) 시스템은 특히 전략 구현 도구로 Kaplan 교수와 Norton 교수가 개발했습니다. "재무", "고객", "비즈니스 프로세스" 및 "인프라/인력" 예측에서 주요 목표를 식별한 후 해당 목표 달성을 모니터링하기 위한 일련의 지표가 개발되고 이러한 지표에 대한 목표 값이 설정됩니다. 다음으로 목표 달성을 목표로 하는 주요 활동을 생각합니다. BSS 시스템의 기본 버전이 표에 나와 있습니다. 1. 그리고 확장된 지표에는 목표뿐만 아니라 활동에 대한 지표도 포함되며, 구현과 관련된 단위, 구현 예산 및 시기를 나타내는 것도 포함됩니다(표 2).

표 1.균형성과표(Balanced Scorecard) 시스템의 기본 버전
(회사 - 인터넷 제공업체)

이 목표 또는 저 목표(예: "신규 고객 유입 보장")는 특별 이벤트를 통해서만 달성되는 것이 아니라는 점을 기억해야 합니다. 또한 동일한 예측의 다른 목표 및 다른 예측의 목표(예: "비즈니스 프로세스" 및 "인프라/인력")와 관련된 활동의 영향을 고려해야 합니다. 동시에, 다양한 목표의 맥락에서 일반 목록의 특정 이벤트를 반복적으로 언급하는 것은 BSC 시스템을 구축할 때 핵심 요소 중 하나인 압축 원칙을 위반하는 것입니다. 따라서 특정 이벤트를 하나의 목표, 즉 가장 크게 기여하는 목표와 연관시키는 것이 좋습니다.

표 2.균형성과표(Balanced Scorecard) 시스템의 확장 버전
(회사 - 건축 구조물 제조업체)

표에 표시된 BSC 시스템 옵션. 2, 개별 구조 단위에 참여하고 있는 전략적 목표를 달성하는 데 필요한 활동과 이러한 활동의 ​​결과를 평가할 지표를 정확히 설명합니다. 또한 개별 활동의 예산과 실행 시기에 대한 정보도 포함되어 있습니다.

그러나 개별 구조 단위(즉, 계단식)에 대한 목표, 지표 및 활동 시스템을 구축하는 것과 관련된 보다 자세한 BSC 버전이 있습니다. 결과적으로 회사의 각 구조 단위(부서, 지점, 사업부 등)에는 해당 단위의 주요 목표, 목표 달성에 필요한 지표 및 활동을 반영하는 자체 BSC 시스템(“지도”)이 있습니다. "지도"는 회사 전략 실행에 대한 직원의 참여를 설명하고 경영진이 각 직원(부서)의 작업을 평가하는 데 도움을 주며 동기 부여 시스템의 기초 역할을 합니다.

BSC 시스템을 구조적 부서 수준 이하로 계단식으로 적용하기로 결정한 회사가 직면한 주요 문제를 고려해 보겠습니다.

구조적 분할 수준의 투영

일반적으로 최상위 BSC 시스템은 재무, 고객, 비즈니스 프로세스, 인프라/인력이라는 네 가지 관점을 제시합니다. 이러한 예측의 틀 내에서 공식화되는 회사의 전반적인 목표는 일반적으로 원인과 결과의 사슬을 형성합니다. 추론의 논리는 자격을 갖추고 의욕이 넘치는 직원이 개발된 인프라(장비, 소프트웨어, 운송 차량 등)를 사용하여 회사에서 요구하는 비즈니스 프로세스의 품질과 속도를 제공할 수 있다는 것입니다. 간소화된 비즈니스 프로세스는 경쟁사보다 우위를 점하고 고객 만족에 기여합니다. 고객 만족과 경쟁 우위는 재무 목표 달성을 위한 전제 조건입니다(그림 1).


그림 1.

이것을 실제로 어떻게 적용하나요? 최상위 "지도"의 목표는 "재정" 투영부터 시작하여 작성됩니다. 우선, 회사는 “얼마나 벌고 싶고, 얼마를 쓸 것인가?”라는 질문에 답해야 합니다. 두 번째 질문은 “고객이 재정적 목표를 달성하려면 어떻게 해야 합니까?”입니다. 세 번째는 "비즈니스 프로세스" 예측에 관한 것입니다. ""고객" 및 "재무" 예측의 틀 내에서 목표를 달성하기 위해 회사의 작업을 어떻게 구성해야 합니까?" 마지막으로 네 번째 질문은 회사가 상위 3개 전망 내 목표를 달성하기 위해 어떤 종류의 인력과 인프라가 필요한지에 대한 것입니다.

회사 전체의 예측 수는 실제로 다를 수 있습니다. 일반적으로 회사에 특히 중요한 측면을 별도의 예측(예: "공급업체", "정부")으로 분리하고 이를 4개의 "클래식" 측면에 추가하는 것에 대해 이야기하고 있습니다. 물론 원할 경우 회사와 공급업체의 관계를 "비즈니스 프로세스" 투영에서 볼 수 있고, 국가와의 관계를 "시장/고객" 투영에서 볼 수 있습니다.

구조 부문 수준의 BSC 시스템은 일반적으로 회사 전체 수준에서 해당 모델을 반복합니다. 각 부서에는 일반적으로 자체 "재정"(예: 부서의 예산 및 보너스에 할당된 금액), 자체 "고객"(동료), 자체 "비즈니스 프로세스"(회사 전체의 "글로벌" 프로세스)가 있습니다. , 구조 단위가 참여하는 구조 단위 내에서 발생하는 "로컬" 프로세스) 및 자체 "인프라/인력". 따라서 BSC 시스템은 구조적 단위(생산부서, 물류부, 재무부, IT부서 등)를 회사 내 작은 회사로 전환합니다. 각 구조 단위는 작업(“비즈니스 프로세스” 예측)을 빠르고 효율적으로 수행하려면 자격을 갖춘 인력과 개발된 인프라가 필요하다는 것을 이해합니다. 구조 단위가 내부 고객(다른 부서의 동료 또는 회사 경영진)과 성공적으로 상호 작용하려면 제대로 작동하는 프로세스가 필요합니다. 부서의 재무 결과(예산 준수, 계획된 보너스 금액 수령)도 이러한 상호 작용의 성공 여부에 따라 달라집니다. 즉, 회사의 각 구조적 부서는 내부(및 외부) 고객에게 제품(서비스)을 판매하여 고객의 기대를 최대한 충족시키려고 노력합니다. 따라서 이러한 비즈니스 로직을 기반으로 한 기업의 내부 고객 만족도 지수(동료 점수)는 거의 모든 부서의 표준 지표가 됩니다.

구조 단위에 대한 "고전적인" BSC 모델의 수정도 가능합니다. 예를 들어, 대규모 자동차 관련 기업인 동유럽 공장 중 하나의 BSC 시스템에는 "재무", "비즈니스 프로세스" 및 "인프라/인력"이라는 세 가지 예측만 있습니다. "고객" 예측이 중단됩니다. 모든 주문이 우려 사항에서 나오고 제3자 고객과의 상호 작용이 비즈니스 모델에서 제공되지 않기 때문에 공장 자체가 고객을 찾아서는 안 됩니다. 엄밀히 말하면, 이 공장의 고객은 해당 공장이 제품(자동차 부품)을 공급하는 다른 관심 기업입니다. 그러나 공장 경영진은 "비즈니스 프로세스" 예측 프레임워크 내에서 해당 문제 내에서 다른 기업과의 관계 측면을 추적하는 것이 가능하다고 생각했습니다. 분석된 주요 지표로는 불량률, 정시 완료 주문 건수, 내부 고객 불만 건수 등이 있습니다.

때로는 투영 수가 많은 옵션이 사용됩니다. 한 엔지니어링 및 건설 회사(건축 구조물의 대규모 글로벌 제조업체의 지역 딜러)의 최상위 "지도"에서 "금융", "클라이언트", "공급업체"(특별한 중요성으로 인해)라는 6가지 예측이 식별되었습니다. 회사의 전략), "비즈니스 프로세스", "인프라" 및 "인력". BSC 시스템을 두 번째 수준으로 계단식으로 확장하는 것은 한편으로는 회사 프로젝트 구현을 위한 핵심 목표, 지표 및 활동의 개발과 다른 한편으로는 이러한 프로젝트와 관련된 구조 단위(판매, 물류, 설계)를 위한 것입니다. , 건설 및 재무 부서). 프로젝트 수준과 구조적 분할 수준의 '지도'에도 6가지 예측이 있었습니다. 즉, 최상위 목표(예: 주 공급업체와의 관계 유지 및 개선)는 회사 전체의 목표이자 직원 개개인의 목표였습니다. 내부 고객 만족을 보장하고 기업 표준을 유지하며 재무 성과 목표를 달성하는 경우에도 마찬가지였습니다.

구조 단위의 목표와 지표에 대한 "지도"는 어떻게 생성됩니까?

구조 단위(계단식)에 대한 목표, 지표 및 활동의 "지도"를 구축하는 것은 BSC 시스템에서 가장 덜 개발된(이론적으로나 실제적으로) 부분입니다. 이는 부분적으로 개념 자체의 "유치한"시대와 그에 따른 경험 부족 때문입니다. 그러나 일반적인 계단식 알고리즘이 있습니다.

  1. 전략적 목표와 최상위 지표(회사 전체) 시스템을 만든 후 전략적 목표를 달성하는 데 필요한 활동 패키지가 개발됩니다.
  2. 각 이벤트에 대해 구현 성공 여부, 참가자(책임자 포함)의 작업, 필요한 경우 예산 및 마감일을 결정하는 지표가 결정됩니다.
  3. 한 축에는 모든 활동이 있고 다른 축에는 모든 구조 단위가 있는 매트릭스가 형성됩니다. 이 매트릭스를 기반으로 다음을 결정할 수 있습니다.
      a) 특정 활동의 구현에 어떤 구조 단위가 포함되는지
      b) 이 구조 단위 또는 그 구조 단위가 어떤 활동에 참여하는지.

    생성된 매트릭스를 기반으로 구조 단위의 목표, 지표 및 활동에 대한 "맵"이 작성됩니다. 관점에서 총감독, 활동은 종종 하나 또는 다른 구조 단위의 목표입니다.

  4. 예측 목록은 구조 부문의 목표, 지표 및 활동이 개발되는 프레임워크 내에서 결정됩니다(일반적으로 "재무", "고객", "비즈니스 프로세스" 및 "인프라/인력" 등 "고전적인" 예측입니다). ).
  5. 개발된 활동 매트릭스와 자체 고려 사항을 기반으로 하는 각 구조 단위는 회사의 "지도"에 공식화된 전략적 목표 달성에 어떻게 기여할 것인지 결정해야 합니다. BSC 시스템은 회사 목표 시스템과 활동 매트릭스 외에도 강점과 활동에 대한 예비 분석을 기반으로 합니다. 약점이 구조 단위. 또한 부서 내부 조사를 실시하여 다른 부서에서 필요한 제품(서비스)이 무엇인지, 자신이 다른 구조 부서로 이전하는 제품(서비스)이 무엇인지 명확히 하는 것이 좋습니다.
  6. 각 구조 단위는 BSC 시스템의 전망에서 주요 목표를 공식화하고 측정 및 평가에 필요한 지표를 결정하며 목표 달성에 필요한 활동을 개발합니다("상향식" 원칙에 기반한 "맵" 형성). ).
  7. 동시에, 동일한 기본 정보(5절)를 기반으로 "하향식" 원칙에 따라 구조적 분할을 위한 "지도"의 변형이 생성됩니다. 이는 특별히 만들어진 중앙 집중식 관리자인 고위 관리자가 수행할 수 있습니다. 실무 그룹또는 외부 컨설턴트(결합된 옵션이 가능하고 적절함).
  8. 독립적으로 생성된 구조 단위 X의 "맵" 버전("상향식")은 중앙 기관 또는 외부 컨설턴트가 이 단위를 위해 개발한 "맵" 버전("하향식")과 비교됩니다. "). 확인된 차이점이 논의되고 그 결과 타협 옵션(목표, 지표, 목표 값 및 활동 시스템)이 개발됩니다.
  9. 또한 BSC 시스템과 예산 시스템, 내부 보고 및 직원 동기 부여의 연결을 모니터링합니다.

분명히 직원들이 '지도' 작성에 참여한다면 변화(혁신)에 대한 저항 정도는 훨씬 낮아질 것입니다. 또한 일반적으로 회사의 전략적 목표를 달성하는 데 도움이 되는 가능한 활동, 프로젝트 및 이니셔티브에 대한 많은 유용한 아이디어를 제공합니다.

예산 및 관리 회계 시스템에 대한 링크

구조 단위에 자체 "재정" 계획이 있는 경우 재정적 책임의 중심지로 간주됩니다. 물론 이는 회사가 예산 책정 시스템을 갖추고 있음을 전제로 합니다. 관리회계, 이상적으로는 이전가격 시스템입니다. 각 구조 단위(재정 책임 센터)의 손익 보고서에는 "이익"(내부 "수익"이 비용 금액을 초과한 경우) 또는 "손실"(비용 금액이 내부 비용 금액을 초과한 경우)이 있습니다. "수익") 또는 "0"(비용 금액이 내부 "수익" 금액과 일치하는 경우). 재정적 목표구조적 분할은 원칙적으로 핵심의 계획된 가치 달성과 관련됩니다. 재무 지표. 또한, “재정” 예측에서 이들 부서는 예산 범위 내에서 유지하고 다른 예측에 대한 지표의 목표 값을 달성할 경우 받을 것으로 예상되는 보너스의 목표 값을 포함합니다. 예를 들어 내부 고객 만족도 지수(예상 “클라이언트”)가 계획된 것과 일치하면 전문적인 테스트 결과에 따른 평균 점수가 달성되고 일정 횟수의 개선 제안이 이루어지며(“직원”) 결함이 발생합니다. 비율이 충족되면 내부 표준(“비즈니스 프로세스”) 위반이 허용되는 횟수입니다.

계단식 깊이: 청소부에게 "지도"가 필요합니까?

전략적 목표, 지표 및 주요 최고 수준 활동의 "지도"가 형성된 후 생산, 마케팅, 공급, 재무를 위한 총책임자의 주요 대리인을 위해 유사한 "지도"가 생성됩니다. 물론 회사의 두 번째 사람은 회사의 전략 전체와 실행에 대한 기여도를 알고 이해해야 할 의무가 있습니다. 추가 계단식(계층 구조의 세 번째, 네 번째 등의 수준으로)에 관해서는 많은 관리자들이 그 타당성을 의심합니다. 내 친구 중 한 명(감독) 건설 조직) 나에게 "전략"이라는 단어가 있다고 말했어 수석 엔지니어그의 회사는 상점에서 판매되는 게임으로 식별됩니다. 아이들의 세계" 그리고 더 이상은 없습니다. 그러나 감독은 수석 엔지니어(계층의 두 번째 수준)를 위한 목표, 지표 및 활동의 "지도"를 작성함으로써 전략이 중요하지 않다는 점을 그에게 확신시키려고 합니다. 보드게임, 그러나 경쟁이 심화되는 상황에서 기업 생존을 위한 요소입니다. 앞으로 감독은 감독 수준(세 번째 계층)에 도달하기를 희망합니다. 네 번째 수준(석공, 화가, 도우미)으로 계단식으로 올라가는 것은 그에게 쓸모없는 일처럼 보입니다. 그는 직원들의 낮은 교육 수준과 일반적인 문화 ( "전략이라는 단어조차 모릅니다")와 회사에 대한 충성심 부족 ( "오늘은 나를 위해 일하고 내일은 이사 할 것입니다")으로 자신의 입장을 정당화합니다. 다른 회사로”).

"심층적인" 계단식 연결을 거부하는 다른 이유에는 기밀을 유지하려는 욕구("모든 회사 직원에게 전략을 소개하는 것은 경쟁사의 공장에 지장을 줍니다.")와 사업 단위를 위한 이러한 "지도"를 작성하는 데 소요되는 시간과 자원을 절약하려는 욕구가 포함됩니다. 첫 번째 주장은 비판을 견디지 못합니다. 전략을 구현해야 하는 사람들이 전략을 알지 ​​못하면 구현되지 않을 것입니다. 두 번째는 이에 대해 많은 의견이 있습니다. 예를 들어, 회사의 관리자가 어떤 유형의 관리자인지에 따라 영향을 받을 수 있습니다. 항상 "이것이 우리에게 얼마나 많은 비용이 들까요?"라고 묻는 사람 또는 "이것이 우리에게 무엇을 가져다 줄까요?"에 관심이 있는 사람입니다. 문제는 '분모'(프로젝트 비용)의 합은 어느 정도 정확하게 추정할 수 있지만 '분자'(금전적 형태로 프로젝트를 구현하는 효과)의 합은 추정할 수 없다는 점입니다. 회사의 관리 효율성이 향상되고 갈등 수가 감소했으며 균형 성과표 시스템 도입 후 20 분의 점심 시간 대신 관리자가 자신을 최대한 허용하기 시작했다는 사실 만 이야기 할 수 있습니다. 40대로...

Hewlett Packard의 14만 직원 모두가 핵심 목표, 지표 및 활동에 대한 자체 "지도"를 가지고 있다는 사실을 생각하는 방법은 다양합니다. 어떤 사람들은 돈에 관심이 없어서 관리용 장난감을 가지고 놀고 있다고 말할 것이고, 다른 사람들은 "하이테크" 노트북에 매우 만족한다고 말할 것이며, 아마도 BSC 시스템도 이에 대한 책임이 있을 것입니다. . 2004년에 Horvath & Partners가 독일어권 비즈니스 환경(독일, 오스트리아, 스위스)에서 실시한 조사에 따르면, 조사 대상 기업 중 75%가 최상위 "지도"를 갖고 있으며, 44%는 보조용으로 이러한 "카드"를 만들었습니다. 수준의 기능 단위, 10%는 아이디어를 각 직원에게 "계단식" 적용했습니다.

물론 전사적인 BSC 시스템이 하루아침에 만들어지는 것은 아닙니다. 두 번째 수준의 개발된 "지도"는 "연마"되고 한동안 완료됩니다. 첫 번째 단계에서는 특정 구조 단위의 전략 구현 참여와 관련된 모든 뉘앙스를 고려하는 것이 거의 불가능하기 때문입니다. . 이 후에야 조직 계층의 세 번째 및 후속 수준으로의 계단식 연결이 시작됩니다. 그러나 BSC 시스템 구축에 참여하는 직원들이 열정을 잃지 않도록 두 번째 단계와 후속 단계로의 계단식 간격이 너무 길지 않아야 합니다. 일반적으로 천천히 서둘러야 하고, 쇠가 뜨거울 때 두드려야 합니다.

구조적 분할을 위한 "카드"

전략적 목표를 수립할 때 기업은 일반적으로 R. Kaplan이 제안한 원칙인 20이면 충분합니다(“20이면 충분합니다”)를 따릅니다. 즉, 회사의 "지도"에는 20개 이하의 핵심 목표가 있어야 합니다(예상 가능한 활동의 ​​주요 측면 수). 구조적 부문에 대한 "지도"를 작성할 때 동일한 원칙을 준수하는 것이 좋습니다. 예를 들어 최고 물류 책임자, 마케팅 책임자 및 재무 책임자도 각각 약 20개의 목표를 가져야 합니다.

하나의 목표는 하나가 아닌 여러 지표로 측정하고 설명할 수 있으므로 "지도"에는 40, 60개 또는 그 이상의 지표가 있을 수 있습니다. 그들의 전체 목록그의 "영토"에 대한 종합적인 평가를 위해 구조 단위의 관리자에게 필요하지만 이러한 모든 지표에 따라 그의 작업을 평가하는 것은 거의 권장되지 않습니다. 첫째, 일부 지표는 단순히 특정 조직 단위의 상태를 알려주지만 해당 단위 직원의 성과와 직접적인 관련이 없습니다. 예를 들어, 제재소(다른 회사에서 사용)를 위해 최근 구입한 제재소의 마모 정도는 총책임자(“인프라” 예측)의 관심 사항일 수 있지만 이 제재소의 성능을 평가하는 데는 거의 사용할 수 없습니다. 구조적 단위(예를 들어 결함 비율, 내부 불만 수 또는 정시에 완료된 주문량과 다름)

둘째, 지표가 너무 많으면 정보를 인식하기가 어렵습니다. 여기서는 잘 알려진 파레토 원칙을 상기하고 지표의 20%를 고려하면 특정 조직 단위의 성공을 80% 평가할 수 있다고 가정하는 것이 적절합니다. 즉, 특정 단위의 지표 목록에서 핵심 항목을 선택하고 나머지는 추가 항목으로 고려하는 것이 좋습니다. 구조 단위의 주요 지표는 일정 간격으로 고위 경영진에 의해 검토되며, 이 단위의 직원이 적시에 고품질 방식으로 작업을 수행하려면 전체 목록(추가 항목과 함께)이 필요합니다. 설정된 예산 내에서).

예를 들어 위에서 언급한 엔지니어링 및 건설 회사의 BSC 시스템에는 17개의 전략 목표와 41개의 지표가 포함되어 있습니다. 이 목록에서 회사 경영진은 부서 업무의 운영 모니터링에 사용되는 9가지 주요 항목을 선택했습니다.

  • 부서의 비용 계획과의 편차;
  • 구매 비율로 지불 계정;
  • 내부 불만 건수
  • 주요 공급업체와 협력하기 위한 알고리즘 위반 횟수
  • 필요한 자원 부족으로 인한 가동 중지 기간;
  • 계획된 배송 날짜 위반 횟수;
  • 구매한 리소스의 결함 비율
  • 결혼 결혼 비용;
  • 구매 목록의 사양 미준수 건수입니다.

확장된 지표 목록(관리자에 의한 값의 덜 빈번한 모니터링을 의미하거나 부서 내에서 사용하기 위한 지표 포함)에는 다음 값이 포함됩니다.

  • 구매 금액;
  • 연체된 미지급금 금액;
  • 부서 직원 급여의 고정 부분;
  • 임금의 가변 부분;
  • 동료가 부서 직원의 작업에 대한 점수 평가;
  • 목표 역량 세트에 대한 직원 자격 준수 비율
  • 일반 직원 만족도 지수 등

동기 부여 시스템과 "카드"의 연결

목표 지표 달성에 대한 임금의 직접적인 의존성은 복잡한 문제입니다. 회사 전체의 관점에서 지표 X의 목표 값에서 2% 편차가 지표 Y의 10% 편차보다 더 문제가 될 수 있다는 점을 이해하는 것이 중요합니다. 목표와 지표의 "맵"과 동기 부여 시스템 간의 연결에는 종종 가중치 시스템을 사용하여 각 지표에 특정 수준의 중요성을 할당합니다. 배 중 하나에서 발전한 회사의 상황을 방지하는 것도 중요합니다. 선장은 선원들이 잡은 쥐마다 보너스를주었습니다. 그가 만든 동기 부여 시스템은 선원들이 판매 수익을 극대화하기 위해 쥐를 적극적으로 사육하기 시작했다는 사실로 이어졌습니다.

BSC 내에서 동기 부여 시스템을 구축할 때 다음 딜레마를 해결해야 하는 경우가 많습니다. 한편, 동기 부여 시스템은 가능하다면 전체 목표 범위의 달성을 고려해야 합니다(그렇지 않으면 직원은 이 시스템과 관련된 목표에만 집중하고 다른 목표는 무시할 수 있음). 반면에, 이는 간단하고 이해하기 쉬워야 합니다. 따라서 제한된 수의 지표를 고려해야 합니다. 타협 옵션으로 직원의 월급을 3-5개의 주요 지표에 "연결"할 것을 제안할 수 있으며 정기적인 지불(프로젝트 완료와 관련하여 분기별, 반기별, 연간)은 더 큰 금액에 따라 달라질 수 있습니다. 지표의 수.

또한 조직 계층 수준의 세부 사항과 수행되는 작업의 성격을 고려할 필요가 있습니다. 예를 들어, 수석 마케팅 담당자의 직업은 창의적인 것으로 간주됩니다. 상대적으로 말하면, 그는 몇 주 동안 사무실에 나타나지 않을 수 있으며 분기에 한 번 회사의 경쟁력을 높이는 또 다른 훌륭한 아이디어를 생각해 낼 수 있습니다. 그러한 직원을 위해 많은 회사에서는 매우 단식동기 부여-큰 급여 (아이디어에 대한 보너스 포함) 또는 해고. 예를 들어 제재소에서 직원을 위한 동기 부여 시스템은 더 복잡할 수 있습니다. 고정 급여 금액, 특정 지표의 목표 값 달성에 대한 보너스(예: 개선 제안 수, 직원 수당 생산량)를 포함합니다. , 정시에 완료된 주문 비용, 예산 절감 비율) 및 기타 지표의 편차에 대한 벌금(예: 결함 비율, 폐기물 양, 부서의 잘못으로 인한 예정되지 않은 장비 수리 비용, 내부 불만 건수).

당근과 채찍(벌금과 보너스 모두)의 원칙에 기초한 동기 부여 시스템뿐만 아니라 "채찍"("당근"만) 또는 "당근"("채찍"만)을 거부하는 시스템도 있습니다. 각각은 특정 상황에서 가장 적절할 수 있으며 BSC의 목표 및 지표 시스템을 기반으로 합니다. 또 다른 흥미로운 옵션은 특정 직원(1단계), 해당 부서(2단계) 및 회사 전체(3단계)의 성과를 고려하는 3단계 동기 부여 시스템입니다.

다른 회사의 유사한 구조 부문의 BSC 시스템은 얼마나 유사합니까?

물류부서, 재무부서, IT부서, 마케팅부서 등의 목표, 지표, 활동에 대한 표준 시스템이 있습니까? 경영대학원 운전자와 통신사 운전자의 BSC 제도는 동일한가요?

이러한 질문에 답하려면 기업이 BSC 시스템을 사용하는 이유를 기억해야 합니다. 주요 목표는 회사 직원에게 전략을 전달하는 것입니다. 그리고 전략은 항상 독창성과 연관되어 있습니다. 성공적인 전략이 구축되는 것은 고객에게 제공되는 제안의 고유성에 대한 명확한 이해에 있습니다.

그리고 전략이 독특하기 때문에 전략적 목표, 지표 및 최상위 활동 시스템도 독특할 것입니다. 따라서 구조 단위의 목표, 지표 및 활동 시스템도 독특합니다. 물론 경영대학원과 통신회사에서 근무하는 운전자의 BSC 시스템이 근본적으로 다르다고 말할 수는 없다. 그들의 "지도"는 부분적으로 유사하지만 부분적으로는 그렇지 않습니다. 예를 들어, 경영대학원에서 근무하는 운전자에게는 기본 지식이 필요합니다. 영어, 해외 파트너를 만나기 위해 공항에 자주 가야하기 때문입니다. 그리고 통신 회사의 운전자는 회사 색상으로 도색된 자동차를 완벽한 청결 상태로 유지해야 할 의무가 있습니다. 마케팅 전략회사.

캐스케이딩은 BSC 시스템의 이데올로기가 제시한 "전략을 모든 사람의 일상 업무로 삼아라"라는 유명한 원칙의 실제적인 구현을 보장하기 위해 설계되었습니다. 그가 구현에 어떤 기여를 했는지, 그리고 어떻게 임금. 간단하고 독창적인 관리 도구인 균형성과표(Balanced Scorecard) 시스템이 바로 이러한 목적을 달성합니다.

    블라디슬라프 톨카흐, Galaktika Business School 통제 아카데미 이사, 민영화 및 경영 연구소 통제 부서 책임자.

현재 점점 더 많은 소유자와 최고 관리자가 회사의 경쟁력과 효율성을 높이고 계획된 전략을 구현하는 도구와 활동에 대해 생각하고 있습니다.

이 기사에서는 다음에 대해 이야기합니다. 성공적인 경험특정 직원의 최종 결과를 회사의 전략적 목표 및 목표와 연결할 수 있는 도구를 사용하여 Toyota Center Dnepropetrovsk 및 Lexus Dnepropetrovsk Center 회사의 예를 사용하여 목표별 관리 시스템을 구현하는 프로젝트 구현.

그러한 전략 실행 도구 중 하나는 널리 알려진 것입니다. 균형 잡힌 시스템지표(균형성과표), R. Kaplan 교수와 D. Norton 교수가 개발했습니다. 이 시스템관리자는 회사의 전략적 목표를 부서 및 주요 직원의 운영 활동에 대한 명확한 계획으로 변환하고 다음을 사용하여 전략 구현 측면에서 활동 결과를 평가할 수 있습니다. 주요 지표능률. 똑같이 잘 알려진 또 다른 도구는 시스템입니다. 목표에 의한 관리, 1950년대 피터 드러커(Peter Drucker)가 제안한 것입니다. 이러한 관리의 본질은 운영 수준에서 각 직원의 비즈니스 목표를 분해하는 것입니다. 분해- 이는 조직의 각 계층에 대한 회사의 전략과 목표를 최상위에서 최하위로 계단식(분해)하는 프로세스입니다. 계단식 프로세스에는 형성된 전략적 목표 및 활동 트리(수평 및 수직 방향)가 회사의 각 부서로 순차적으로 이전되는 과정이 포함됩니다. 그 결과 회사의 개별 구조 부서와 직위(수직 통합)에 대한 "목표 맵"이 생성됩니다. 그리고 동일한 계층의 부서 간 활동과 '목표 맵'에 대한 데이터를 조정하는 프로세스(수평통합)도 수행됩니다. 회사의 조직 구조는 계단식 배열의 기초로 간주됩니다.

목표관리제 구축 및 시행을 위한 사업여러 단계가 포함됩니다:

1. 전략적 목표 트리의 형성.

모든 회사는 어떤 형태로든 전략적 목표를 가지고 있습니다. 필요조건명확한 공식화와 모순이 없다는 점입니다. 가장 좋은 방법기업 목표를 결정하는 것은 전략을 구현하는 데 필요한 활동 영역에서 목표를 공식화하는 것입니다. 이 경우 "재무", "고객 및 마케팅", "비즈니스 프로세스", "인사 및 시스템"의 4가지 구성 요소에 대해 D. Norton과 R. Kaplan이 제안한 체계를 사용하는 것이 좋습니다. . 각 관점에 대한 질문에 대답하면 목표와 해당 활동 및 지표를 공식화할 수 있습니다.

예를 들어 회사의 전략 지도를 작성할 때 도요타 센터(“Almaz Motor”, “Almaz System”), 최고 관리자와 라인 관리자로 구성된 팀은 미래에 대한 약 20가지 목표를 식별했습니다.

  • 재원:회사 이익을 N%만큼 증가
  • 클라이언트와 마케팅: 딜러 네트워크 전반에 걸쳐 평균 N% 이상의 고객 만족도를 보장합니다.
  • 비즈니스 프로세스: 계수 N 수준의 노동생산성 확보
  • 인력 및 시스템: 형태 인력 예비리더십 위치에

2. 계단식 전략적 목표.

전략적 목표 트리(“WHAT”)가 형성된 후에는 지정된 목표(“HOW”)를 달성하기 위한 작업과 활동을 더욱 명확히 할 필요가 있으며, 구현과 관련된 부서도 결정됩니다. – “WHO ”

따라서 다음과 같이 정의된 전략적 목표와 지표는 다음과 같습니다. 최상위 수준조직은 하위 부서 및 직위에서 전체 회사 목표에 대한 기여도를 추적하는 데 사용되었습니다. 각 목표는 SMART 기술을 사용하여 형성되었습니다.

단위의 목표는 다음과 같이 고차원 목표로 구성됩니다.

에이)다음 레벨 유닛이 이 목표의 구현에 영향을 미치는 경우 지도에 더 높은 레벨 유닛의 목표를 포함합니다(예: "자동차 판매점에서 X대 자동차 판매 계획을 이행"은 필수적인 부분목표 "지역에서 Y 대의 자동차 판매 계획 이행");

비)상위 부서의 목표를 복제하지만 자체 목표 값을 갖습니다(예: "작년 대비 활성 고객 기반 20% 증가", "... 10% 증가").

다섯)정의 새로운 목표전략적 요소와 관련되어 있으며 구현에 직간접적으로 영향을 미칩니다(예: "네트워크 평균의 +5%로 고객 만족도 보장"은 "기업에서 확립된 표준 준수"라는 목표로 해석됨).

G)특정 부서나 직위에 중요하고 더 높은 수준의 목표를 기반으로 공식화할 수 없는 특정 단위에서 지원하는 전략적 목표와 개별 목표의 조합입니다.

조직의 모든 수준에 대한 목표 및 지표 시스템을 개발할 때 모든 직위가 최상위 시스템의 모든 목표 및 지표에 영향을 미칠 것이라고 기대해서는 안됩니다. 조직은 각 기능에서 모든 직원의 다양한 기술을 결합하여 가치를 창출합니다.

예를 들어, Lexus의 창립 원칙 중 하나인 "우수성 추구"는 고품질 차량 생산과 고객 서비스 모두에서 분명하게 드러납니다. “고객 만족도 향상”이라는 전략적 목표를 실현하기 위해 영업 부서는 다음을 보장해야 합니다. 고품질서비스는 고객이 자동차를 소유함으로써 얻을 수 있는 모든 혜택을 강조하며, 서비스 부서는 고품질의 애프터 서비스를 제공하고 문제에 대한 신속하고 수익성 있는 솔루션을 제공해야 합니다. 그러나 이러한 모든 목표는 관리자가 전문가 팀을 만들 수 있는 경우에만 가능합니다. 그리고 이 과정에는 선택부터 모든 단계가 포함됩니다. 적합한 사람들지속적인 교육과 개발을 조직합니다. 성과 관리는 목표 설정, 평가 및 피드백과 같이 특히 중요합니다.

마이크로서비스 아키텍처를 사용하여 트랜잭션 비즈니스 애플리케이션을 개발하는 방법에 대한 유용한 기사의 첫 번째 부분에 대한 번역을 알려드립니다.

마이크로서비스 아키텍처는 서비스를 모듈화 단위로 사용합니다. 각 서비스는 특정 결과를 얻기 위해 작업을 수행하는 별도의 비즈니스 프로세스 또는 비즈니스 개체입니다. 예를 들어 이 아키텍처를 사용하는 온라인 상점은 다음과 같은 마이크로서비스로 구성될 수 있습니다. 주문 서비스(주문 서비스), 고객 서비스(고객 서비스), 제품 카탈로그(카탈로그 서비스) 등

각 서비스에는 명확한 경계가 있으므로 시간이 지나도 애플리케이션을 모듈식으로 유지하는 것이 훨씬 쉽습니다. 마이크로서비스 아키텍처에는 서비스를 서로 독립적으로 배포하고 확장하는 기능을 포함하여 다른 이점도 있습니다.

불행하게도 애플리케이션을 서비스로 나누는 것은 보기만큼 간단하지 않습니다. 앞서 언급했듯이 애플리케이션의 여러 가지 측면이 모델입니다. 주제 영역, 거래와 요청을 분리하기 어렵습니다. 이러한 어려움의 이유를 살펴 보겠습니다.

문제 #1: 도메인 모델 분할

도메인 모델 패턴은 다음과 같습니다. 좋은 의미로복잡한 비즈니스 로직 구현. 온라인 상점의 도메인 모델에는 다음과 같은 클래스가 포함됩니다. 주문하다, 주문 품목, 고객, 제품. 마이크로서비스 아키텍처 수업 주문하다그리고 주문 품목서비스의 일부입니다 주문하다, 수업 고객서비스의 일부입니다 고객, 그리고 수업 제품서비스에 속합니다 목록.

도메인 모델을 서비스로 나눌 때의 문제점은 클래스가 종종 서로를 참조한다는 것입니다. 예를 들어, 주문하다다음을 가리킨다 고객누가 만들었고, 품목 주문참조하다 상품. 서비스 경계를 ​​위반하는 링크는 어떻게 해야 합니까? 나중에 우리는 DDD(Domain Driven Design)의 Aggregate 개념이 이 문제를 어떻게 해결하는지 살펴보겠습니다.

마이크로서비스 및 데이터베이스

마이크로서비스 아키텍처의 독특한 특징은 서비스에 속한 데이터가 해당 서비스의 API를 통해서만 액세스할 수 있다는 것입니다. 예를 들어 온라인 상점에서 주문 서비스에는 ORDERS 테이블이 포함된 데이터베이스가 있고 고객 서비스에는 CUSTOMERS 테이블이 포함된 자체 데이터베이스가 있습니다. 이러한 캡슐화로 인해 서비스는 느슨하게 결합되며 개발자는 다른 서비스를 작업하는 개발자와 협력할 필요 없이 서비스 디자인을 변경할 수 있습니다. 애플리케이션 실행 중에 서비스는 서로 격리됩니다. 예를 들어 서비스는 다른 서비스가 소유한 데이터베이스에 대한 잠금이 완료될 때까지 기다리지 않습니다. 반면, 데이터베이스의 기능적 분할로 인해 데이터 무결성을 유지하고 다양한 유형의 쿼리를 구현하기가 어렵습니다.

문제 #2: 거래

전통적인 모놀리식 애플리케이션은 비즈니스 규칙을 시행하기 위해 트랜잭션에 의존할 수 있습니다. 예를 들어, 온라인 상점 고객이 새 주문을 생성하기 전에 확인해야 하는 신용 ​​한도가 있다고 가정해 보겠습니다. 애플리케이션에서는 여러 번의 동시 주문 시도가 고객의 신용 한도를 초과하지 않도록 해야 합니다. 주문과 고객이 동일한 데이터베이스에 있는 경우 문제에 대한 간단한 해결책은 트랜잭션(적절한 격리 수준)을 사용하는 것입니다.

거래 시작... CUSTOMER_ID =인 주문에서 ORDER_TOTAL을 선택하세요. … CUSTOMER_ID가 =인 고객으로부터 CREDIT_LIMIT를 선택하세요. … 주문에 삽입 … … 거래 커밋
안타깝게도 마이크로서비스 지향 접근 방식에서는 데이터 일관성을 유지하기 위해 이러한 간단한 접근 방식을 사용할 수 없습니다. ORDERS 및 CUSTOMERS 테이블은 서로 다른 서비스에 속하며 API를 통해서만 액세스할 수 있습니다. 서로 다른 데이터베이스에 있을 수도 있습니다.

안에 이 경우전통적인 솔루션은 분산 트랜잭션이지만 이는 현대 애플리케이션에 적합한 기술이 아닙니다. CAP 정리에서는 개발자가 가용성과 일관성 중에서 선택해야 하며 일반적으로 가용성이 선호됩니다. 또한, 많은 현대 기술대부분의 NoSQL 데이터베이스와 같이 분산 트랜잭션은 물론 일반 트랜잭션도 지원하지 않습니다. 무결성을 유지하는 것도 중요하므로 다른 솔루션이 필요합니다. 아래에서는 이벤트 소싱을 기반으로 하는 이벤트 중심(메시지 중심) 아키텍처를 사용하는 솔루션을 살펴보겠습니다.

문제 #3: 데이터베이스 쿼리

데이터 무결성을 유지하는 것과 함께 데이터베이스 쿼리도 어려운 과제입니다. 기존 모놀리식 애플리케이션에서는 조인을 사용하는 쿼리가 매우 일반적입니다. 예를 들어 최근 등록한 고객과 해당 고객을 쉽게 찾을 수 있습니다. 대량 주문요청을 사용하여:

SELECT * FROM CUSTOMER c, ORDER o WHERE c.id = o.ID AND o.ORDER_TOTAL > 100000 AND o.STATE = "SHIPPED" AND c.CREATION_DATE > ?
마이크로서비스 중심의 온라인 상점에서는 이런 종류의 요청을 사용할 수 없습니다. 앞서 언급했듯이 ORDERS 및 CUSTOMERS 테이블은 서로 다른 서비스에 속하며 API를 통해서만 액세스할 수 있습니다. 일부 서비스는 SQL 데이터베이스를 사용하지 않을 수도 있습니다. 그러나 이벤트 소싱이라는 접근 방식을 사용하면 정보를 찾는 것이 훨씬 더 어려워집니다.

나중에 CQRS(Command Query Responsibility Segregation)라는 접근 방식을 사용하여 구체화된 뷰를 저장하는 것이 해결책이라는 점을 살펴보겠습니다. 하지만 먼저 마이크로서비스를 개발할 때 DDD(Domain-Driven Design) 문제를 살펴보겠습니다.

DDD는 마이크로서비스의 빌딩 블록으로 집계됩니다.

보시다시피 마이크로서비스를 사용하여 애플리케이션을 성공적으로 개발하려면 해결해야 할 몇 가지 문제가 있습니다. 이러한 문제 중 일부에 대한 해결책은 Eric Evans의 필독서인 Domain-Driven Design에서 찾을 수 있습니다. 복잡한 설계에 대한 접근 방식을 설명합니다. 소프트웨어, 이는 마이크로서비스를 개발할 때 매우 유용합니다. 특히, 도메인 기반 설계를 사용하면 서비스 전반에 분산될 수 있는 모듈식 도메인 모델을 만들 수 있습니다.

집계란 무엇입니까?

도메인 중심 설계에서 Evans는 도메인 모델에 대한 여러 구성 요소를 정의합니다. 엔터티, 값 객체, 서비스, 리포지토리 등을 포함하여 이들 중 다수가 개발자의 일상 언어의 일부가 되었습니다. 그러나 한 가지 구성 요소인 집합체는 DDD 순수주의자를 제외한 개발자들에 의해 대부분 무시되었습니다. 그러나 집계는 마이크로서비스 개발의 핵심이라는 것이 밝혀졌습니다.

집계는 단일 전체로 간주될 수 있는 도메인 개체의 클러스터입니다. 이는 루트 엔터티와 하나 이상의 기타 관련 엔터티 및 값 개체로 구성됩니다. 예를 들어 온라인 상점의 도메인 모델에는 다음과 같은 집계가 포함됩니다. 주문하다그리고 고객. 단위 주문하다루트 엔터티로 구성 주문하다, 하나 이상의 주문 항목 값 개체와 함께 다음과 같은 다른 값 개체 가격, 배송 주소그리고 결제 세부정보. 단위 고객에센스로 구성되어 있어요 고객그리고 다음과 같은 여러 값 개체 배송정보그리고 결제정보.

집계를 사용하면 도메인 모델을 개별적으로 이해하기 쉬운 조각으로 나눕니다. 또한 로드 및 삭제와 같은 일련의 작업을 정의합니다. 집계는 일반적으로 데이터베이스에서 전체적으로 로드됩니다. 집계를 삭제하면 모든 개체도 삭제됩니다. 그러나 집계의 이점은 도메인 모델의 모듈성보다 훨씬 뛰어납니다. 집계는 특정 규칙을 따라야 하기 때문입니다.

집계 간 관계는 기본 키를 사용해야 합니다.

첫 번째 규칙은 집계가 항상 직접적인 개체 참조 대신 고유 식별자(예: 기본 키)를 통해 서로를 참조한다는 것입니다. 예를 들어, 주문하다그의 것을 가리킨다 고객, 고객 개체에 대한 참조 대신 CustomerId를 사용합니다. 비슷하게, 주문 품목다음을 가리킨다 제품 ProductID를 사용합니다.

이 접근 방식은 도메인 모델의 외래 키가 나쁜 관행으로 간주되는 기존 접근 방식과 매우 다릅니다. 개체 참조 대신 식별자를 사용한다는 것은 집계가 느슨하게 결합되어 있음을 의미합니다. 다양한 서비스에 다양한 단위를 쉽게 배치할 수 있습니다. 실제로 서비스의 비즈니스 로직은 집합 집합인 도메인 모델로 구성됩니다. 예를 들어 OrderService에는 집계가 포함되어 있습니다. 주문하다, CustomerService에는 집계가 포함되어 있습니다. 고객.

하나의 트랜잭션이 하나의 집계를 생성하거나 업데이트합니다.

두 번째 규칙은 트랜잭션이 하나의 집계만 생성하거나 업데이트할 수 있다는 것입니다. 몇 년 전 제가 이 규칙에 대해 처음 읽었을 때 전혀 이해가 되지 않았습니다! 당시 저는 트랜잭션이 임의의 데이터를 업데이트할 수 있도록 전통적인 모놀리식 RDBMS 기반 애플리케이션을 개발하고 있었습니다. 오늘날 이러한 제한은 마이크로서비스 아키텍처에 이상적입니다. 이렇게 하면 트랜잭션이 서비스 내에 포함됩니다. 이 제한은 대부분의 NoSQL 데이터베이스의 트랜잭션 제한과도 일치합니다.

도메인 모델을 개발할 때 중요한 결정은 각 특정 집계를 얼마나 크게 만들 것인가입니다. 이상적으로는 단위가 작아야 합니다. 이는 책임을 공유함으로써 모듈성을 향상시킵니다. 일반적으로 장치가 완전히 로드되므로 이는 더 효율적입니다. 또한 각 집계는 순차적으로 업데이트되므로 더 작은 집계를 사용하면 애플리케이션이 처리할 수 있는 동시 요청 수가 늘어나 확장성이 향상됩니다. 또한 두 명의 사용자가 동시에 동일한 장치를 업데이트하려고 시도할 가능성도 줄어듭니다.

반면에 집계는 트랜잭션의 범위이므로 특정 업데이트를 원자적으로 만들기 위해 더 큰 집계를 정의해야 할 수도 있습니다.

예를 들어 위에는 온라인 상점의 도메인 모델에서 주문하다그리고 고객- 이들은 별도의 단위입니다. 대안은 다음과 같습니다. 주문하다유닛의 일부 고객. 대형 유닛의 장점 고객애플리케이션이 신용 한도를 원자적으로 확인할 수 있다는 것입니다. 이 접근 방식의 단점은 기능을 결합한다는 것입니다. 주문하다그리고 고객같은 서비스에서. 이는 동일한 고객에 대해 서로 다른 주문을 업데이트하는 트랜잭션을 병렬로 실행할 수 없기 때문에 확장성을 감소시킵니다. 또한 두 사용자가 동일한 고객의 다른 주문을 편집하려고 하면 충돌이 발생할 수 있습니다. 주문량이 증가함에 따라 단위로드가 증가합니다. 고객점점 더 비싸질 것입니다. 이러한 문제 때문에 단위를 가능한 한 작게 유지하는 것이 가장 좋습니다.

트랜잭션에 의해 하나의 집계만 생성되거나 업데이트되어야 한다는 요구 사항이 있더라도 애플리케이션은 여전히 ​​집계 간의 일관성을 유지해야 합니다. 예를 들어, 서비스 주문하다새 장치를 확인해야 합니다. 주문하다고객의 총 신용 한도를 초과하지 않습니다. 여러 가지가 있습니다 다양한 방법으로일관성 유지. 한 가지 옵션은 애플리케이션을 속이고 단일 트랜잭션에서 여러 집계를 생성/업데이트하는 것입니다. 이는 모든 집계가 동일한 서비스에 속하고 동일한 RDBMS에 저장된 경우에만 가능합니다. 또 다른 더 나은 옵션은 이벤트 중심 접근 방식을 사용하여 집계 간의 일관성을 유지하는 것입니다.

이벤트를 사용하여 데이터 일관성 유지

최신 애플리케이션에는 서비스 전반에 걸쳐 데이터 일관성을 유지하기 어렵게 만드는 다양한 트랜잭션 제한 사항이 있습니다. 각 서비스에는 자체 데이터가 있지만 분산 트랜잭션을 사용하는 것은 실행 가능한 옵션이 아닙니다. 또한 많은 애플리케이션은 분산 트랜잭션은 물론 일반 로컬 트랜잭션도 지원하지 않는 NoSQL 데이터베이스를 사용합니다. 따라서 최신 애플리케이션은 최종 일관성이라는 이벤트 기반 트랜잭션 모델을 사용해야 합니다.

이벤트란 무엇입니까?

Merriam-Webster 사전(및 Captain Obvious)에 따르면 "이벤트"는 일어나는 일입니다.

이 문서에서는 도메인 이벤트를 집계에 발생한 것으로 정의합니다. 이벤트는 일반적으로 상태의 변화입니다. 예를 들어 단위를 생각해 보세요. 주문하다. 상태를 변경하는 이벤트에는 다음이 포함됩니다. 주문이 생성되었습니다., 주문이 취소됨, 주문이 발송되었습니다. 이벤트는 신용 한도와 같은 비즈니스 규칙을 위반하려는 시도를 나타낼 수 있습니다. 고객.

이벤트 기반 아키텍처 사용

서비스는 다음과 같은 방법으로 집계 간의 일관성을 보장하기 위해 이벤트를 사용합니다. 집계는 눈에 띄는 일이 발생할 때마다 이벤트를 게시합니다. 예를 들어 상태가 변경되거나 비즈니스 규칙을 위반하려는 시도가 있습니다. 다른 집계는 이벤트를 구독하고 자체 상태를 업데이트하여 이에 응답합니다.

온라인 상점에서는 다음 순서에 따라 주문을 생성할 때 고객의 신용 한도를 확인합니다.

  1. 단위 주문하다 NEW 상태로 생성된 은 OrderCreated 이벤트를 게시합니다.
  2. 단위 고객 OrderCreated 이벤트에 대한 알림을 받고, 주문에 대한 크레딧을 예약하고, CreditReserved 이벤트를 게시합니다.
  3. 단위 주문하다 CreditReserved 이벤트 알림을 받고 상태를 APPROVED로 변경합니다.
자금부족으로 신용조회에 실패하는 경우 고객 CreditLimitExceeded 이벤트를 게시합니다. 이 이벤트는 상태 변경을 반영하는 것이 아니라 비즈니스 규칙을 위반하려는 실패한 시도를 나타냅니다. 단위 주문하다이 이벤트에 대한 알림을 받고 상태를 CANCELED로 변경합니다.

이벤트 중심 집계 네트워크로서의 마이크로서비스 아키텍처

이 아키텍처에서 각 서비스의 비즈니스 논리는 하나 이상의 집계로 구성됩니다. 서비스에서 수행되는 각 트랜잭션은 하나의 단일 집계를 업데이트하거나 생성합니다. 서비스는 이벤트를 사용하여 집계 간의 데이터 일관성을 유지합니다.

이 접근법의 특징은 집합체가 약하게 연결되어 있다는 것입니다. 빌딩 블록. 모놀리식 애플리케이션이나 개별 서비스 세트로 배포할 수 있습니다. 프로젝트 시작 시 모놀리식 아키텍처를 사용할 수 있습니다. 그리고 나중에 애플리케이션 및 개발 팀의 규모가 커지면 마이크로서비스 아키텍처로 쉽게 전환할 수 있습니다.

재개하다

마이크로서비스 아키텍처는 애플리케이션을 기능적으로 서비스로 나누며, 각 서비스는 특정 비즈니스 개체 또는 비즈니스 프로세스에 해당합니다. 마이크로서비스 비즈니스 애플리케이션 개발의 주요 과제 중 하나는 트랜잭션, 도메인 모델 및 쿼리가 서비스 분리에 저항한다는 것입니다. 도메인 기반 설계의 "집계" 개념을 적용하여 도메인 모델을 분할할 수 있습니다. 각 서비스의 비즈니스 논리는 하나 이상의 DDD 집계로 구성된 도메인 모델입니다.

각 서비스 내에서 트랜잭션은 단일 집계를 생성하거나 업데이트합니다. 분산 트랜잭션은 최신 애플리케이션에 실행 가능한 기술이 아니기 때문에 이벤트는 집계(및 서비스) 간의 일관성을 유지하는 데 사용됩니다.

기사 2부에서는 이벤트 소싱을 사용하여 강력한 이벤트 기반 아키텍처를 구현하는 방법과 CQRS를 사용하여 마이크로서비스 아키텍처에서 쿼리를 구현하는 방법을 살펴보겠습니다.