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