我常常聽(tīng)到這樣的觀點(diǎn):敏捷軟件開(kāi)發(fā)并不是真正的革命性的方法,它所采用的技術(shù)大多都是古已有之的。比如迭代,你看很哪本軟件工程的教科書(shū)上沒(méi)有提到迭代開(kāi)發(fā)呢?在比如說(shuō)User Story,看上去也不只不過(guò)是Use Case的翻版而已吧!甚至我看RUP也和敏捷方法沒(méi)有太大的區(qū)別吧!
要我說(shuō),這些人要么是不真的了解敏捷開(kāi)發(fā),沒(méi)有認(rèn)識(shí)到敏捷開(kāi)發(fā)的革命性,只是用外在的形式來(lái)把它和其他方法進(jìn)行了比較。有又或者是實(shí)施敏捷方法的時(shí)候不徹底,所以四處碰壁以至于搞起了修正主義。最可怕的就是某些大公司,看敏捷火了,總有包裝一下,到底還是要賣(mài)產(chǎn)品。敏捷軟件開(kāi)發(fā)就是一個(gè)革命性的方法,只不過(guò)它要顛覆的不僅僅是低質(zhì)量的軟件開(kāi)發(fā)方式,更重要的是,它要顛覆軟件生產(chǎn)企業(yè)和軟件的使用企業(yè)之間的生產(chǎn)關(guān)系!!這一點(diǎn)在敏捷宣言里寫(xiě)得再明白不過(guò)了
Customer collaboration over Contract negotiation
敏捷軟件開(kāi)發(fā),就是要以一種更合理的共贏的合作關(guān)系,代替以前畸形的采購(gòu)式的合約關(guān)系。為什么合約關(guān)系就是畸形的?我們來(lái)看看合約雙方的處境。
首先軟件團(tuán)隊(duì)方面承擔(dān)了過(guò)多的風(fēng)險(xiǎn):業(yè)務(wù)變化,改代碼!!商業(yè)抉擇轉(zhuǎn)換,改代碼!!憑啥你甲方的緣故非要我承擔(dān)額外的成本?你說(shuō)我冤不冤?冤!但是人家甲方也冤!!人家花了大把的銀子,拿到一堆不能用的軟件(你要是硬件人家還能轉(zhuǎn)手賣(mài)點(diǎn)錢(qián)),就像你要砍樹(shù)別人給你把鏟子,你要種樹(shù)人家給了你把鋸。擱你,你也不愿意。且不說(shuō)博弈,就算雙方都有心把事情做好,按合同來(lái),甲方不干;不按合同來(lái),乙方不干,最后變成“有心殺賊無(wú)力回天”,大家一起扯扯皮等二期算了。lose-lose,沒(méi)有贏家。
那么合作的關(guān)系是什么呢?合作的關(guān)系就好比你去subway買(mǎi)三明治,面包你自己選,要什么肉你來(lái)挑,蔬菜,cheese,醬汁你也自己看著辦。技術(shù)我來(lái),口味你選。技術(shù)失敗我負(fù)責(zé),口味不合適你負(fù)責(zé)。你做你的強(qiáng)項(xiàng)我來(lái)我的強(qiáng)項(xiàng),最終大家高高興興嘻嘻哈哈不吵不鬧,作出一頓可口午餐。這是時(shí)候,生產(chǎn)關(guān)系變了,我不是你的冷冰冰的供應(yīng)商,你也不是我邪惡的客戶,我們是拴在一根繩子上的螞蚱。成功是我們的,失敗也是我們的。榮辱與共,攜手并肩。聽(tīng)著有點(diǎn)耳熟?沒(méi)錯(cuò),SaaS。敏捷宣言早就說(shuō)了,CoC啊。從供應(yīng)商變成服務(wù)商,從服務(wù)商變成戰(zhàn)略合作伙伴,這是在給軟件企業(yè)指出路,新的生產(chǎn)關(guān)系已經(jīng)盡在其中了。
如果看不清敏捷的這個(gè)根本革命點(diǎn),以為還是開(kāi)發(fā)方法的小打小鬧,那么敏捷根本實(shí)施不成。這話一般我不敢說(shuō)的,程序員自發(fā)實(shí)施敏捷,只在一種情況下可能成功:大企業(yè)的IT部門(mén)。再趕上個(gè)強(qiáng)力的IT領(lǐng)導(dǎo),自家人嘛,有什么不好談的。一來(lái)二去,就成功了(看看C3,說(shuō)白了不就是IT部門(mén)和業(yè)務(wù)部門(mén)?)但是,如果是做項(xiàng)目的公司,你營(yíng)銷(xiāo)手段不改變,敏捷就不可能成功。你的客戶跟你不是合作關(guān)系,你通過(guò)敏捷增加質(zhì)量(符合性質(zhì)量)的工作就不會(huì)被人可,那么就不能成為投資,只能是成本。當(dāng)成本增加到不可承擔(dān)的時(shí)候,敏捷就不了了之了。為什么好多人說(shuō)老板沒(méi)有響應(yīng)?舊的生產(chǎn)關(guān)系下敏捷根本就是負(fù)擔(dān)。
說(shuō)道這里,說(shuō)一下以敏捷聞名的ThoughtWorks。其實(shí)很多人都以為T(mén)hougtWorks只有方法論咨詢,沒(méi)錯(cuò)我們是有方法論咨詢,但是也有業(yè)務(wù)模式咨詢,客戶業(yè)務(wù)模式不改變,他怎么能徹底敏捷?這點(diǎn)大家不可不查啊。