標(biāo)題取得有點(diǎn)大鼓择,此文僅是對(duì)一次 Free Talk 中同事所提問(wèn)題的思考。
在敏捷開發(fā)中就漾,「擁抱變化」和「朝令夕改」的區(qū)別是什么呐能?
我理解他想問(wèn)的是,對(duì)于項(xiàng)目中上午定好的需求,下午就變更了摆出,敏捷的我們是不是依然要接納朗徊?
It depends? 可能這么回答并沒(méi)有什么營(yíng)養(yǎng)..
軟件功能是現(xiàn)實(shí)行為的映射,現(xiàn)實(shí)世界的不確定性和軟件固有的復(fù)雜度不可避免的會(huì)帶來(lái)各種需求變化偎漫。敏捷開發(fā)模式并不能解決變化這一源頭問(wèn)題爷恳,相反它就是為了響應(yīng)這些變化而生的。
當(dāng)面臨突發(fā)的需求變更時(shí)象踊,我們需要明確它們是否跟軟件最終交付的價(jià)值相關(guān)温亲。(人話版:這個(gè)需求變更帶來(lái)交付的功能是否對(duì)用戶有用,是否能給客戶帶來(lái)收益通危。)如果是铸豁,那無(wú)疑我們必須無(wú)條件的接受,畢竟軟件交付的目標(biāo)就是為了創(chuàng)造更多的價(jià)值菊碟,而非遵循計(jì)劃以完成更多的任務(wù)节芥,完成了迭代內(nèi)的任務(wù)但沒(méi)有創(chuàng)造價(jià)值比沒(méi)有完成任務(wù)帶來(lái)的損失更大。突如其來(lái)的變更就好像高速公路上出現(xiàn)的突發(fā)交通事件逆害,我們有必要設(shè)立一條應(yīng)急車道去臨時(shí)處理這類情況头镊,而不能因?yàn)槿蝿?wù)被打亂而一味的去抵觸。
但是頻繁的需求變更是肯定不被接受的魄幕,好比車輛占用應(yīng)急車道行駛是違法的一樣相艇。相對(duì)于傳統(tǒng)的瀑布開發(fā)模式,敏捷開發(fā)模式本就將大量和不定的任務(wù)切分到一個(gè)個(gè)短期的迭代中纯陨。只有確保每個(gè)迭代內(nèi)的任務(wù)不被干擾坛芽,才能優(yōu)先交付價(jià)值更高的軟件功能。如果在這樣一個(gè)相對(duì)短暫的周期內(nèi)還總伴隨著大量需求變更翼抠,可想而知一定是團(tuán)隊(duì)哪里出現(xiàn)問(wèn)題了咙轩,我們需要暫緩一下去找出問(wèn)題并予以解決,而不是不假思索的去“擁抱變化”阴颖。
敏捷開發(fā)中不變的是團(tuán)隊(duì)速率活喊,即一輪迭代團(tuán)隊(duì)能完成的故事點(diǎn)(任務(wù))。它由團(tuán)隊(duì)能力和迭代周期共同決定量愧。團(tuán)隊(duì)能力是隨著團(tuán)隊(duì)成熟度上升而達(dá)到的一個(gè)平衡钾菊,不能無(wú)限增加;迭代周期視團(tuán)隊(duì)而定偎肃,一般是1~4周煞烫。為什么我們需要極力保證團(tuán)隊(duì)速率的穩(wěn)定?因?yàn)橹挥胁蛔儾拍軌蚋玫募s束變化累颂。
如果全部都是可變的红竭,那么一定會(huì)是失控。
好比在兩個(gè)路口之間(迭代周期),在一定的車速限制下(團(tuán)隊(duì)能力)茵宪,一個(gè)紅綠燈的時(shí)間通過(guò)的車輛數(shù)量是固定的(團(tuán)隊(duì)速率)。那么在一個(gè)迭代內(nèi)瘦棋,變更的需求就像加塞的汽車稀火,它的通過(guò)必然就會(huì)造成有的車輛需要多等一個(gè)紅燈,這應(yīng)該是大眾都能夠接納的認(rèn)知赌朋。所以在一個(gè)迭代內(nèi)如果某些需求變更造成了額外的投入凰狞,那我們理應(yīng)將本該在迭代內(nèi)完成的任務(wù)往后延∨媛可惜我們總是又想加塞赡若,又想原本的車輛能夠通過(guò),那唯一的辦法就是超速行駛团甲,違章不說(shuō)逾冬,一旦出現(xiàn)車禍,整條馬路就會(huì)癱瘓躺苦。
太多的僥幸只會(huì)帶來(lái)不幸身腻。
遇見過(guò)一些團(tuán)隊(duì),喊著敏捷的口號(hào)做著敏捷的項(xiàng)目匹厘,但似乎又和跟敏捷一點(diǎn)關(guān)系都沒(méi)有嘀趟。團(tuán)隊(duì)內(nèi)部的互不信任帶來(lái)了多方立場(chǎng),而敏捷只是被拿來(lái)當(dāng)作互相制衡的武器罷了愈诚。起初我認(rèn)為是因?yàn)樗麄儗?duì)敏捷一知半解造成的她按,但想起這些變與不變不僅僅只存在于軟件交付項(xiàng)目中,現(xiàn)實(shí)世界中更是隨時(shí)隨地都在發(fā)生炕柔,一些淺顯的道理其實(shí)大家都知道酌泰。
可能和是否敏捷無(wú)關(guān)?只是需要多一些契約精神汗唱,少一些制約手段罷了宫莱。