試論CMM/CMMI不適合在當(dāng)前軟件開(kāi)發(fā)當(dāng)中應(yīng)用的原因

作為最著名的軟件過(guò)程管理參考模型之一杭抠,能力成熟度模型CMM以及后續(xù)的集成模型CMMI讨勤,該模型在實(shí)踐當(dāng)中經(jīng)常被誤用植酥。Brooks在《沒(méi)有銀彈》一章中提到的——“軟件開(kāi)發(fā)的四個(gè)內(nèi)在特性是: 復(fù)雜性 不一致性 不可見(jiàn)性 可變性”诬滩,由于軟件開(kāi)發(fā)的這些內(nèi)在特性鸯匹,使得描述軟件開(kāi)發(fā)過(guò)程的軟件開(kāi)發(fā)與組織方法也天然帶著一定的抽象性雾消,由此帶來(lái)了很多概念上的誤導(dǎo)和實(shí)踐中的爭(zhēng)論灾搏。

因此在我們探討CMM/CMMI不適合應(yīng)用在當(dāng)前軟件開(kāi)發(fā)中之前,需要先探討什么是軟件過(guò)程立润,什么是軟件過(guò)程管理狂窑,然后討論CMM/CMMI的概念,最后再探討為什么CMM/CMMI不適用于軟件開(kāi)發(fā)桑腮。


軟件過(guò)程的由來(lái)

軟件自誕生開(kāi)始泉哈,其規(guī)模以及在一個(gè)完整計(jì)算機(jī)系統(tǒng)中所占的比重一直呈上升趨勢(shì),類(lèi)似硬件產(chǎn)品的“摩爾定律”破讨,軟件產(chǎn)業(yè)也有一個(gè)類(lèi)似的“摩爾定律”丛晦,即: 類(lèi)似功能的軟件產(chǎn)品的規(guī)模每隔18個(gè)月,其規(guī)模(比如代碼行)會(huì)翻倍提陶,而用戶(hù)獲取該軟件或者服務(wù)的代價(jià)將下降烫沙。“摩爾定律”對(duì)于軟件系統(tǒng)的開(kāi)發(fā)和維護(hù)帶來(lái)很多負(fù)面影響隙笆,為了解決這些問(wèn)題锌蓄,對(duì)軟件開(kāi)發(fā)進(jìn)行有效地組織和管理非常重要升筏,由此誕生并且演化了一系列的所謂軟件過(guò)程與方法。

伴隨著不斷演化的軟件過(guò)程與方法瘸爽,軟件開(kāi)發(fā)的組織與管理當(dāng)中出現(xiàn)了大量方法上的爭(zhēng)議和由此帶來(lái)的各種誤解以及混亂仰冠,其根源在于對(duì)軟件項(xiàng)目管理軟件過(guò)程管理概念區(qū)分不清晰。所以接下來(lái)我們需要先對(duì)這兩個(gè)概念進(jìn)行解析蝶糯。

軟件項(xiàng)目管理

軟件項(xiàng)目管理被稱(chēng)為規(guī)劃和帶領(lǐng)項(xiàng)目團(tuán)隊(duì)的藝術(shù)和科學(xué)。其管理的對(duì)象是各類(lèi)軟件項(xiàng)目辆沦,具體而言是應(yīng)用方法昼捍、工具、技術(shù)以及人員能力來(lái)完成軟件項(xiàng)目肢扯,實(shí)現(xiàn)項(xiàng)目目標(biāo)的過(guò)程妒茬。可以再細(xì)分為兩種管理視角——軟件過(guò)程與生命周期模型

  • 軟件過(guò)程是為了實(shí)現(xiàn)一個(gè)或者多個(gè)事先定義的目標(biāo)而建立起來(lái)的一組實(shí)踐的集合蔚晨。這組實(shí)踐之間往往有一定的先后順序乍钻,作為一個(gè)整體來(lái)實(shí)現(xiàn)事先目標(biāo)。
  • 生命周期模型是對(duì)一個(gè)軟件開(kāi)發(fā)過(guò)程的人為劃分铭腕,是軟件開(kāi)發(fā)過(guò)程的主框架银择,是對(duì)軟件開(kāi)發(fā)過(guò)程的一種粗粒度劃分,往往不包括技術(shù)實(shí)踐累舷。

軟件過(guò)程管理

軟件過(guò)程管理的管理對(duì)象是軟件過(guò)程浩考,這種管理的直接目的是為了讓軟件過(guò)程在開(kāi)發(fā)效率、質(zhì)量等方面有著更好性能績(jī)效被盈。如果將軟件項(xiàng)目管理視為傳統(tǒng)行業(yè)的產(chǎn)品生產(chǎn)管理的話(huà)析孽,軟件過(guò)程管理則應(yīng)該是對(duì)生產(chǎn)該產(chǎn)品的流水線(xiàn)的設(shè)計(jì)、建設(shè)只怎、維護(hù)袜瞬、優(yōu)化以及升級(jí)改造。軟件過(guò)程管理一般包括了軟件過(guò)程的建立身堡、執(zhí)行邓尤、監(jiān)控、評(píng)估以及改進(jìn)等活動(dòng)盾沫。


CMM/CMMI是什么

  • CMMI概念
    CMMI(Capability Maturity Model Integration)即能力成熟度模型集成裁赠,是一套包括多個(gè)學(xué)科、可擴(kuò)充的模型系列赴精,其前身包括4個(gè)成熟度模型(即CMMI的源模型)佩捞,他們分別為面向開(kāi)發(fā)的SW-CMM、面向系統(tǒng)工程的SE-CMM蕾哟、面向產(chǎn)品集成的IPPD-CMM一忱、以及設(shè)計(jì)外購(gòu)協(xié)作的SS-CMM莲蜘。所謂CMMI模型,是指CMMI刻畫(huà)了軟件團(tuán)隊(duì)/組織從不成熟到成熟的每個(gè)階段的特征——即所謂的路線(xiàn)圖roadmap帘营。與實(shí)際的開(kāi)發(fā)模型沒(méi)關(guān)系票渠。這個(gè)路線(xiàn)圖其實(shí)也是CMMI模型最為精華的部分,甚至都可以在很多其他的領(lǐng)域借鑒芬迄。

  • CMMI好處

  1. 改進(jìn)進(jìn)度和預(yù)算的可預(yù)測(cè)性
  2. 改進(jìn)開(kāi)發(fā)周期
  3. 提高生產(chǎn)率
  4. 改進(jìn)質(zhì)量(質(zhì)量缺陷)
  5. 增加客戶(hù)的滿(mǎn)意度
  6. 提高員工的士氣
  7. 增加投資回報(bào)和低質(zhì)量成本

有兩種通用的評(píng)估方法用以評(píng)估組織軟件過(guò)程的成熟度: 軟件過(guò)程評(píng)估和軟件能力評(píng)價(jià)问顷。

  • 軟件過(guò)程評(píng)估: 用于確定一個(gè)組織當(dāng)前的軟件工程過(guò)程狀態(tài)及組織所面臨的軟件過(guò)程的優(yōu)先改善問(wèn)題,為組織領(lǐng)導(dǎo)層提供報(bào)告以獲得組織對(duì)軟件過(guò)程改善的支持禀梳。軟件過(guò)程評(píng)估集中關(guān)注組織自身的軟件過(guò)程杜窄,在一種合作的、開(kāi)放的環(huán)境中進(jìn)行算途。評(píng)估的成功取決于管理者和專(zhuān)業(yè)人員對(duì)組織軟件過(guò)程改善的支持塞耕。
  • 軟件能力評(píng)價(jià): 用于識(shí)別合格的軟件承包商或者監(jiān)控軟件承包商開(kāi)發(fā)軟件的過(guò)程狀態(tài)。軟件能力評(píng)價(jià)集中關(guān)注識(shí)別在預(yù)算和進(jìn)度要求范圍內(nèi)完成制造出高質(zhì)量的軟件產(chǎn)品的軟件合同及相關(guān)風(fēng)險(xiǎn)嘴瓤。評(píng)價(jià)在一種審核的環(huán)境中進(jìn)行扫外,重點(diǎn)在于揭示組織實(shí)際執(zhí)行軟件過(guò)程的文檔化的審核記錄。

CMM/CMMI不適用于軟件開(kāi)發(fā)的原因

  • CMM/CMMI并不是一種具體的軟件過(guò)程或者軟件開(kāi)發(fā)方法
    軟件過(guò)程改進(jìn)是一個(gè)持續(xù)的廓脆、全員參與的過(guò)程筛谚。CMM/CMMI建立了一組有效地描述成熟軟件組織特征的準(zhǔn)則,該準(zhǔn)則清晰地描述了軟件過(guò)程的關(guān)鍵元素停忿,并包括軟件工程和管理方面的優(yōu)秀實(shí)踐刻获。企業(yè)可以有選擇地引用這些關(guān)鍵實(shí)踐指導(dǎo)軟件過(guò)程的開(kāi)發(fā)和維護(hù),以不斷地改善組織軟件過(guò)程瞎嬉,實(shí)現(xiàn)成本蝎毡、進(jìn)度、功能和產(chǎn)品質(zhì)量等目標(biāo)氧枣。CMMI應(yīng)該是過(guò)程改進(jìn)模型而非軟件過(guò)程或者軟件過(guò)程模型沐兵。
    然而在不少文獻(xiàn)中,CMM/CMMI都被視作一種官僚化和教條主義的重型軟件過(guò)程便监,并且與當(dāng)前軟件開(kāi)發(fā)大環(huán)境格格不入扎谎。事實(shí)上,按照CMM/CMMI模型的要求烧董,一個(gè)軟件組織應(yīng)當(dāng)定義使用本軟件組織特點(diǎn)的軟件過(guò)程毁靶,并且不斷優(yōu)化該過(guò)程,來(lái)更好地實(shí)現(xiàn)軟件組織的商業(yè)目標(biāo)逊移。再實(shí)踐中预吆,軟件組織為了迎合基于CMM/CMMI模型的“Verification”評(píng)估方法,刻意準(zhǔn)備大量文檔化證據(jù)胳泉,導(dǎo)致CMM/CMMI被視作在軟件項(xiàng)目管理中必須滿(mǎn)足的某種標(biāo)準(zhǔn)拐叉,這顯然是對(duì)CMM/CMMI模型意圖和使用方法的曲解岩遗。

  • CMM/CMMI并不能作為檢驗(yàn)軟件過(guò)程優(yōu)劣的標(biāo)準(zhǔn)
    實(shí)踐中,很多人會(huì)將達(dá)到一定成熟度水平視作某個(gè)軟件組織的研發(fā)能力凤瘦,并且試圖進(jìn)行橫向比較宿礁,認(rèn)為成熟度較高的企業(yè),其研發(fā)能力應(yīng)該強(qiáng)于成熟度較低的企業(yè)蔬芥。而事實(shí)上梆靖,由于企業(yè)所處的環(huán)境以及要實(shí)現(xiàn)的目標(biāo)等方面的差異,過(guò)程改進(jìn)對(duì)于不同企業(yè)的含義是不一樣的笔诵。因此涤姊,成熟度等級(jí)不適宜脫離企業(yè)環(huán)境直接橫向比較;同處于相同的成熟度等級(jí)嗤放,也并不能說(shuō)明這些企業(yè)的研發(fā)能力也是相同的。CMMI不是過(guò)程優(yōu)劣的標(biāo)準(zhǔn)壁酬,也不適用作公司之間的能力比較次酌。

  • CMM/CMMI與其他軟件過(guò)程或者軟件開(kāi)發(fā)方法的比較是沒(méi)有任何意義的
    很多人習(xí)慣于將CMM/CMMI作為敏捷方法的對(duì)立面,試圖來(lái)解釋和說(shuō)明敏捷方法的優(yōu)勢(shì)舆乔。事實(shí)上岳服,這種語(yǔ)境之下所謂的CMM/CMMI方法其實(shí)已經(jīng)不是一個(gè)過(guò)程管理的參考模型了,而是某個(gè)特定軟件組織為了迎合或者滿(mǎn)足CMM/CMMI評(píng)估的需要所定義出來(lái)的某個(gè)具體軟件過(guò)程希俩。顯然吊宋,將這個(gè)為了特定目的而定義出來(lái)的軟件過(guò)程的缺點(diǎn)視作CMM/CMMI模型的缺點(diǎn)是不合適的。所以諸如“CMMI vs Agile”的比較都是不恰當(dāng)?shù)难瘴洌罢弑举|(zhì)不是一種軟件過(guò)程模型璃搜,而是一種過(guò)程改進(jìn)。

根據(jù)Humphrey再《Managing the Software Process》一書(shū)中對(duì)軟件過(guò)程管理這一術(shù)語(yǔ)的解釋來(lái)看鳞上,所謂軟件過(guò)程管理應(yīng)該同時(shí)包含按照既定過(guò)程的執(zhí)行和不斷提升過(guò)程能力兩個(gè)方面的內(nèi)容这吻,所以,軟件過(guò)程改進(jìn)應(yīng)被視為軟件過(guò)程管理的一部分篙议。其常用的參考模型就是PDCA和IDEAL唾糯,這兩個(gè)過(guò)程改進(jìn)的元模型。軟件過(guò)程管理和軟件過(guò)程改進(jìn)兩者不能割裂鬼贱,既不能脫離改進(jìn)談管理移怯,也不能脫離管理談改進(jìn)。因此CMM/CMMI模型可以被稱(chēng)為軟件過(guò)程管理參考模型这难,也可以被稱(chēng)為軟件過(guò)程改進(jìn)參考模型舟误,但并不是軟件過(guò)程模型或軟件過(guò)程管理模型。


對(duì)CMM/CMMI模型的誤解

  • CMMI模型需要適當(dāng)裁剪以適應(yīng)公司的實(shí)際情況
    CMMI模型不需要裁剪姻乓,模型本身僅僅刻畫(huà)成熟度路線(xiàn)圖上不同階段的特征脐帝。大部分公司都不具備能力來(lái)裁剪這個(gè)模型同云,真要裁剪,也是應(yīng)該由CMMI的模型的提出方和維護(hù)方SEI干堵腹。真正需要裁剪的是公司內(nèi)部定義的組織級(jí)開(kāi)發(fā)流程和開(kāi)發(fā)規(guī)范炸站,這個(gè)需要裁剪以適應(yīng)具體的項(xiàng)目場(chǎng)景,與CMMI模型的裁剪是完全不同的概念疚顷。
  • CMMI模型太重了旱易,不適合互聯(lián)網(wǎng)時(shí)代的輕量級(jí)開(kāi)發(fā)
    這個(gè)說(shuō)法的錯(cuò)誤之處在于,不一定是CMMI重或者輕腿堤,而是阀坏,CMMI根本就不是開(kāi)發(fā)模型。
  • CMMI模型只適合大公司笆檀、大項(xiàng)目忌堂,不適合小項(xiàng)目
    首先沒(méi)人檢驗(yàn)過(guò);其次酗洒,項(xiàng)目的大小衡量本身也缺乏值得信賴(lài)的參考依據(jù)士修;最后,接受這種說(shuō)法的人還是把CMMI當(dāng)成是一種特殊的開(kāi)發(fā)模型樱衷。
  • CMMI模型只適合需求不變或者很少變化的場(chǎng)合棋嘲,不適合需求不確定,變化很多的場(chǎng)合
    CMMI不是開(kāi)發(fā)模型矩桂,與需求變化與否無(wú)關(guān)沸移,談不上適應(yīng)或者不適應(yīng)。
  • CMMI與敏捷開(kāi)發(fā)的對(duì)比
    這種說(shuō)法是錯(cuò)的侄榴。最根本的原因是CMMI不是開(kāi)發(fā)過(guò)程雹锣,而大部分敏捷則是具體的開(kāi)發(fā)過(guò)程。兩者根本就是風(fēng)馬牛不相及的事物癞蚕,不具備沖突的基礎(chǔ)笆制。所以不存在兩者之間的權(quán)衡和借鑒。此外涣达,也不存在CMMI的抽象是其不足在辆。所有的模型都是抽象的,抽象恰恰是模型的本質(zhì)特征之一度苔。模型通過(guò)抽象來(lái)強(qiáng)化特征與目標(biāo)之間的關(guān)系匆篓,這才能幫助我們理解其內(nèi)在機(jī)理,指導(dǎo)具體實(shí)踐寇窑。

引用

  1. 本文大部分觀點(diǎn)是基于《軟件過(guò)程與管理方法綜述》 榮國(guó)平鸦概,張賀,邵棟,王青
  2. 只言片語(yǔ)說(shuō)軟件的新浪博客系列
  1. 南京大學(xué)軟件學(xué)院《軟件工程與管理》課程ppt

最后窗市,再次感謝榮國(guó)平老師以簡(jiǎn)明扼要的文字先慷,闡明了軟件開(kāi)發(fā)領(lǐng)域容易混淆的部分,發(fā)人深思咨察,值得我繼續(xù)潛心鉆研论熙。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市摄狱,隨后出現(xiàn)的幾起案子脓诡,更是在濱河造成了極大的恐慌,老刑警劉巖媒役,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件祝谚,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡酣衷,警方通過(guò)查閱死者的電腦和手機(jī)交惯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)穿仪,“玉大人席爽,你說(shuō)我怎么就攤上這事∧到瑁” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵袭异,是天一觀的道長(zhǎng)钠龙。 經(jīng)常有香客問(wèn)我,道長(zhǎng)御铃,這世上最難降的妖魔是什么碴里? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮上真,結(jié)果婚禮上咬腋,老公的妹妹穿的比我還像新娘。我一直安慰自己睡互,他們只是感情好根竿,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著就珠,像睡著了一般寇壳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上妻怎,一...
    開(kāi)封第一講書(shū)人閱讀 52,696評(píng)論 1 312
  • 那天壳炎,我揣著相機(jī)與錄音,去河邊找鬼逼侦。 笑死匿辩,一個(gè)胖子當(dāng)著我的面吹牛腰耙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播铲球,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼挺庞,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了睬辐?” 一聲冷哼從身側(cè)響起挠阁,我...
    開(kāi)封第一講書(shū)人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎溯饵,沒(méi)想到半個(gè)月后侵俗,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡丰刊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年隘谣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啄巧。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡寻歧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出秩仆,到底是詐尸還是另有隱情码泛,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布澄耍,位于F島的核電站噪珊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏齐莲。R本人自食惡果不足惜痢站,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望选酗。 院中可真熱鬧阵难,春花似錦、人聲如沸芒填。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)殿衰。三九已至怀偷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間播玖,已是汗流浹背椎工。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人维蒙。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓掰吕,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親颅痊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子殖熟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 這8種學(xué)生永遠(yuǎn)拿不到高分!早看早受益营罢! 下面是一位資深班主任總結(jié)了8種成績(jī)提不上去的原因赏陵,分別對(duì)應(yīng)8類(lèi)孩子,如果你...
    情山閱讀 16,907評(píng)論 10 145
  • 文/陳康慧 這是一份遲到的2017年總結(jié)饲漾,由于工作原因蝙搔,耽誤了昨天晚上本該寫(xiě)總結(jié)的時(shí)間。 回顧過(guò)去的一年里考传,我的人...
    陳康慧閱讀 661評(píng)論 28 19
  • 他與她相識(shí)已有幾年吃型,她年長(zhǎng)他5歲,便一直以姐姐自居僚楞。 他一直是喜歡她的勤晚,為了她,一畢業(yè)就來(lái)到她工作的地方實(shí)習(xí)镜硕。...
    敲可愛(ài)的阿美閱讀 236評(píng)論 0 1
  • 媽媽手術(shù)結(jié)束运翼,一切順利返干,晚上妹妹來(lái)陪床兴枯,我可以回去休息。 自從辭職矩欠,自從有了孩子财剖,我很少坐地鐵了。如今癌淮,上海的地鐵...
    K_媽閱讀 480評(píng)論 0 7
  • 雨白藏黃夕躺坟,桃紅滑青苔。 濕身無(wú)奈嘆乳蓄,沾衣莫能哀咪橙。 舊友重逢去,經(jīng)年一別來(lái)。 欲追仍記否美侦,風(fēng)聽(tīng)靜亭臺(tái)产舞。
    kakaDaDa閱讀 188評(píng)論 0 1