我常常聽到這樣的觀點(diǎn):敏捷軟件開發(fā)并不是真正的革命性的方法,它所采用的技術(shù)大多都是古已有之的。比如迭代,你看很哪本軟件工程的教科書上沒有提到迭代開發(fā)呢?在比如說User Story,看上去也不只不過是Use Case的翻版而已吧!甚至我看RUP也和敏捷方法沒有太大的區(qū)別吧!
要我說,這些人要么是不真的了解敏捷開發(fā),沒有認(rèn)識(shí)到敏捷開發(fā)的革命性,只是用外在的形式來把它和其他方法進(jìn)行了比較。有又或者是實(shí)施敏捷方法的時(shí)候不徹底,所以四處碰壁以至于搞起了修正主義。最可怕的就是某些大公司,看敏捷火了,總有包裝一下,到底還是要賣產(chǎn)品。敏捷軟件開發(fā)就是一個(gè)革命性的方法,只不過它要顛覆的不僅僅是低質(zhì)量的軟件開發(fā)方式,更重要的是,它要顛覆軟件生產(chǎn)企業(yè)和軟件的使用企業(yè)之間的生產(chǎn)關(guān)系!!這一點(diǎn)在敏捷宣言里寫得再明白不過了
Customer collaboration over Contract negotiation
敏捷軟件開發(fā),就是要以一種更合理的共贏的合作關(guān)系,代替以前畸形的采購(gòu)式的合約關(guān)系。為什么合約關(guān)系就是畸形的?我們來看看合約雙方的處境。
首先軟件團(tuán)隊(duì)方面承擔(dān)了過多的風(fēng)險(xiǎn):業(yè)務(wù)變化,改代碼!!商業(yè)抉擇轉(zhuǎn)換,改代碼!!憑啥你甲方的緣故非要我承擔(dān)額外的成本?你說我冤不冤?冤!但是人家甲方也冤!!人家花了大把的銀子,拿到一堆不能用的軟件(你要是硬件人家還能轉(zhuǎn)手賣點(diǎn)錢),就像你要砍樹別人給你把鏟子,你要種樹人家給了你把鋸。擱你,你也不愿意。且不說博弈,就算雙方都有心把事情做好,按合同來,甲方不干;不按合同來,乙方不干,最后變成“有心殺賊無(wú)力回天”,大家一起扯扯皮等二期算了。lose-lose,沒有贏家。
那么合作的關(guān)系是什么呢?合作的關(guān)系就好比你去subway買三明治,面包你自己選,要什么肉你來挑,蔬菜,cheese,醬汁你也自己看著辦。技術(shù)我來,口味你選。技術(shù)失敗我負(fù)責(zé),口味不合適你負(fù)責(zé)。你做你的強(qiáng)項(xiàng)我來我的強(qiáng)項(xiàng),最終大家高高興興嘻嘻哈哈不吵不鬧,作出一頓可口午餐。這是時(shí)候,生產(chǎn)關(guān)系變了,我不是你的冷冰冰的供應(yīng)商,你也不是我邪惡的客戶,我們是拴在一根繩子上的螞蚱。成功是我們的,失敗也是我們的。榮辱與共,攜手并肩。聽著有點(diǎn)耳熟?沒錯(cuò),SaaS。敏捷宣言早就說了,CoC啊。從供應(yīng)商變成服務(wù)商,從服務(wù)商變成戰(zhàn)略合作伙伴,這是在給軟件企業(yè)指出路,新的生產(chǎn)關(guān)系已經(jīng)盡在其中了。
如果看不清敏捷的這個(gè)根本革命點(diǎn),以為還是開發(fā)方法的小打小鬧,那么敏捷根本實(shí)施不成。這話一般我不敢說的,程序員自發(fā)實(shí)施敏捷,只在一種情況下可能成功:大企業(yè)的IT部門。再趕上個(gè)強(qiáng)力的IT領(lǐng)導(dǎo),自家人嘛,有什么不好談的。一來二去,就成功了(看看C3,說白了不就是IT部門和業(yè)務(wù)部門?)但是,如果是做項(xiàng)目的公司,你營(yíng)銷手段不改變,敏捷就不可能成功。你的客戶跟你不是合作關(guān)系,你通過敏捷增加質(zhì)量(符合性質(zhì)量)的工作就不會(huì)被人可,那么就不能成為投資,只能是成本。當(dāng)成本增加到不可承擔(dān)的時(shí)候,敏捷就不了了之了。為什么好多人說老板沒有響應(yīng)?舊的生產(chǎn)關(guān)系下敏捷根本就是負(fù)擔(dān)。
說道這里,說一下以敏捷聞名的ThoughtWorks。其實(shí)很多人都以為ThougtWorks只有方法論咨詢,沒錯(cuò)我們是有方法論咨詢,但是也有業(yè)務(wù)模式咨詢,客戶業(yè)務(wù)模式不改變,他怎么能徹底敏捷?這點(diǎn)大家不可不查啊。
要我說,這些人要么是不真的了解敏捷開發(fā),沒有認(rèn)識(shí)到敏捷開發(fā)的革命性,只是用外在的形式來把它和其他方法進(jìn)行了比較。有又或者是實(shí)施敏捷方法的時(shí)候不徹底,所以四處碰壁以至于搞起了修正主義。最可怕的就是某些大公司,看敏捷火了,總有包裝一下,到底還是要賣產(chǎn)品。敏捷軟件開發(fā)就是一個(gè)革命性的方法,只不過它要顛覆的不僅僅是低質(zhì)量的軟件開發(fā)方式,更重要的是,它要顛覆軟件生產(chǎn)企業(yè)和軟件的使用企業(yè)之間的生產(chǎn)關(guān)系!!這一點(diǎn)在敏捷宣言里寫得再明白不過了
Customer collaboration over Contract negotiation
敏捷軟件開發(fā),就是要以一種更合理的共贏的合作關(guān)系,代替以前畸形的采購(gòu)式的合約關(guān)系。為什么合約關(guān)系就是畸形的?我們來看看合約雙方的處境。
首先軟件團(tuán)隊(duì)方面承擔(dān)了過多的風(fēng)險(xiǎn):業(yè)務(wù)變化,改代碼!!商業(yè)抉擇轉(zhuǎn)換,改代碼!!憑啥你甲方的緣故非要我承擔(dān)額外的成本?你說我冤不冤?冤!但是人家甲方也冤!!人家花了大把的銀子,拿到一堆不能用的軟件(你要是硬件人家還能轉(zhuǎn)手賣點(diǎn)錢),就像你要砍樹別人給你把鏟子,你要種樹人家給了你把鋸。擱你,你也不愿意。且不說博弈,就算雙方都有心把事情做好,按合同來,甲方不干;不按合同來,乙方不干,最后變成“有心殺賊無(wú)力回天”,大家一起扯扯皮等二期算了。lose-lose,沒有贏家。
那么合作的關(guān)系是什么呢?合作的關(guān)系就好比你去subway買三明治,面包你自己選,要什么肉你來挑,蔬菜,cheese,醬汁你也自己看著辦。技術(shù)我來,口味你選。技術(shù)失敗我負(fù)責(zé),口味不合適你負(fù)責(zé)。你做你的強(qiáng)項(xiàng)我來我的強(qiáng)項(xiàng),最終大家高高興興嘻嘻哈哈不吵不鬧,作出一頓可口午餐。這是時(shí)候,生產(chǎn)關(guān)系變了,我不是你的冷冰冰的供應(yīng)商,你也不是我邪惡的客戶,我們是拴在一根繩子上的螞蚱。成功是我們的,失敗也是我們的。榮辱與共,攜手并肩。聽著有點(diǎn)耳熟?沒錯(cuò),SaaS。敏捷宣言早就說了,CoC啊。從供應(yīng)商變成服務(wù)商,從服務(wù)商變成戰(zhàn)略合作伙伴,這是在給軟件企業(yè)指出路,新的生產(chǎn)關(guān)系已經(jīng)盡在其中了。
如果看不清敏捷的這個(gè)根本革命點(diǎn),以為還是開發(fā)方法的小打小鬧,那么敏捷根本實(shí)施不成。這話一般我不敢說的,程序員自發(fā)實(shí)施敏捷,只在一種情況下可能成功:大企業(yè)的IT部門。再趕上個(gè)強(qiáng)力的IT領(lǐng)導(dǎo),自家人嘛,有什么不好談的。一來二去,就成功了(看看C3,說白了不就是IT部門和業(yè)務(wù)部門?)但是,如果是做項(xiàng)目的公司,你營(yíng)銷手段不改變,敏捷就不可能成功。你的客戶跟你不是合作關(guān)系,你通過敏捷增加質(zhì)量(符合性質(zhì)量)的工作就不會(huì)被人可,那么就不能成為投資,只能是成本。當(dāng)成本增加到不可承擔(dān)的時(shí)候,敏捷就不了了之了。為什么好多人說老板沒有響應(yīng)?舊的生產(chǎn)關(guān)系下敏捷根本就是負(fù)擔(dān)。
說道這里,說一下以敏捷聞名的ThoughtWorks。其實(shí)很多人都以為ThougtWorks只有方法論咨詢,沒錯(cuò)我們是有方法論咨詢,但是也有業(yè)務(wù)模式咨詢,客戶業(yè)務(wù)模式不改變,他怎么能徹底敏捷?這點(diǎn)大家不可不查啊。
改變軟件生產(chǎn)企業(yè)和雇主的關(guān)系,如果真能實(shí)現(xiàn),這的確能讓IT業(yè)成為一項(xiàng)輕松而充滿樂趣的工作,可目前看來,實(shí)施的困難太大,只是一個(gè)夢(mèng)想而已,至少在中國(guó)絕大部分企業(yè)都是如此。傳統(tǒng)的觀念使得我們都認(rèn)為給錢的是大爺,人家要求什么我們就得做什么,哪怕需求會(huì)從一只狗變成一只雞,也不敢說個(gè)不字。為什么?錢在客戶手里,產(chǎn)品不滿意,不能結(jié)項(xiàng),不能回款,等于白干。這種思想使得雙方處在不公平的地位,弱勢(shì)的軟件企業(yè)自然要承擔(dān)巨大的壓力。
另外,同樣是傳統(tǒng)的循規(guī)蹈矩的觀念,使得軟件企業(yè)不敢輕易顛覆現(xiàn)有的成熟(可能是陳舊)開發(fā)方法而加入敏捷大軍,畢竟不熟悉是有風(fēng)險(xiǎn)的,最后帶來項(xiàng)目的失敗,投入的浪費(fèi),這是普遍保守的我們不希望看到的,說到底,還是缺乏創(chuàng)新和去實(shí)踐的精神。
最后,敏捷實(shí)施的局限很有可能來自客戶本身。例如很多企業(yè)是讓自己的IT部門整理需求然后提交給外包開發(fā),客戶的要求就是waterfall,就是那些傳統(tǒng)的、甚至是迂腐的、什么項(xiàng)目都一樣格式形式的古典主義文檔。這使得開發(fā)商也只能用傳統(tǒng)的方法去實(shí)現(xiàn)。
可能抑制敏捷發(fā)展的因素還有很多,但是我認(rèn)為隨著軟件企業(yè)和客戶之間理解的加深,aglie很有可能會(huì)成為主流。
btw:最后一段有打廣告的嫌疑啊,呵呵
感覺要是實(shí)現(xiàn)戰(zhàn)略合作伙伴的話,真的像你說的,在自家才有可能或是在一個(gè)力量非常強(qiáng)勢(shì)的公司比如TW。根本原因還是無(wú)法轉(zhuǎn)變跟客戶的博弈關(guān)系。
傳統(tǒng)企業(yè)里的人更難改變
期望競(jìng)爭(zhēng)、失敗能淘汰一切落后
歷史如何能加速?
歷史如何能加速?
我覺的,應(yīng)該讓中國(guó)軟件業(yè)從小而散,轉(zhuǎn)到大而全的軟件企業(yè)格局里面去。說是國(guó)內(nèi)的項(xiàng)目利潤(rùn)很低。
惡性競(jìng)爭(zhēng)的結(jié)果只能是如此。
為什么低?
有太多小嘍羅跟你爭(zhēng)唄。