ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 이벤트 스토밍
    설계방법 2024. 5. 11. 11:41

    이벤트 스토밍이란?

    프로젝트에 참여하는 모든 이해관계자가 한자리에 모여 도메인 지식을 교환하고 용어를 통일하고 현재 프로젝트 내 회색지대를 파악하여 향후 의사소통 비용을 절감하는 워크숍

     

    이런 경험을 해본 적 있나요?

    - 사장님,업주,셀러 등 사람마다 똑같은 말을 다르게 불러서 의사소통이 어려운 경우

    - 배달에 관한 정책 외의에 참석하여 뭔가 이해가 안 되는 부분이 있다고 생각했는데 알고 보니 서로 다른 배달에 관해 이야기하고 있던 경우

    - 프랜차이즈 본사 메뉴판 수정과 지점 메뉴판 수정의 차이점을 설명하기 어려웠던 경우

    - 배달비를 수정해 달라는 요청을 배달팁을 변경하여 급하게 핫픽스를 해야 했던 경우 

     

    부작용

    - 모든 사람이 동일한 개념에 대한 다른 용어를 사용하거나,다른 개념에 대해 동일한 용어를 사용한다.

    - 하나의 기능을 개발하기 위해 동료 A에게 물어보고 동료 B에게도 물어봐야 한다.

     

    이벤트 스토밍

    - 알베르토 브란돌리니가 제안한 복잡한 비즈니스 도메인을 빠르게 탐색하고 학습할 수 있는 워크숍

    - 도메인 전문가와 개발자를 도메인 학습과정에 참여시키기 위한 빠른 설계 기법

    - 코드를 없애고 모든 사람을 동일한 수준으로 만드는 시각적 접근 방법

     

    준비물

    - 큰 회의실, 커다란 종이, 수많은 포스트잇과 마커펜

    - 실제 문제 해결에 관련된 모든 사람(질문이 있는 사람, 답을 가진 사람)

    - 당분은 보충할 수 있고 참여자가 선호하는 간식

     

    진행 방법

    - 벽에 커다란 종이를 붙여 놓고 그 위에 포스트잇을 붙여 나간다.

    - 모든 사람의 생각을 허용하고 존중한다.

    - 비즈니스 프로세스를 이해하는 데에 초첨을 맞춘다.

     

    왜 포스트잇인가?

    - 가능한 가장 간단한 표기법을 사용하면 회의실에 있는 모든 사람이 적극적으로 참여할 수 있다.

    - 떼어 내고 붙이기가 쉽기 때문에 이동이 가능하며, 틀린 경우에도 뗄 수 있어 부담을 줄일 수 있다.

     

    도메인 이벤트 - 주황색

    - 도메인 전문가가 관심이 있는 어떤 사건

    - 이벤트 이름은 과거에 일어났던 일을 표현하기 때문에 과거 시제를 사용한다.

    - 이벤트가 발생한다는 것은 상태가 변경되었다는 것을 의미한다.

     

    1단계: 혼란스러운 탐험

    - 각자가 알고 있는 도메인 이벤트를 작성한다.

    - 각자가 작성한 이벤트는 볼 수 있지만, 토론을 시작하지 말고 자신이 옳다고 생각하는 방식으로 기록한다.

     

    안티패턴: 위원회

    - 포스트잇을 붙이기 전에 합의에 도달하기 위해 논의하는 것은 우리가 탐구하려는 모순을 숨긴다.

    - 관련된 모든 당사자의 동의가 필요하며, 엄청난 시간이 소요될 수 있다.

     

    2단계: 타임라인 적용

    - 모든 도메인 이벤트를 올바른 타임라인으로 정렬하고 실제로 중복되는 이벤트를 제거한다.

    - 시간은 왼쪽에서 오른쪽으로 흐르고, 위에서 아래로 평행한 시간을 표현할 수 있다.

     

    드라이버와 내비게이터

    - 타임라인을 정리할 때 드라이버와 내비게이터를 결정한다.

    - 상황에 따라 이미 잘 알고 있는 사람이나 배워야 할 사람이 드라이버를 맡는다.

    - 드라이버는 충분히 기여했다고 판단되면 역할을 유동적으로 교체한다.

     

    핫스폿 - 자주색

    - 2단계에서 발생한 질문,갈등,불평,불만 사항을 시각화하고 캡처한다.

    - 당장 토론하지 않는다. 나중에 문제가 해결되면 제거한다.

    - 핫 스폿이 파악되기만 해도 의미 있는 워크숍이 된다.

     

    액터와 시스템 - 노란색과 분홍색

    - 단순한 사용자 또는 고객보다 구체적인 페르소나를 설정한다.

    - 외부 시스템부터 일부 레거시 및 마이크로서비스에 이르기까지 책임을 전가할 수 있는 모든 것.

     

    바운디드 컨텍스트

    - 같은 용어라도 의미가 다르고 같은 대상이라도 지칭하는 용어가 다를 수 있다.

    - 명백한 언어 불일치는 종종 동일한 프로세스 내에서 여러 개의 바운디드 컨텍스트를 나타내는 지표다.

     

    커맨드 또는 액션 - 파란색

    - 시스템에서 일어나는 일

    - 도메인 이벤트가 발생하는 일

     

    리드 모델 또는 정보 - 초록색

    - 결정을 내리는 데 필요한 정보

    - 특정 정책으로 인해 발생한 도메인 이벤트의 결과가 리드 모델에 어떻게 반영되는지 확인할 수 있다.

     

    정책 - 연보라색

    - 주로 '~할 때마다'라는 단어로 시작한다.

    - 도메인 이벤트와 커맨드 사이에 위치한다.

    - 수동이든 자동이든 우리의 정책

     

    비즈니스 규칙 - 연노란색

    - 시스템이 기대하는 책임을 수행하며 일관성을 유지하는 단위

    - 일관성은 항상 참이어야 하는 속성을 유지함으로써 달성된다.

     

    온라인으로 진행하는 것이 좋다.

    이벤트 스토밍은 직접 대면할 때 가장 효과적이다.

    - 이벤트 스토밍은 의사소통이 매우 중요한 워크숍입니다. 온라인 환경에서는 몸짓 언어와 음성 언어가 매우 제한적이므로 효과를 극대화 하려면 오프라인에서 진행하는 것이 좋다.

     

    출저

    https://www.youtube.com/watch?v=gihxS6eE1DM

    '설계방법' 카테고리의 다른 글

    6.응용 서비스와 표현 영역  (0) 2024.09.02
    05. 스프링 데이터 JPA를 이용한 조회 기능  (0) 2024.05.12
    04.리포지터리와 모델 구현  (0) 2024.05.11
    03. 애그리거트  (0) 2024.05.09
    02.아키텍처 개요  (0) 2024.05.07
Designed by Tistory.