敏捷改造(下):真實(shí)案例敏捷改造

上篇分析了我做過(guò)的一個(gè)真實(shí)的項(xiàng)目的研發(fā)過(guò)程中的種種問(wèn)題州丹,那么這篇就來(lái)講解一下我們?nèi)绾吾槍?duì)這些問(wèn)題做敏捷改造封豪。

怎樣用敏捷做改進(jìn)

小瀑布模式的缺點(diǎn)在于它的溝通成本褥影、等待成本飒筑、返工成本依然很高渤涌,因此我們可以考慮從這3個(gè)角度出發(fā)去做改進(jìn)佩谣。

我畫(huà)了一個(gè)圖來(lái)展示小瀑布模式和敏捷開(kāi)發(fā)的詳細(xì)對(duì)比。

敏捷改造

圖中紫色管道是小瀑布模式实蓬,藍(lán)色管道是敏捷開(kāi)發(fā)茸俭,兩個(gè)管道是相同的團(tuán)隊(duì)管道容量,換句話說(shuō),兩種模式的工作載量是相等的。

橫向是時(shí)間線卦尊,從左到右,按需求提出開(kāi)始直到此需求上線腾窝,即為此需求的生命周期。

首先,先說(shuō)一下為什么這3個(gè)成本很高虹脯。

溝通成本

產(chǎn)品經(jīng)理通常需要1-2小時(shí)來(lái)與業(yè)務(wù)方進(jìn)行需求溝通驴娃,溝通完了之后,產(chǎn)品經(jīng)理會(huì)有一個(gè)初步方案归形,然后會(huì)與團(tuán)隊(duì)內(nèi)部的技術(shù)人員托慨,測(cè)試人員等,一起評(píng)審這個(gè)需求暇榴,如果這中間有任何疑問(wèn)厚棵,產(chǎn)品經(jīng)理就需要不停的反復(fù)在業(yè)務(wù)方與技術(shù)人員中間進(jìn)行溝通。因此溝通成本是比較高的蔼紧。

產(chǎn)品經(jīng)理通常也需要1-2小時(shí)來(lái)與技術(shù)人員一起做技術(shù)評(píng)審婆硬,時(shí)間比較長(zhǎng),很多問(wèn)題細(xì)節(jié)需要來(lái)回反復(fù)確認(rèn)奸例,溝通成本很高彬犯。

總結(jié)一下就是,由于需求粒度比較大查吊,每個(gè)環(huán)節(jié)都比較重谐区,有大量的細(xì)節(jié)需要討論和確認(rèn),因此帶來(lái)了較高的溝通成本逻卖。

溝通成本

等待成本

開(kāi)發(fā)只有等產(chǎn)品文檔完全設(shè)計(jì)好了宋列,才能開(kāi)始開(kāi)發(fā),由于需求粒度過(guò)大评也,此設(shè)計(jì)過(guò)程相對(duì)過(guò)長(zhǎng)炼杖,因此開(kāi)發(fā)的等待時(shí)間也長(zhǎng),沒(méi)有充分利用開(kāi)發(fā)資源盗迟。

同理坤邪,測(cè)試也是,只有等開(kāi)發(fā)提測(cè)了才能做測(cè)試罚缕。但測(cè)試在此之前艇纺,會(huì)先寫(xiě)測(cè)試用例,因此測(cè)試資源浪費(fèi)還算較小怕磨。

但另外一個(gè)問(wèn)題是喂饥,測(cè)試一次性要寫(xiě)非常多的用例測(cè)試,一次性測(cè)那么多用例肠鲫,測(cè)試的完整性完全依賴(lài)于測(cè)試人員的耐心。

等待成本

返工成本

測(cè)試如果發(fā)現(xiàn)問(wèn)題或粮,會(huì)讓開(kāi)發(fā)返工导饲,由于需求粒度比較大,經(jīng)常出現(xiàn)測(cè)試發(fā)現(xiàn)多個(gè)問(wèn)題的情況,那么就會(huì)來(lái)回的多次返工與測(cè)試渣锦。

甚至有時(shí)候返工會(huì)直接返到業(yè)務(wù)方去重新確認(rèn)需求的細(xì)節(jié)硝岗。

返工成本

敏捷研發(fā)過(guò)程改進(jìn)

那么敏捷是如何改進(jìn)這個(gè)過(guò)程的呢?

首先敏捷是提倡小步快跑袋毙,擁抱變化型檀。目前由于需求粒度比較大,無(wú)法小步快跑听盖,同時(shí)開(kāi)發(fā)到中間的時(shí)候的胀溺,需求突然變化,應(yīng)對(duì)起來(lái)也比較慢皆看。

那我們就可以根據(jù)下圖來(lái)進(jìn)行改造仓坞。

敏捷改造

上圖中最大的變化就是把原來(lái)的需求A拆解成了3個(gè)story。

敏捷提倡小步快跑腰吟,那么管理需求也一樣无埃,只有需求足夠小,才更利于我們快速理解和分析毛雇。而user story(用戶故事)則是敏捷里面的一個(gè)可以工作的最小單位嫉称。

用戶故事在軟件開(kāi)發(fā)過(guò)程中被作為描述需求的一種表達(dá)形式;為了規(guī)范用戶故事的表達(dá)灵疮,便于溝通织阅;包含角色、活動(dòng)始藕、價(jià)值三個(gè)要素蒲稳。

瀑布式的需求管理和敏捷需求管理的區(qū)別在于:

  • 瀑布式的需求分析要求在一開(kāi)始就獲取所有需求,分析所有細(xì)節(jié)伍派,并且假設(shè)我們可以對(duì)軟件項(xiàng)目有個(gè)完美的預(yù)測(cè)江耀。
  • 而用戶故事則基于我們不能完美預(yù)測(cè),不能在一開(kāi)始就知道所有細(xì)節(jié)的基礎(chǔ)诉植。因?yàn)槲覀儗?duì)需求的理解是一個(gè)逐漸清晰的過(guò)程祥国。同時(shí),在項(xiàng)目開(kāi)始時(shí)嘗試編寫(xiě)所有的需求忽略了重要的反饋循環(huán)晾腔。用戶故事承認(rèn)故事的時(shí)間維度舌稀,隨著時(shí)間的推移以及功能的增加,會(huì)有新的用戶故事產(chǎn)生灼擂,或者使故事的相關(guān)性發(fā)生變化壁查。所以要延遲細(xì)節(jié),融入業(yè)務(wù)到整個(gè)軟件開(kāi)發(fā)過(guò)程中剔应,鼓勵(lì)交流和溝通睡腿。
  • 另外语御,做了用戶故事拆分之后,產(chǎn)品經(jīng)理或者BA需要補(bǔ)全細(xì)節(jié)席怪,不停的做需求澄清应闯,和業(yè)務(wù)方做sign off。
  • 敏捷需求管理會(huì)借助JIRA等工具進(jìn)行可視化的看板或者scrum管理挂捻。而不是基于傳統(tǒng)的Excel管理碉纺。
  • 每個(gè)故事寫(xiě)好之后,會(huì)讓業(yè)務(wù)方做card sign off刻撒,比如在卡下面留言ready to go等骨田。如果每張卡做sign off太頻繁,可以由產(chǎn)品經(jīng)理或BA單獨(dú)找業(yè)務(wù)方用郵件等的形式針對(duì)一個(gè)epic統(tǒng)一做sign off疫赎。
  • 敏捷里其實(shí)沒(méi)有一個(gè)專(zhuān)門(mén)給業(yè)務(wù)方和產(chǎn)品經(jīng)理/BA的需求澄清會(huì)盛撑,因?yàn)槟J(rèn)為已經(jīng)發(fā)生在日常工作中了,按理說(shuō)應(yīng)該分析一張卡確認(rèn)一張卡捧搞,才能盡可能減少因一張卡片理解不到位引起的大面積返工抵卫。

拆解成小的用戶故事之后有如下一些好處:

  1. 原來(lái)產(chǎn)品經(jīng)理和業(yè)務(wù)方的溝通成本隨著需求被拆成小的用戶故事而變小了。
  2. 由于用戶故事比較小胎撇,分析完成的時(shí)間就變快了介粘,產(chǎn)品設(shè)計(jì)的時(shí)間也變快了,那么開(kāi)發(fā)開(kāi)始的時(shí)間也就變快了晚树,減少了等待成本姻采。
  3. 由于開(kāi)發(fā)時(shí)間更短,第一個(gè)用戶故事測(cè)試時(shí)間也就提前了爵憎,因此如果出現(xiàn)問(wèn)題需要返工慨亲,那么返工的時(shí)間比原來(lái)就更早,返工修改的內(nèi)容也更少宝鼓,能較快的完成返工并重新測(cè)試刑棵。整體返工成本就變小了。
  4. 由于各方時(shí)間都提前了愚铡,那么第一個(gè)用戶故事上線的時(shí)間也提前了蛉签,業(yè)務(wù)方就能更早的看到需求的部分功能,就能更早的反饋問(wèn)題沥寥。
  5. 由于每個(gè)環(huán)節(jié)的溝通成本碍舍,等待成本,返工成本均減少了邑雅,因此整個(gè)需求的交付時(shí)間也就提前了片橡。

從下圖就可以看出,每個(gè)環(huán)節(jié)相比之前都是提前的淮野。敏捷的目的是能夠讓團(tuán)隊(duì)擁抱變化锻全,快速響應(yīng)狂塘。

敏捷改造

敏捷開(kāi)發(fā)改進(jìn)

分支改進(jìn)

原來(lái)的分支管理比較混亂录煤,可能造成的問(wèn)題已經(jīng)在前面分析過(guò)了鳄厌。

這里就說(shuō)說(shuō)分支管理的最佳實(shí)踐是什么。

  1. 現(xiàn)在業(yè)界普遍都采用了git flow妈踊,具體怎么做可以Google一下了嚎,網(wǎng)上有太多文章講這個(gè),我就不贅述了廊营。這里就展示一張git flow的全景圖歪泳。
git flow
  1. 每次git的commit message的推薦格式:[Card ID][Type]: message

    1. Type主要有:feature, refactor, fix等。
    2. 每次git的commit推薦能關(guān)聯(lián)到每個(gè)故事卡的卡號(hào)露筒,這樣方便追溯每個(gè)故事卡相關(guān)的改動(dòng)∧派。現(xiàn)在很多工具都支持通過(guò)message的卡號(hào)直接找到對(duì)應(yīng)的故事卡,反之亦然慎式。

CI/CD

  • 從代碼的生命周期開(kāi)始伶氢,CI/CD是保證每個(gè)環(huán)節(jié)快速流轉(zhuǎn)的基礎(chǔ),同時(shí)也是快速獲取反饋的途徑瘪吏。
  • 而CI的基礎(chǔ)則是自動(dòng)化測(cè)試癣防,比如最基本的單元測(cè)試。
  • 每完成一張故事卡掌眠,理論上都可以持續(xù)部署到生產(chǎn)環(huán)境蕾盯。而不應(yīng)該等待所有需求都完成了,或者等前后端都完成了蓝丙,再做上線部署级遭。
    • 部署的步子越小,回滾的成本也就越低渺尘。

總結(jié)

圖里的敏捷開(kāi)發(fā)一定比上面的小瀑布快嗎挫鸽?不一定,這里還有幾個(gè)因素是需要考慮的沧烈。

  1. 需求A拆解成story是有成本的掠兄。根據(jù)產(chǎn)品經(jīng)理或BA的能力不同,以及需求復(fù)雜度的不同锌雀,拆卡花的時(shí)間也不同蚂夕。
  2. 小瀑布模式里面,在沒(méi)有bug的情況下只會(huì)測(cè)試一次腋逆。在敏捷模式下婿牍,相比原來(lái)的小瀑布,會(huì)針對(duì)story1和story2做回歸測(cè)試惩歉。因此增加了測(cè)試時(shí)間等脂。
  3. 另外俏蛮,決定敏捷開(kāi)發(fā)能否運(yùn)行很好的因素還有很多,只有不斷探尋最佳實(shí)踐上遥,持續(xù)改進(jìn)搏屑,才能無(wú)限逼近我們期望的狀態(tài)。

總結(jié)起來(lái)粉楚,敏捷是通過(guò)小步快跑的方式辣恋,提升了響應(yīng)變化的速度,以達(dá)到提升整體交付速度與質(zhì)量的目的模软。

本文只是通過(guò)一個(gè)真實(shí)的客戶案例伟骨,來(lái)分析如何基于當(dāng)前現(xiàn)狀做敏捷改造,本文并沒(méi)有寫(xiě)完全部敏捷改造的內(nèi)容燃异,因?yàn)槊艚莅膬?nèi)容實(shí)在太多了携狭,如果大家感興趣可以給我留言,后面我會(huì)繼續(xù)分享這個(gè)案例中涉及到的其他敏捷改造回俐。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末逛腿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鲫剿,更是在濱河造成了極大的恐慌鳄逾,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灵莲,死亡現(xiàn)場(chǎng)離奇詭異雕凹,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)政冻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)枚抵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人明场,你說(shuō)我怎么就攤上這事汽摹。” “怎么了苦锨?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵逼泣,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我舟舒,道長(zhǎng)拉庶,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任秃励,我火速辦了婚禮氏仗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘夺鲜。我一直安慰自己皆尔,他們只是感情好呐舔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著慷蠕,像睡著了一般珊拼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上砌们,一...
    開(kāi)封第一講書(shū)人閱讀 51,610評(píng)論 1 305
  • 那天杆麸,我揣著相機(jī)與錄音,去河邊找鬼浪感。 笑死,一個(gè)胖子當(dāng)著我的面吹牛饼问,可吹牛的內(nèi)容都是我干的影兽。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼莱革,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼峻堰!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起盅视,我...
    開(kāi)封第一講書(shū)人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤捐名,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后闹击,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體镶蹋,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年赏半,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了贺归。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡断箫,死狀恐怖拂酣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情仲义,我是刑警寧澤婶熬,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站埃撵,受9級(jí)特大地震影響赵颅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜盯另,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一性含、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鸳惯,春花似錦商蕴、人聲如沸叠萍。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)苛谷。三九已至,卻和暖如春格郁,著一層夾襖步出監(jiān)牢的瞬間腹殿,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工例书, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锣尉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓决采,卻偏偏與公主長(zhǎng)得像自沧,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子树瞭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355

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