敏捷中的隱喻

在極限編程中有一個很有意思的實踐,就是隱喻。他是指在系統(tǒng)架構(gòu)、設(shè)計和開發(fā)過程中將一些重要、關(guān)鍵、復(fù)雜的概念,用隱喻的方式表達(dá)出來,方便他人能迅速的理解,雙方迅速達(dá)成一致。這也是為什么是極限的原因。

隱喻一詞metaphor,來源于希臘語metaphora,本意是“傳送”即“意義的轉(zhuǎn)換”。隱喻的特征是暗示,暗示的好那隱喻很容易達(dá)到溝通的作用,隱喻的不好很容易把人搞暈掉。要隱喻的好,前提條件是雙方對隱喻的事物是有一致理解的,即你我都知道對方知道的事實(可以看喬哈里視窗)。

在敏捷過程中常見的隱喻都有哪些呢?我們可以列舉一些。

豬和雞的故事

一天,一頭豬和一只雞在路上散步。雞看了一下豬說:“嗨,我們合伙開一家餐館怎么樣?”。豬回頭看了一下雞說:“好主意,那你準(zhǔn)備給餐館賣什么呢?”。雞想了想說:“餐館賣火腿和雞蛋怎么樣?”。豬說:“不開了,我全身投入(火腿是一次性資源),而你(雞蛋是可再生的)只是參與而已!”

豬雞故事

它展示了在Scrum中的兩組角色:豬和雞。豬被認(rèn)為是Scrum團(tuán)隊中的核心成員,在一個團(tuán)隊中產(chǎn)品的負(fù)責(zé)人和Scrum主管和開發(fā)團(tuán)隊就是"豬"角色。雞不是Scrum的一部分,但必須要考慮他們,用戶、客戶或提供商、經(jīng)理等扮演著“雞”角色。需要說明的是在Scrum團(tuán)隊中不會有一個人同時成為“豬”角色和“雞”角色。

湖水與石頭

當(dāng)一個湖中有很多水,水面很高時,湖中的石塊都被水所覆蓋,此時即使有很大的暗礁,人們也看不到。但是當(dāng)水量減少,水面降低時,一些大石塊就暴漏出來了。接下來隨著湖水的進(jìn)一步減少,中等石塊和小石塊也逐步被人們發(fā)現(xiàn)。

湖水中的巨石

這告訴我們一個什么道理呢?想想軟件開發(fā)的過程吧,如果采取大批量的做法,一次性提交很多功能,就好比擁有很多水量的湖,你看不到其中隱含著的問題,甚至一些很嚴(yán)重的問題,都隱藏在這里面不容易被發(fā)現(xiàn)。如果換種做法,采取小批量的交付模式,每次只提交一小部分功能,這會發(fā)生什么呢?這就好比湖水減少了,一些隱藏的“石塊”立刻就會暴漏出來,這樣平時遇到的各種問題,都不會被累積成為一個大包袱,能夠被及時發(fā)現(xiàn)和解決。

堵車的高速路

一條高速路上,在沒有任何車的情況下,一輛車法定最快的速度是120KM/小時,但是這時候高速路的使用效率是最低的。加兩輛車,還不錯,繼續(xù)最高速度行駛。但是隨著車輛的增多,到了一定程度,司機們就開始減速,不敢以最快的速度往前沖。車輛繼續(xù)增多,速度繼續(xù)下降,直到最后,車都在高速上了,高速路同時承載了最多的車輛,但是大家都堵在高速路上打麻將。

堵車的高速

為什么會這樣呢?每一輛車在我們的研發(fā)過程中相當(dāng)于一個在制品,當(dāng)我們只有少量在制品的時候,團(tuán)隊能集中精力應(yīng)對這些在制品,能保證在最短的時間完成工作,相當(dāng)于車輛在最高的速度在行駛,如果只有一輛車,我們說這種是單件流。每一輛車新開上高速,就相當(dāng)于我們啟動了一個在制品。每一個在制品都會讓團(tuán)隊精力分散,啟動的在制品越來越多,而交付的越來越少,最終所有在制品都卡在研發(fā)過程中,沒有能交付的產(chǎn)品。那么怎么辦呢?現(xiàn)實生活中如果流量過大,交警一般都會限流,只允許一部分車上高速。在敏捷里面,我們同樣要限流,限制同時能啟動的任務(wù)數(shù),以終為始,真正完成一個任務(wù)后才能啟動下一個任務(wù),實際這就是精益中WIP的作用。

有節(jié)奏的地鐵

地鐵已經(jīng)是我們生活中非常常見的交通工具了。地鐵有這些特性:

固定節(jié)奏:每列車都有自己的節(jié)奏,一般每隔幾分鐘就會有一輛。一般都會有個提示牌高速你下一輛車還剩幾分鐘。在站臺停下開門,幾十秒后,關(guān)門繼續(xù)往前跑;

車廂額定容量固定:每個車廂大小差不多,早晚高峰能塞多一些人,但是數(shù)量基本都差不多。

每個地鐵的目的地非常明確,有明確的線路圖,起始站和終點站固定;

地鐵

固定節(jié)奏是Scrum中一個很重要的特點。地鐵每幾分鐘就會有一輛列車前來,每個需要上車的乘客對地鐵的時間有預(yù)期,就像我們固定每個迭代的時間,每個迭代會進(jìn)行啟動會,就像地鐵停車開門,乘客進(jìn)入。每個故事都可以有規(guī)劃不用擠著上車,不用擔(dān)心像公交車一樣過了這輛,下一輛不知道什么時候來。同時每個迭代固定時間周期,根據(jù)歷史數(shù)據(jù)可以估算團(tuán)隊的容量,每個迭代究竟可以裝下多少故事,隨著團(tuán)隊能力提高,可以安排一些挑戰(zhàn)任務(wù),增加團(tuán)隊容量,就像地鐵每個車廂的額定容量是固定的,早晚高峰可以多裝一些人。另外每個迭代的目標(biāo)都是明確的,就像地鐵的路線圖,從哪里開始到哪里結(jié)束。

黃河清淤,束水攻沙

束水沖沙法,就是收緊河道,利用水的沖力,沖擊河床底部泥沙,從而達(dá)到清淤防洪的目的。一般適用于流量較大的河流,如黃河。最早使用這種方法治理黃河的是明朝著名水利工程師潘季馴,之后歷朝歷代都采用這種方法治理黃河。

水分則勢緩,勢緩則沙停,沙停則河飽,尺寸之水皆由沙面,止見其高。水合則勢猛,勢猛則沙刷,沙刷則河深,尋丈之水皆由河底,止見其卑。筑堤束水,以水攻沙,水不奔溢于兩旁,則必直刷乎河底。欲圖久遠(yuǎn)之計,必須筑近堤以束河流,筑遙堤以防潰決;

束水攻沙

在精益看板方法中,每個迭代的PB故事卡如即將進(jìn)入河道的黃河水,如果團(tuán)隊成員一下啟動大量故事卡進(jìn)行開發(fā),就等于將河水分流,團(tuán)隊的精力一下被同時啟動的多個故事卡分散了。那么每個故事的流動速度就不高,慢慢就會被堆積在doing階段,而無法最終交付。但是如果對每個階段能進(jìn)入的故事卡的數(shù)量進(jìn)行限制的話,就容易將團(tuán)隊精力集中在當(dāng)前最重要的少數(shù)幾件事情上。集團(tuán)隊之力,迅速完成任務(wù),將故事卡迅速拉動到下一狀態(tài),這時候再從上游拉動新的故事卡。這就達(dá)到限制了河道的寬度,利用水勢迅速沖洗砂石,避免砂石堆積的好處。道理和堵車的高速路差不多,這里有更詳細(xì)的說明。



你們在日常工作中還會用到哪些巧妙的隱喻呢,歡迎告訴我,謝謝。

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

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

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