基于業(yè)務(wù)規(guī)則拆分用戶故事——避免工作局促

有時(shí)候在規(guī)定時(shí)間內(nèi)(例如項(xiàng)目周期內(nèi),單次迭代)。如果最終交付的工作任務(wù)要求高,團(tuán)隊(duì)會(huì)覺(jué)得完成不了而緊張。最簡(jiǎn)單的解決方案是分階段交付,如果按照交付用戶價(jià)值的標(biāo)準(zhǔn)來(lái)粉階段,那么這就是用戶故事拆分,因?yàn)橛脩艄适虏鸱侄际强v向拆分。不過(guò)往往團(tuán)隊(duì)會(huì)覺(jué)得拆分用戶故事很難,浪費(fèi)時(shí)間效果還不好,不如咬緊牙關(guān)搏一把全做進(jìn)來(lái)。但往往事與愿違。最近參與一個(gè)團(tuán)隊(duì)為期兩周的迭代。有一個(gè)類似的事情,分享一下如何使用用戶故事拆分來(lái)應(yīng)對(duì)。

需求描述

一個(gè)SaaS產(chǎn)品,有一個(gè)模塊是一個(gè)數(shù)據(jù)源列表,每一個(gè)列表項(xiàng)都是一個(gè)數(shù)據(jù)源,存儲(chǔ)對(duì)應(yīng)的設(shè)置,例如FTP、SharePoint、Azure Blob都會(huì)有不同?,F(xiàn)在的需求是,用戶希望能夠支持導(dǎo)出和導(dǎo)入功能。這樣當(dāng)用戶在一個(gè)數(shù)據(jù)中心的部署配置成功后,可以將設(shè)置復(fù)制到其他數(shù)據(jù)中心,降低手動(dòng)設(shè)置的麻煩與錯(cuò)誤。

遇到的問(wèn)題

這里描述的問(wèn)題會(huì)適當(dāng)簡(jiǎn)化難度,方便大家只關(guān)注拆分用戶故事的方法。例如:

  1. 導(dǎo)入數(shù)據(jù)源的時(shí)候,需要判斷目的段是否已經(jīng)存在同名的數(shù)據(jù)源設(shè)置,如果存在。需要考慮沖突解決方案,類似移動(dòng)同名文件到一個(gè)folder內(nèi)的場(chǎng)景。
  2. 導(dǎo)入數(shù)據(jù)源的時(shí)候,如果不存在同名數(shù)據(jù)源,但是內(nèi)部設(shè)置有沖突,例如數(shù)據(jù)源名稱不同,但是內(nèi)部卻是同一個(gè)FTP地址,需要考慮沖突解決方案。
  3. 當(dāng)一次性批量導(dǎo)入多個(gè)數(shù)據(jù)源設(shè)置的時(shí)候,如果其中一個(gè)數(shù)據(jù)源設(shè)置導(dǎo)入失敗,需要如何處置?回滾還是繼續(xù)?

當(dāng)團(tuán)隊(duì)在一周的迭代開(kāi)發(fā)后,發(fā)現(xiàn)需要考慮的上面這么多場(chǎng)景,并要在交付時(shí)保證質(zhì)量。頓感壓力山大。

按照業(yè)務(wù)拆分用戶故事

如果在團(tuán)隊(duì)感到焦慮的時(shí)候,硬要求團(tuán)隊(duì)按時(shí)完成,團(tuán)隊(duì)也無(wú)法保證交付質(zhì)量,那后果就只能是犧牲客戶的滿意度。
既然無(wú)法完成所有場(chǎng)景,那就考慮完成一部分。但是拆分原則仍然是交付用戶能夠使用的功能,對(duì)用戶來(lái)說(shuō)有價(jià)值的功能。這時(shí)候想起了Mike Cohn的SPIDR用戶故事拆分方法中的“R”——規(guī)則(【可參考文章《五種簡(jiǎn)單高效的拆分用戶故事的方法》】)。這里的規(guī)則(”Rule“)就是業(yè)務(wù)規(guī)則,也就是從上面的場(chǎng)景中印發(fā)沖突的原因開(kāi)始思考。于是我建議團(tuán)隊(duì),將這個(gè)用戶故事拆分成兩個(gè)大場(chǎng)景:

  1. 導(dǎo)入一個(gè)數(shù)據(jù)源設(shè)置。解決上面所有沖突的可能。但是指考慮每次一個(gè)數(shù)據(jù)源。
  2. 導(dǎo)入多個(gè)數(shù)據(jù)源設(shè)置??紤]多個(gè)數(shù)據(jù)源的場(chǎng)景。因?yàn)橐呀?jīng)覆蓋了大部分的沖突場(chǎng)景。只需要考慮多個(gè)沖突時(shí)候的解決方案。

1和#2是一個(gè)遞進(jìn)的關(guān)系,#2是#1的擴(kuò)展。團(tuán)隊(duì)可以在規(guī)定時(shí)間分別完成有價(jià)值的功能,而且彼此互相支撐。有點(diǎn)像TDD思想里面,先開(kāi)始一個(gè)簡(jiǎn)單的測(cè)試用例,然后再逐步擴(kuò)展。而不是一開(kāi)始就想著怎么實(shí)現(xiàn)一個(gè)復(fù)雜的測(cè)試用例。

總結(jié)

上面的拆分方式從用戶的角度,一個(gè)一個(gè)導(dǎo)入和批量導(dǎo)入多個(gè),解決的業(yè)務(wù)痛點(diǎn)是相同的,只是操作的繁雜度不同。在思考和實(shí)現(xiàn)的時(shí)候,如果同時(shí)思考解決方案,會(huì)陷入繁雜的實(shí)現(xiàn)細(xì)節(jié)中。通過(guò)思考業(yè)務(wù)規(guī)則,結(jié)合TDD的從最簡(jiǎn)單的一小步開(kāi)始實(shí)現(xiàn)的思想,將用戶故事進(jìn)行拆分,先實(shí)現(xiàn)簡(jiǎn)單的,之后再逐步實(shí)現(xiàn)繁雜的部分??梢杂行У慕档凸ぷ麟y度,同時(shí)實(shí)現(xiàn)的過(guò)程還是逐步遞進(jìn),層層支撐,這可以讓團(tuán)隊(duì)更有信心來(lái)交付高質(zhì)量的任務(wù),同時(shí)也能保證在規(guī)定時(shí)間內(nèi)完成。試想一下,如果批量導(dǎo)入多個(gè)數(shù)據(jù)源設(shè)置的時(shí)候,發(fā)現(xiàn)了無(wú)法解決的問(wèn)題,那么團(tuán)隊(duì)至少可以交付導(dǎo)入一個(gè)數(shù)據(jù)源設(shè)置的功能,這樣團(tuán)隊(duì)就不會(huì)陷入工作局促的困境。

踐行敏捷實(shí)踐,讓工作變得更美好。歡迎留言,交流落地經(jīng)驗(yàn)。

【歡迎關(guān)注我的博客】

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容