發(fā)展現(xiàn)狀
國際軟件過程領域的敏捷運動源于 2001 年敏捷聯(lián)盟在美國成立和《敏捷宣言》的正式發(fā)表。敏捷軟件運動代表了 21 世紀互聯(lián)網(wǎng)時代軟件開發(fā)模式的一種先進理念和價值觀,相比傳統(tǒng)過程,敏捷更強調快速靈活反應,主動迎接和適應變化,主張更緊密的客戶與開發(fā)商協(xié)作和以人為本的企業(yè)可持續(xù)發(fā)展。典型的敏捷過程模型有 XP(極限編程)、FDD(特性驅動開發(fā))、Scrum 以及敏捷的統(tǒng)一過程(AUP)等。
我國軟件人員了解、嘗試敏捷大概始于 2002 年前后一批 XP 敏捷系列圖書在國內的引進出版以及早期相關文章的探討和報道??傮w上敏捷過程在我國發(fā)展得還比較緩慢,可以說是剛剛起步。當前采用敏捷方法的企業(yè)以外資、成熟、領導型企業(yè)居多,大部分國內企業(yè)目前可能還處在了解、觀望的階段,對敏捷過程、方法的認知接受程度也偏低。這種媒體熱、企業(yè)冷的猶豫現(xiàn)象一方面可能與五年來的 CMM 考級熱有關,另一方面也可能與市場上某些對 XP 極端做法、敏捷功效神乎其神的夸大宣傳有關。
軟件過程改進是我國軟件企業(yè)提升競爭力、獲得可持續(xù)發(fā)展的一條重要途徑。一方面,大多數(shù)以快速短迭代為特征的敏捷過程有助于消除錯誤實施 ISO、CMM 帶來的官僚主義、形式主義等消極后果。另一方面,許多軟件客戶和技術主管們對有些 XP 擁護者鼓吹幾乎不留設計文檔、主要依賴源代碼說明的做法存有很大的疑慮,這種工作方式與強調過程文檔化、數(shù)字化的 ISO 9000、CMM 理念有著顯著差別,卻得到了我國許多本來就不善于抽象表達設計的程序員們的熱烈“擁戴”。
關于國內企業(yè)具體采用的典型過程種類,雖然偶爾有零星的 XP 案例報道,但我們發(fā)現(xiàn)實際采用類 RUP/UP 過程的遠比 XP 多,F(xiàn)DD 偶爾有聽說,Scrum 則很少。有一種比較流行、可能比較接近現(xiàn)實的說法是:70% 甚至更多的國內軟件企業(yè)實際上采用的既不是 RUP、XP,也不是 TSP、PSP,而是一種“什么都像、什么也都不像”的自釀過程。
據(jù)說目前國內已有 500 多家軟件企業(yè)通過了各級 CMM 評估,而 2005 年標志著 CMM 時代的結束,取而代之的是 CMMI(集成的過程能力成熟度模型)。 CMMI 框架相比 CMM 更加成熟、更加健全,也更加靈活和敏捷。 CMMI 的敏捷化以及原本實施 CMM、CMMI 的軟件企業(yè)過程的敏捷化是一個值得我們關注的方向。
在看到 CMM 由熱趨冷、敏捷由冷轉熱的同時,我們還應看到以 RUP 為代表的統(tǒng)一軟件過程(UP)家族的興起。 RUP 的獨特之處在于它采用 OO 技術對軟件開發(fā)過程本身進行業(yè)務建模,在一個成熟靈活的抽象框架之內統(tǒng)一、集成了迭代開發(fā)、用例驅動、UML 可視化建模、OOAD、架構設計、變更配置管理、質量管理、項目管理等許多主流先進的當代軟件工藝。在統(tǒng)一過程基礎上結合敏捷實踐的敏捷統(tǒng)一過程(AUP,Agile UP)也成為很多企業(yè)的現(xiàn)實選擇。
問題與挑戰(zhàn)
在學習、傳播和實踐敏捷的過程中,我們發(fā)現(xiàn)國內對敏捷過程存在著以下一些誤區(qū)。有不少人誤認為“敏捷就是 XP ”。事實上,敏捷并不等于“極限”。 Kent Beck 等人發(fā)明的 XP 只是眾多敏捷方法中的一種,國際上除 XP 外還有 Agile UP、Scrum、FDD、DSDM 等許多成熟的、的敏捷過程和方法。 XP 獲得了更多的媒體曝光度和影響力,可能與其推廣者的積極努力,有關機構投入了更多的媒體公關、市場資源有關。 “敏捷”代表了一整套價值觀、原則和實踐方法,把敏捷宣傳簡單狹隘地等同于推廣 XP 將會阻礙敏捷在我國得到更為廣泛的認同和應用。
還有一種常見的偏見認為 XP(極限編程)帶了“編程”二字,表明它是“咱們”程序員自己提出來的“草根”方法,具備此般的親和力自然極容易自下而上地引起程序員的共鳴,而其他各種所謂的“傳統(tǒng)”過程統(tǒng)統(tǒng)是管理者、“外行人”自上而下提出來的,離“咱們”程序員的實際很遠。這種看法顯然是幼稚和片面的。實際上,像 TSP、UP、XP 等等各類的過程方法均是由世界上開發(fā)不同應用的各類優(yōu)秀程序員在軟件工程歷的不同發(fā)展階段分別提出來的。這些過程方法各有各的適用性,無絕對的好壞之分,只有根據(jù)自己項目和團隊的實際情況選擇適用的方法才是明智之舉。
國際軟件過程領域的敏捷運動源于 2001 年敏捷聯(lián)盟在美國成立和《敏捷宣言》的正式發(fā)表。敏捷軟件運動代表了 21 世紀互聯(lián)網(wǎng)時代軟件開發(fā)模式的一種先進理念和價值觀,相比傳統(tǒng)過程,敏捷更強調快速靈活反應,主動迎接和適應變化,主張更緊密的客戶與開發(fā)商協(xié)作和以人為本的企業(yè)可持續(xù)發(fā)展。典型的敏捷過程模型有 XP(極限編程)、FDD(特性驅動開發(fā))、Scrum 以及敏捷的統(tǒng)一過程(AUP)等。
我國軟件人員了解、嘗試敏捷大概始于 2002 年前后一批 XP 敏捷系列圖書在國內的引進出版以及早期相關文章的探討和報道??傮w上敏捷過程在我國發(fā)展得還比較緩慢,可以說是剛剛起步。當前采用敏捷方法的企業(yè)以外資、成熟、領導型企業(yè)居多,大部分國內企業(yè)目前可能還處在了解、觀望的階段,對敏捷過程、方法的認知接受程度也偏低。這種媒體熱、企業(yè)冷的猶豫現(xiàn)象一方面可能與五年來的 CMM 考級熱有關,另一方面也可能與市場上某些對 XP 極端做法、敏捷功效神乎其神的夸大宣傳有關。
軟件過程改進是我國軟件企業(yè)提升競爭力、獲得可持續(xù)發(fā)展的一條重要途徑。一方面,大多數(shù)以快速短迭代為特征的敏捷過程有助于消除錯誤實施 ISO、CMM 帶來的官僚主義、形式主義等消極后果。另一方面,許多軟件客戶和技術主管們對有些 XP 擁護者鼓吹幾乎不留設計文檔、主要依賴源代碼說明的做法存有很大的疑慮,這種工作方式與強調過程文檔化、數(shù)字化的 ISO 9000、CMM 理念有著顯著差別,卻得到了我國許多本來就不善于抽象表達設計的程序員們的熱烈“擁戴”。
關于國內企業(yè)具體采用的典型過程種類,雖然偶爾有零星的 XP 案例報道,但我們發(fā)現(xiàn)實際采用類 RUP/UP 過程的遠比 XP 多,F(xiàn)DD 偶爾有聽說,Scrum 則很少。有一種比較流行、可能比較接近現(xiàn)實的說法是:70% 甚至更多的國內軟件企業(yè)實際上采用的既不是 RUP、XP,也不是 TSP、PSP,而是一種“什么都像、什么也都不像”的自釀過程。
據(jù)說目前國內已有 500 多家軟件企業(yè)通過了各級 CMM 評估,而 2005 年標志著 CMM 時代的結束,取而代之的是 CMMI(集成的過程能力成熟度模型)。 CMMI 框架相比 CMM 更加成熟、更加健全,也更加靈活和敏捷。 CMMI 的敏捷化以及原本實施 CMM、CMMI 的軟件企業(yè)過程的敏捷化是一個值得我們關注的方向。
在看到 CMM 由熱趨冷、敏捷由冷轉熱的同時,我們還應看到以 RUP 為代表的統(tǒng)一軟件過程(UP)家族的興起。 RUP 的獨特之處在于它采用 OO 技術對軟件開發(fā)過程本身進行業(yè)務建模,在一個成熟靈活的抽象框架之內統(tǒng)一、集成了迭代開發(fā)、用例驅動、UML 可視化建模、OOAD、架構設計、變更配置管理、質量管理、項目管理等許多主流先進的當代軟件工藝。在統(tǒng)一過程基礎上結合敏捷實踐的敏捷統(tǒng)一過程(AUP,Agile UP)也成為很多企業(yè)的現(xiàn)實選擇。
問題與挑戰(zhàn)
在學習、傳播和實踐敏捷的過程中,我們發(fā)現(xiàn)國內對敏捷過程存在著以下一些誤區(qū)。有不少人誤認為“敏捷就是 XP ”。事實上,敏捷并不等于“極限”。 Kent Beck 等人發(fā)明的 XP 只是眾多敏捷方法中的一種,國際上除 XP 外還有 Agile UP、Scrum、FDD、DSDM 等許多成熟的、的敏捷過程和方法。 XP 獲得了更多的媒體曝光度和影響力,可能與其推廣者的積極努力,有關機構投入了更多的媒體公關、市場資源有關。 “敏捷”代表了一整套價值觀、原則和實踐方法,把敏捷宣傳簡單狹隘地等同于推廣 XP 將會阻礙敏捷在我國得到更為廣泛的認同和應用。
還有一種常見的偏見認為 XP(極限編程)帶了“編程”二字,表明它是“咱們”程序員自己提出來的“草根”方法,具備此般的親和力自然極容易自下而上地引起程序員的共鳴,而其他各種所謂的“傳統(tǒng)”過程統(tǒng)統(tǒng)是管理者、“外行人”自上而下提出來的,離“咱們”程序員的實際很遠。這種看法顯然是幼稚和片面的。實際上,像 TSP、UP、XP 等等各類的過程方法均是由世界上開發(fā)不同應用的各類優(yōu)秀程序員在軟件工程歷的不同發(fā)展階段分別提出來的。這些過程方法各有各的適用性,無絕對的好壞之分,只有根據(jù)自己項目和團隊的實際情況選擇適用的方法才是明智之舉。