打破CMM神話

摘自
name 寫道
4、打破CMM神話

CMM流程爲改善華爲的軟件開發帶來了明顯的效果,實施CMM是華爲提高開發管理的重要階段。但是CMM流程卻有很多自身的侷限性不利於應用軟件的開發。

技術人員都知道,應用軟件的新需求變化不斷,尤其是電信行業的軟件,大家也都知道中國的運營商是非常強勢的,動不動就給你提出新的需求,而且華爲的很多軟件週期長,多達四五年。這些特點就要華爲的軟件系統必須能夠面對、擁抱層出不窮的變化。

CMM流程是典型瀑布式開發流程,所謂瀑布式流程就是整個流程從需求、設計、開發、測試像瀑布一樣按部就班一瀉而下,不能回頭。這就導致了它不易於面對變化。CMM流程的最初目的是爲了那種超大行的項目,比如超過1000人年的航天項目,這種項目的特點就是先開發出硬件,然後再開發相應的軟件,軟件的需求很少改變。採用瀑布流程的CMM無疑是適合這種的超大型項目的,用一套完整的文檔來規範開發的流程,控制整個項目的進度和風險。但是商業應用軟件和這種軟件項目有很的不同,他要面對不斷變化的新需求。

CMM的另一個特點就是它能控制整個項目的進度、減少缺陷率、控制風險,卻對提高軟件的架構和設計質量鞭長莫及。CMM文檔衆多,卻沒有規範軟件設計結構的。

CMM過多的文檔也成爲開發過程的累贅,如果你在第一個版本完成所有的文檔,在後續版本開發增加新功能的時候,就要從上到下又更新從需求、設計、開發、測試的所有文檔,相當繁瑣。所以雖然華爲的CMM最多的已經達到CMMI或5級,但是大量的項目的文檔都沒有及時更新和當前軟件的版本相對應,越往後這些文檔越是形同虛設。研發人員加班加點連編碼的時間都不夠,還有誰來得及管這些文檔。

CMM的以上幾個特點導致它很不適應商業應用軟件的開發。

個人認爲近幾年逐漸流行的敏捷軟件開發非常適合華爲的電信應用軟件開發,敏捷開發是目前最能面對變化、擁抱變化的開發流程。

首先,它採用了不斷迭代的開發流程,有助於不斷增加新的功能。

其次,敏捷開發是唯一把面向對象開發原則做爲開發指導的流程,這可以讓你很好地提高軟件的架構和設計的質量,達到能夠擁抱變化,易於維護、擴展,這個優點是大多數軟件工程流程所沒有的。

再次,敏捷開發沒有過多的文檔,只有在代碼不能說明問題的時候纔回去寫文檔,這就爲研發人員減少很多的負擔。

還有,敏捷開發非常適合中小型規模的商業應用軟件的開發,相比CMM的全套流程對開發中小型規模的應用軟件來說非常繁瑣。

另外,敏捷開發主張每週高效地工作40小時,不搞疲勞戰,所有的程序員可能都喜歡這一點,但是這點估計不會爲華爲的主管們所接受。

CMM流程有很多優點,採用了CMM比以前沒有流程的時候是個很大的進步,但是其衆多的缺點讓他不適合應用軟件(尤其是中小型的)的開發,最好能借鑑、引入敏捷開發的優點,加以改造,形成更適合應用軟件開發的流程。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章