致說不清遺留系統(tǒng)需求的開發(fā)團(tuán)隊——事件風(fēng)暴之父的工作坊實錄之一:“探索業(yè)務(wù)全景”

一家大型跨國企業(yè)收購了另一家大型企業(yè)的的關(guān)鍵業(yè)務(wù)軟件系統(tǒng),并決定用半年時間在上面進(jìn)行定制開發(fā)狈醉,來適應(yīng)新的需求喝峦。這個收購貌似讓前者能快速開展新業(yè)務(wù),但對于其開發(fā)團(tuán)隊來說剑梳,這不亞于是一場噩夢的開始:沒有一位開發(fā)人員能夠說清這個由多個團(tuán)隊合作開發(fā)的龐大系統(tǒng)從頭到尾的業(yè)務(wù)全貌唆貌。在沒有人能說得清業(yè)務(wù)需求的情況下,開發(fā)團(tuán)隊如何進(jìn)行開發(fā)阻荒?

作為輔導(dǎo)這些企業(yè)進(jìn)行敏捷和DevOps轉(zhuǎn)型的咨詢師挠锥,這幾年來我一直在思考這個問題,期間做了一些努力來嘗試回答侨赡,但成效總是有點差強人意蓖租。直到2017年12月8日我在“領(lǐng)域驅(qū)動設(shè)計中國峰會2017”大會參加了Event Storming 之父 Alberto Brandolini授課的一天“事件風(fēng)暴工作坊”上午的“探索業(yè)務(wù)全景”(Big Picture Exploration)環(huán)節(jié)之后,才讓我有信心解決這個難題羊壹。


“領(lǐng)域驅(qū)動設(shè)計中國峰會2017”大會“事件風(fēng)暴工作坊”

工作坊上午的“探索業(yè)務(wù)全景”環(huán)節(jié)蓖宦,能讓說不清遺留系統(tǒng)需求的開發(fā)團(tuán)隊很快了解業(yè)務(wù)需求。適合新團(tuán)隊接手遺留系統(tǒng)油猫、團(tuán)隊有大量新成員加入稠茂、業(yè)務(wù)發(fā)生很大變化等場景。以下是實施步驟:

  1. 準(zhǔn)備物料
    準(zhǔn)備各種顏色和尺寸的報事貼(詳見下文),給工作坊參加者每人一支Sharpie記號筆睬关∮盏#可以準(zhǔn)備長長的一大卷白色畫卷紙貼在墻上,在上面貼報事貼电爹,以便方便地搬運報事貼蔫仙。

  2. 邀請包含領(lǐng)域?qū)<以趦?nèi)的團(tuán)隊所有成員參加
    團(tuán)隊所有成員包括業(yè)務(wù)、開發(fā)丐箩、測試摇邦、運維等各個角色,其中“知道答案”的領(lǐng)域?qū)<沂潜夭豢缮俚氖嚎薄O挛牡墓ぷ鞣粚嵗且剿鰾randolini的培訓(xùn)機構(gòu)銷售培訓(xùn)課程的業(yè)務(wù)施籍。

  3. 貼領(lǐng)域事件(Domain Event, 橙色)
    請領(lǐng)域?qū)<屹N第一張他/她最關(guān)心的領(lǐng)域事件。在報事貼上用類似”票已售出“的句式來寫領(lǐng)域事件概漱。然后大家同時分頭各自寫這個事件之前和之后發(fā)生的其他事件丑慎,并按發(fā)生的事件順序從左到右排序。


    3. 貼領(lǐng)域事件(Domain Event, 橙色)
  4. 貼熱點信息(Hot spot, 深粉)
    如果發(fā)現(xiàn)某些事件在業(yè)務(wù)上需要額外注意犀概,比如需要花大量時間培養(yǎng)新入行的培訓(xùn)師立哑,那么就可以在“已與新入行的培訓(xùn)師聯(lián)系”事件邊上貼一個粉紅的報事貼,上寫”要花時間“姻灶。


    4. 貼熱點信息(Hot spot, 深粉)
  5. 貼業(yè)務(wù)子域邊界(Boundary, 黃色膠帶)
    等大部分領(lǐng)域事件貼完后铛绰,就在其中一些關(guān)鍵時點,用黃色膠條來分割子域邊界产喉。比如在“培訓(xùn)課程已發(fā)布“右邊貼一個黃色膠條捂掰,在“培訓(xùn)課程已交付”的右側(cè)再貼一個黃色膠條。這樣兩個膠條就劃分了3個業(yè)務(wù)子域——培訓(xùn)課程準(zhǔn)備子域曾沈、培訓(xùn)課程售票與交付子域这嚣、培訓(xùn)課程售后子域。


    5. 貼業(yè)務(wù)子域邊界(Boundary, 黃色膠帶)

    5. 貼業(yè)務(wù)子域邊界(Boundary, 黃色膠帶)
  6. 貼核心業(yè)務(wù)子域(Subdomain, 藍(lán)色)
    識別橙色領(lǐng)域事件流中屬于同一核心業(yè)務(wù)范疇的相鄰的事件塞俱,并在它們的邊上貼一個藍(lán)色報事貼姐帚,寫上核心業(yè)務(wù)子域的名字,比如“開具發(fā)票”障涯。注意罐旗,此時不要移動橙色的領(lǐng)域事件。如果同樣的核心業(yè)務(wù)子域出現(xiàn)在事件流的兩個不同時點唯蝶,那么就寫兩個相同的藍(lán)色報事貼各自貼到相應(yīng)位置九秀。


    6. 貼核心業(yè)務(wù)子域(Subdomain, 藍(lán)色)
  7. 貼參與領(lǐng)域事件的人(People, 黃色小報事貼)
    在橙色的領(lǐng)域事件邊上用黃色報事貼,貼參與該事件的人粘我,上面可以寫這個人的姓名或角色鼓蜒,比如約見新入行培訓(xùn)師的培訓(xùn)機構(gòu)老板Alberto。


    7. 貼參與領(lǐng)域事件的人(People, 黃色小報事貼)
  8. 貼外部系統(tǒng)(External System, 淺粉)
    在相應(yīng)的領(lǐng)域事件邊上,用淺粉報事貼都弹,貼這些事件所依賴的外部系統(tǒng)娇豫。比如發(fā)布培訓(xùn)課程所需要的Eventbrite網(wǎng)站。


    8. 貼外部系統(tǒng)(External System, 淺粉)
  9. 貼新的價值或商業(yè)機會(Opportunity, 淺綠)
    在相應(yīng)的領(lǐng)域事件邊上畅厢,用淺綠報事貼锤躁,貼此處可能存在的商業(yè)機會。比如在“培訓(xùn)證書已打印”邊上或详,貼一個制作“電子證書”這樣一個新商業(yè)機會。


    9. 貼新的價值或商業(yè)機會(Opportunity, 淺綠)
  1. 投票評選業(yè)務(wù)瓶頸(Bottleneck, 畫有箭頭的藍(lán)色豎條報事貼)
    每人一票郭计,在你認(rèn)為當(dāng)前在業(yè)務(wù)上表現(xiàn)很糟糕或很有爭議的地方上貼一個畫有箭頭的藍(lán)色豎條報事貼霸琴。比如在“培訓(xùn)課程描述不抓眼球”邊上貼箭頭。那些獲得最多箭頭的瓶頸昭伸,就是今后開發(fā)工作的重點梧乘。因為根據(jù)約束理論,只有突破了這些最大的瓶頸庐杨,才能獲得全局優(yōu)化选调。


    投票評選業(yè)務(wù)瓶頸(Bottleneck, 畫有箭頭的藍(lán)色豎條報事貼)

說不清遺留系統(tǒng)需求的開發(fā)團(tuán)隊,就好比說不清使命的軍隊一樣灵份,無法高效行動仁堪。要想在新團(tuán)隊接手遺留系統(tǒng)、團(tuán)隊有大量新成員加入填渠、業(yè)務(wù)發(fā)生很大變化等場景下弦聂,讓不熟悉業(yè)務(wù)的團(tuán)隊成員快速了解需求,可以召集包括領(lǐng)域?qū)<曳帐病I(yè)務(wù)莺葫、開發(fā)、測試枪眉、運維在內(nèi)的團(tuán)隊所有成員參加一個“探索業(yè)務(wù)全景”的工作坊捺檬,用每個人貼報事貼的形式來討論和梳理現(xiàn)有的業(yè)務(wù),最終讓團(tuán)隊了解需求贸铜,達(dá)成共識堡纬,以便維護(hù)實現(xiàn)這些需求的遺留代碼。另外還能識別當(dāng)前系統(tǒng)的業(yè)務(wù)瓶頸萨脑,確定下一步開發(fā)工作的重點隐轩。
步驟如下:

  1. 準(zhǔn)備物料
  2. 邀請包含領(lǐng)域?qū)<以趦?nèi)的團(tuán)隊所有成員參加
  3. 貼領(lǐng)域事件(橙色)
  4. 貼警告信息(深粉)
  5. 貼業(yè)務(wù)子域邊界(黃色膠帶)
  6. 貼核心業(yè)務(wù)子域(藍(lán)色)
  7. 貼參與領(lǐng)域事件的人(黃色小報事貼)
  8. 貼外部系統(tǒng)(淺粉)
  9. 貼新的價值或商業(yè)機會(淺綠)
  10. 投票評選業(yè)務(wù)瓶頸(畫有箭頭的藍(lán)色豎條報事貼)

事件風(fēng)暴之父工作坊下午的“軟件開發(fā)設(shè)計”環(huán)節(jié),可以讓開發(fā)團(tuán)隊了解系統(tǒng)應(yīng)該具備的領(lǐng)域模型及其交互關(guān)系渤早,為編寫單元測試進(jìn)而驅(qū)動重構(gòu)提供指導(dǎo)职车。下一篇博客將會對此進(jìn)行討論。敬請關(guān)注。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末悴灵,一起剝皮案震驚了整個濱河市扛芽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌积瞒,老刑警劉巖川尖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異茫孔,居然都是意外死亡叮喳,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門缰贝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來馍悟,“玉大人,你說我怎么就攤上這事剩晴÷嘀洌” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵赞弥,是天一觀的道長毅整。 經(jīng)常有香客問我,道長绽左,這世上最難降的妖魔是什么悼嫉? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮拼窥,結(jié)果婚禮上承粤,老公的妹妹穿的比我還像新娘。我一直安慰自己闯团,他們只是感情好辛臊,可當(dāng)我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著房交,像睡著了一般彻舰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上候味,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天刃唤,我揣著相機與錄音,去河邊找鬼白群。 笑死尚胞,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的帜慢。 我是一名探鬼主播笼裳,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼唯卖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了躬柬?” 一聲冷哼從身側(cè)響起拜轨,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎允青,沒想到半個月后橄碾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡颠锉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年法牲,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片琼掠。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡皆串,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出眉枕,到底是詐尸還是另有隱情,我是刑警寧澤怜森,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布速挑,位于F島的核電站,受9級特大地震影響副硅,放射性物質(zhì)發(fā)生泄漏姥宝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一恐疲、第九天 我趴在偏房一處隱蔽的房頂上張望腊满。 院中可真熱鬧,春花似錦培己、人聲如沸碳蛋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肃弟。三九已至,卻和暖如春零蓉,著一層夾襖步出監(jiān)牢的瞬間笤受,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工敌蜂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留箩兽,地道東北人。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓章喉,卻偏偏與公主長得像汗贫,于是被迫代替她去往敵國和親身坐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容