事件風暴

维基百科,自由的百科全书
事件風暴的例子

事件風暴(Event storming)是利用研討方式,快速發現軟體特定領域中所發生事物的作法[1][2]。和其他方式比較,此方式相當的簡單,而且過程不需要電腦協助,活動只需要便利貼以及寬闊的牆面。在此活動中,商業流程會變成一連串的領域事件,在活動中會用橘色的便利貼表示

事件風暴是由Alberto Brandolini在領域驅動設計(DDD)的情境下發明。事件風暴可以用作商業流程建模英语Business process modeling以及需求工程的工具。其概念是讓軟體開發者和領域專家(domain expert)聚在一起,互相討論學習[3]。其命名是要讓重心專注在領域事件中,而其進行方式類似腦力激盪法敏捷建模英语Agile modeling時的建模腦力激盪(model storming)。

需求

事件風暴的過程中,會包括有問題要提出的人(一般會是軟體開發人員),以及知道相關問題答案的人(領域專家,product owners)。

建模會在寬闊的牆面以及牆面上的大張白紙上進行,便利貼會貼在白紙上。至少會需要五種不同顏色的便利貼[3]

步驟

事件風暴會用便利貼來進行,圖中是其對應的概念、顏色以及擺放時的相對位置
步驟1:建立領域事件(event)
步驟2:加上造成領域事件發生的命令(command)
步驟2b:加上提出命令的人員(actor)
步驟3:加上對應的聚合(aggregate)

第一個步驟是找到所有的領域事件,寫在橘色便利貼上。

所有領域事件都找到之後,下一個步驟是找到讓領域事件發生的命令,寫在藍色便利貼上,放在對應領域事件的前面。

第三個步驟是識別命令執行以及事件發生的聚合(aggregate),聚合會寫在黃色便利貼上。

事件風暴後形成的概念會分為幾類,每一類都會用對應顏色的便利貼表示: 以下是五個顏色的便利貼、顏色以及內容

  領域事件(Domain event)
在商業流程中出現的事件,若用英文書寫的話,以過去式表示。
  人員(Actor)
人員會透過view提出命令。
  命令(Command)
命令是使用者透過view提出的,會產生領域事件
  聚合(Aggregate)
一組可以視為單一單元處理的領域物件。
  view
用戶在系統上互動,執行任務的環境。

有時也會加上以下的內容

  商業流程(Business process)
依商業規則及邏輯處理命令,會產生一個或是多個領域事件。
  外部系統(External system)
第三方的服務提供者,例如像網上收款平台或是貨運公司。

例子

以下是一個事件風暴的範例。

Users
CreateAccount
AccountCreated
Signup

結果

事件風暴後,可以在建模空間中展示商業流程。不過更重要的是在參與者心裡建立的知識。

參考資料

  1. ^ Brandolini, Alberto. Introducing Event Storming. 2013-11-18 [2017-04-06]. 
  2. ^ George, Chiraag. How to Design an Effective Event Storming Session. Creately Blog. 2021-07-19 [2023-07-07] (美国英语). 
  3. ^ 3.0 3.1 Vernon, Vaughn. Domain-Driven Design Distilled. Addison-Wesley. 2016. ISBN 978-0134434421. 

外部連結