CMMI(Capability
Maturity Model Integration)即能力成熟度模型集成,是上世紀(jì)80年代初晦款,美國(guó)國(guó)防部牽頭的政府機(jī)構(gòu)選擇項(xiàng)目的外包公司時(shí)剧罩,為了選出更有能力矾飞,更成熟的公司一膨,于是就委托位于位于匹茲堡的卡內(nèi)基梅隆大學(xué)成立軟件工程學(xué)院來(lái)研究,由Watt Humphrey領(lǐng)頭洒沦,100多位專家在一起通過(guò)一段時(shí)間的探討豹绪,總結(jié)了大概100多條標(biāo)準(zhǔn),后來(lái)再經(jīng)過(guò)總結(jié)提煉申眼,這些標(biāo)準(zhǔn)極具代表性瞒津,逐漸轉(zhuǎn)變?yōu)槟芰Τ墒於饶P虲MM,而CMMI則是對(duì)CMM的繼承括尸。能力成熟度模型的本質(zhì)時(shí)刻畫一個(gè)軟件公司從不成熟到成熟的路線圖巷蚪,并不是一般人所理解的只是一些標(biāo)準(zhǔn),很多人會(huì)拿敏捷開發(fā)和CMMI進(jìn)行比較濒翻,但實(shí)際上二者并沒(méi)有可比較性屁柏,一個(gè)是開發(fā)方法,一個(gè)是注重優(yōu)化改進(jìn)的模型有送。它包括連續(xù)式和階段式兩種表現(xiàn)形式淌喻,所謂連續(xù)式可以理解為好與不好,而階段式理解為做了還是沒(méi)做雀摘,CMMI所做的評(píng)估只是過(guò)程改進(jìn)的起點(diǎn)而不是終點(diǎn)裸删,就比如你評(píng)估到了5級(jí),并不意味著它就完成了阵赠,什么就不去追求了涯塔,也并不意味著就比三級(jí)四級(jí)的公司實(shí)際表現(xiàn)就更好,而是到了五級(jí)依然該去追求整個(gè)過(guò)程的改進(jìn)清蚀。它包括五個(gè)級(jí)別匕荸,第一個(gè)級(jí)別Initial,一般指的是以個(gè)人為中心轧铁,開發(fā)過(guò)程通常隨意且混亂每聪。第二個(gè)級(jí)別Managed,這時(shí)候項(xiàng)目已經(jīng)擁有了跟蹤齿风,確保整個(gè)過(guò)程按照方針得到計(jì)劃與執(zhí)行药薯。第三個(gè)級(jí)別Defined,核心是共享救斑,過(guò)程得到了清晰的說(shuō)明與理解童本,并以標(biāo)準(zhǔn)、規(guī)程工具與方法的形式進(jìn)行描述脸候。第四個(gè)級(jí)別Quantitatively Managed穷娱,主要是量化,第五個(gè)級(jí)別Optimizing运沦,無(wú)止境的在有初步效果的現(xiàn)有體系上的過(guò)程改進(jìn)泵额。這些是對(duì)本文要討論的CMMI的基本介紹。
CMMI進(jìn)入我國(guó)軟件領(lǐng)域這些年以來(lái)携添,對(duì)我國(guó)軟件產(chǎn)業(yè)的健康發(fā)展作出了巨大貢獻(xiàn)嫁盲。但是也出現(xiàn)了一些在實(shí)踐中被誤用和曲解的場(chǎng)景,以及帶來(lái)了與初衷漸行漸遠(yuǎn)的效果烈掠。首先羞秤,CMMI并不是具體的軟件開發(fā)方法,它應(yīng)該是去定義一個(gè)適應(yīng)本軟件組織的軟件過(guò)程左敌,并且不斷優(yōu)化的過(guò)程,以更符合軟件組織的商業(yè)目標(biāo),CMMI不能被用于檢驗(yàn)軟件過(guò)程優(yōu)劣辫诅,過(guò)程改進(jìn)對(duì)不同的企業(yè)是不一樣的转质。設(shè)立CMMI證書后,一些企業(yè)只是單純的以獲得證書為根本目的叼风,以為獲得更高級(jí)的證書就能獲得進(jìn)入外包市場(chǎng)的國(guó)際通行證幸斥,但是卻忽視了對(duì)軟件生產(chǎn)過(guò)程真正持續(xù)的改進(jìn)。證書掛墻上咬扇,體系卻被拋棄了甲葬,更或者是實(shí)施到一定階段,缺陷依然多懈贺,效率依然多经窖,達(dá)不到最初想要的效果,還有一種就是急于通過(guò)更高等級(jí)的評(píng)估梭灿,也就是單純的把他們當(dāng)作過(guò)程能力改進(jìn)的終點(diǎn)画侣,不管它是否適合當(dāng)前的自身和評(píng)估過(guò)后的影響。這些都是令人擔(dān)憂的現(xiàn)象堡妒。因此我覺(jué)得其中不僅有人們對(duì)它曲解和誤用配乱,還得考慮當(dāng)前軟件開發(fā)的大環(huán)境,CMMI模型存在不適合當(dāng)前軟件開發(fā)的理由。
首先搬泥,目前的軟件開發(fā)基本CMMI的3級(jí)水平就能達(dá)到一般的需求桑寨,而4級(jí)5級(jí)的一些要求基于目前的基本實(shí)踐會(huì)讓基本的評(píng)估變得較為僵硬,CMMI的4級(jí)強(qiáng)調(diào)的是過(guò)程穩(wěn)定性和項(xiàng)目量化管理忿檩,5級(jí)強(qiáng)調(diào)的是根本原因分析和持續(xù)改進(jìn)尉尾,如果企業(yè)3級(jí)時(shí)就有了量化目標(biāo),那就意味著做到了部分4級(jí)的要求燥透,甚至很多企業(yè)很多指標(biāo)已經(jīng)做得很好了沙咏,就要考慮4,5是否一定有必要班套,是否真的能實(shí)現(xiàn)真正的跟高級(jí)的要求肢藐,有時(shí)候量化不一定能正確的證明你的持續(xù)改進(jìn),之前所提到的持續(xù)改進(jìn)是需要時(shí)間累積的吱韭。四級(jí)到五級(jí)很多留給你去驗(yàn)證的框架吆豹,它們基本都是動(dòng)態(tài)的,而動(dòng)態(tài)的往往是最難把握住的杉女,事實(shí)上我們大多數(shù)達(dá)到四級(jí)五級(jí)的公司瞻讽,評(píng)估過(guò)程中所使用的數(shù)據(jù)往往并不是真實(shí)的數(shù)據(jù),因?yàn)檎鎸?shí)的數(shù)據(jù)無(wú)法體現(xiàn)一種動(dòng)態(tài)的關(guān)系熏挎。
其次速勇,當(dāng)前的軟件開發(fā)過(guò)程除了強(qiáng)調(diào)過(guò)程管理的重要性以外,使用的技術(shù)坎拐,人的因素也有決定性的作用烦磁,這也消弱很多CMMI建立的模式的作用。所以好多企業(yè)要解決的首先是企業(yè)當(dāng)前實(shí)際的瓶頸問(wèn)題哼勇,才能最大限度的提高生產(chǎn)率都伪。有一家專門從事軟件外包的公司,通過(guò)CMMI的3級(jí)积担,流程定義得很簡(jiǎn)潔陨晶、實(shí)用,企業(yè)的執(zhí)行力也很強(qiáng)帝璧,但是項(xiàng)目的實(shí)際效果卻不好先誉。為什么呢?經(jīng)過(guò)仔細(xì)審查項(xiàng)目組的需求的烁、設(shè)計(jì)褐耳、測(cè)試用例、源代碼等文檔渴庆,發(fā)現(xiàn)需求的描述有遺漏铃芦,有錯(cuò)誤雅镊;設(shè)計(jì)文檔沒(méi)有滿足基本的設(shè)計(jì)原則;測(cè)試用例不完備刃滓,覆蓋率比較低仁烹;源代碼中需要重構(gòu)的地方比比皆是。項(xiàng)目組的成員都比較年輕注盈,工程經(jīng)驗(yàn)大都少于兩年晃危,盡管企業(yè)也進(jìn)行了需求工程叙赚、設(shè)計(jì)模式等技術(shù)培訓(xùn)老客,但經(jīng)驗(yàn)不是靠培訓(xùn)就能解決的。因此震叮,即使有好的流程胧砰,仍然有可能開發(fā)不出好的軟件系統(tǒng),另外一家公司苇瓣,沒(méi)有通過(guò)CMMI的評(píng)估尉间,公司內(nèi)有3個(gè)部門,其中一個(gè)部門積累了一個(gè)基于.NET的可復(fù)用的MIS軟件框架击罪,該框架已由少數(shù)精英開發(fā)了4年哲嘲,積累了4年,發(fā)布了多個(gè)版本媳禁。實(shí)現(xiàn)一個(gè)新需求時(shí)眠副,只要定制界面,編寫存儲(chǔ)過(guò)程就可以了竣稽。當(dāng)一個(gè)新員工進(jìn)入該部門后囱怕,基于該框架,大概花費(fèi)1周的時(shí)間就可以編寫出能夠交付給客戶執(zhí)行的代碼毫别,該部門的開發(fā)效率很高娃弓。其實(shí)對(duì)于該企業(yè)來(lái)講,引入CMMI并非當(dāng)務(wù)之急岛宦,打破部門之間的壁壘台丛,將該軟件框架推廣到其他兩個(gè)部門可能投入、產(chǎn)出比會(huì)更高砾肺。在一些應(yīng)用實(shí)踐中挽霉,很明顯CMMI一定程度上忽視了人的主觀能動(dòng)性和人在不同狀態(tài)下工作效率的很大差異,違背了客觀事實(shí)债沮,導(dǎo)致它并不受到應(yīng)用實(shí)踐者的歡迎炼吴。
再者,CMMI實(shí)踐過(guò)程中有些量化的具體標(biāo)準(zhǔn)并不清晰疫衩,也很難制定出足夠有效的量化標(biāo)準(zhǔn)硅蹦,標(biāo)準(zhǔn)不合適一定程度會(huì)拉低開發(fā)效率,讓開發(fā)人員束手束腳,比如開發(fā)過(guò)程中要求填寫大量的文檔童芹,然后事實(shí)是很少有人通過(guò)查找這些文檔發(fā)現(xiàn)錯(cuò)誤涮瞻。最主要的原因還是在于實(shí)踐過(guò)程和CMMI應(yīng)用的實(shí)際困難。更多是實(shí)踐有問(wèn)題假褪,沒(méi)有建立起度量的標(biāo)準(zhǔn)和完成標(biāo)準(zhǔn)署咽,沒(méi)有采用合理的構(gòu)建策略,沒(méi)有質(zhì)量保證的手段生音,沒(méi)有進(jìn)行足夠的交流宁否,沒(méi)有足夠精確的需求等等。有的企業(yè)為了滿足評(píng)估的需要缀遍,做了上百個(gè)文檔來(lái)滿足模型的要求慕匠,這并不正確。這些文檔也許能起到作用域醇,每份文檔能起到作用的概率并不高台谊,而完成這大量文檔所付出的工作量和成本完全不能匹配它的效果,模型是強(qiáng)調(diào)直接證據(jù)譬挚,但是并非文檔越多越好锅铅。文檔只是用來(lái)證明某個(gè)實(shí)踐你做到了,只要達(dá)到了這個(gè)目的就可以了减宣,而且一個(gè)文檔可以滿足多條實(shí)踐的要求盐须,可以作為多條實(shí)踐的證據(jù),這是最經(jīng)濟(jì)的做法蚪腋,只要內(nèi)容有了丰歌,也并非在乎文檔的多少與格式。更不利的方面在于CMMI繁瑣的文檔和會(huì)議常常打斷開發(fā)人員的思路屉凯,客觀上延長(zhǎng)了項(xiàng)目開發(fā)的周期立帖,提高了出錯(cuò)量,這對(duì)于當(dāng)今的技術(shù)人才支撐的軟件開發(fā)行業(yè)而言悠砚,絕對(duì)是不可忽視的負(fù)面影響晓勇。
CMMI初衷所應(yīng)對(duì)的體系結(jié)構(gòu)和目前軟件開發(fā)中常用的本質(zhì)上并不相同,CMMI所要求的SEPG所出的規(guī)范需要得到軟件項(xiàng)目組的認(rèn)可灌旧,規(guī)范在執(zhí)行過(guò)程中需要進(jìn)一步與項(xiàng)目組的實(shí)際結(jié)合從而進(jìn)行改進(jìn)绑咱;而SQA人員則是需要監(jiān)督 軟件過(guò)程是否按照規(guī)范來(lái)執(zhí)行,從而決定是否開出不符合項(xiàng)NCI枢泰。另外描融,系統(tǒng)測(cè)試人員也需要具有相當(dāng)?shù)莫?dú)立性,不能處于項(xiàng)目開發(fā)人員的控制之下衡蚂。所有這些窿克,在如今的一個(gè)以技術(shù)作為主導(dǎo)的公司里很難做到骏庸,當(dāng)前軟件公司的人員角色很難分清晰。
CMMI只對(duì)可以被控制的過(guò)程有作用年叮,但是如果過(guò)程本身是失控的那也就沒(méi)有再按照模型進(jìn)行的必要性了具被。CMMI是可控制的軟件管理過(guò)程,它從需求管理到度量分析以及配置管理的過(guò)程中都是基于正確的可分析的數(shù)據(jù)的基礎(chǔ)上只损,而如果這部分?jǐn)?shù)據(jù)不能達(dá)到想要的效果一姿,你無(wú)論如何也沒(méi)法從CMMI中收獲想要的效果。CMMI的實(shí)際應(yīng)用效果也沒(méi)想象中的那么好跃惫,除了以上提到的認(rèn)證背后產(chǎn)生的不正確的引導(dǎo)和不良的行業(yè)風(fēng)氣外叮叹,還關(guān)鍵在于將抽象轉(zhuǎn)化為具體的難度,CMMI的定位是精細(xì)化管理辈挂,需要過(guò)程交付衬横,量化數(shù)據(jù)來(lái)支持裹粤,如果將它變相的變成依賴人員的檢查终蒂,勢(shì)必會(huì)導(dǎo)致CMMI流于形式,而這是一些怪相產(chǎn)生的關(guān)鍵原因遥诉。甚至有人拿它去和敏捷開發(fā)相比較拇泣,但是二者并無(wú)可比較之處,CMMI刻畫了軟件團(tuán)隊(duì)從不成熟到成熟的每個(gè)階段的特征矮锈,它是一種路線圖霉翔,而敏捷是實(shí)際的一種開發(fā)模型。
總的來(lái)說(shuō)苞笨,CMMI確實(shí)是軟件工程領(lǐng)域少見(jiàn)的出色工作债朵,對(duì)軟件開發(fā)工作也有著正確的引領(lǐng)作用,但是并不完全適合當(dāng)代快速發(fā)展的軟件開發(fā)行業(yè)瀑凝。
課堂筆記整理(4.25-4.26)
課程名稱:
CMMI(Capability
Maturity Model Integration序芦,能力成熟度模型集成)
推薦書目:《人月神話》,《人件》(老師上課的時(shí)候經(jīng)常引用其中的話)
上課風(fēng)格(個(gè)人觀點(diǎn)):經(jīng)常會(huì)有一些比較開放的思考性問(wèn)題粤咪,個(gè)人覺(jué)得其實(shí)也沒(méi)有絕對(duì)的正確答案谚中,主要是體驗(yàn)一種思考的過(guò)程并獲取一些啟發(fā),有些觀點(diǎn)也不是很贊同寥枝。還會(huì)穿插一些其它學(xué)科的知識(shí)宪塔,讓我感到自身知識(shí)是多么的匱乏…
相關(guān)背景:
上世紀(jì)80年代初,美國(guó)國(guó)防部等政府機(jī)構(gòu)在將一些項(xiàng)目外包時(shí)囊拜,發(fā)現(xiàn)選擇承包的公司是一件很復(fù)雜的事情某筐,所以就希望弄一個(gè)評(píng)價(jià)標(biāo)準(zhǔn)。于是就委托位于匹茲堡的卡內(nèi)基梅隆大學(xué)(CMU冠跷,學(xué)校的相關(guān)專業(yè)很厲害)南誊,其成立了軟件工程學(xué)院(SEI)來(lái)進(jìn)行研究敢辩。領(lǐng)頭的是Watt Humphrey(從IBM辭職而來(lái),具有很豐富的專業(yè)經(jīng)驗(yàn))弟疆,其聚集了不少專家進(jìn)行研究探討戚长。總結(jié)了大概一百多條標(biāo)準(zhǔn)怠苔,開始的時(shí)候是做了一個(gè)調(diào)查問(wèn)卷同廉,后來(lái)逐漸轉(zhuǎn)變?yōu)镃MM(能力成熟度模型)。而CMMI算是對(duì)于CMM的繼承柑司。需要注意的是迫肖,CMMI的構(gòu)建Humphrey并沒(méi)有在其中,據(jù)老師說(shuō)因?yàn)樗庾R(shí)到即便有這么個(gè)玩意兒也不能從根本上解決遇到的問(wèn)題攒驰,所以其將研究精力轉(zhuǎn)向了其它方面蟆湖。具體相關(guān)的如果大家感興趣的可以去搜索些深入閱讀材料。
課堂構(gòu)架:
???? 老師上課的思路感覺(jué)還是蠻清晰的玻粪,我大概說(shuō)下一個(gè)大框架隅津。
一個(gè)模型
兩種表現(xiàn)形式
三種應(yīng)用領(lǐng)域
四種類型
五個(gè)級(jí)別
???? 一個(gè)模型:就是指能力成熟度模型,老師說(shuō)他覺(jué)得這是軟件工程領(lǐng)域很少見(jiàn)的做的相當(dāng)完美的一項(xiàng)研究劲室。(還記得背景中提到的Humphrey拉了一幫人一起探討列條目么伦仍?這列出來(lái)的一百多條內(nèi)容里,在日后的這么些年里被實(shí)踐證明僅有十幾條是他們并未想到的很洋。)其本質(zhì)是刻畫一個(gè)軟件公司從不成熟到成熟的路線圖充蓝。(而不是一般人所認(rèn)為的CMMI就是一堆材料)
???? 在這里老師提出了幾個(gè)問(wèn)題來(lái)幫助認(rèn)知
???? 我就直接寫結(jié)論了…
???? 1 CMMI是一個(gè)不需要裁減的模型,其本身是完整的喉磁。
???? 2敏捷開發(fā)和CMMI并非是對(duì)立面關(guān)系谓苟。敏捷指的是一種開發(fā)方法,而CMMI是一種模型协怒。
???? 兩種表現(xiàn)形式:即連續(xù)式和階段式
???? 連續(xù)式是反應(yīng)一個(gè)軟件公司的能力水平涝焙,階段式則是反應(yīng)其成熟度水平。
???? 這里老師也做了一些具體的說(shuō)明斤讥,所謂連續(xù)式可以理解為做的好與不好纱皆,而階段式則可以理解為做了還是沒(méi)做。
???? 其中階段式所反應(yīng)的成熟度水平擁有5個(gè)級(jí)別的劃分芭商,而可以把連續(xù)式看作是第六個(gè)級(jí)別派草。這里老師表達(dá)了自己的觀點(diǎn),他覺(jué)得這些東西不能太過(guò)于絕對(duì)化铛楣,比如Google公司近迁,它是沒(méi)有CMMI級(jí)別的,但誰(shuí)都知道這是一家好公司簸州。而一個(gè)只做2級(jí)的公司有時(shí)候要好于3級(jí)的鉴竭,可以理解為是它的性價(jià)比比較低歧譬,說(shuō)明是腳踏實(shí)地做事的。(這里沒(méi)有必要太過(guò)鉆牛角尖搏存,主要是想傳達(dá)一個(gè)思想瑰步,CMMI說(shuō)到底也只是一個(gè)相對(duì)的評(píng)判標(biāo)準(zhǔn),不可以說(shuō)的太絕對(duì)璧眠。就好像評(píng)價(jià)一個(gè)人缩焦,不是用好和壞這么簡(jiǎn)單就可以定義的。)
???? 還有一點(diǎn)老師想闡述的是這種評(píng)估是過(guò)程改進(jìn)的起點(diǎn)责静,而不是終點(diǎn)袁滥。不是說(shuō)公司評(píng)到了5級(jí)就好像任務(wù)完成,什么都不去追求了灾螃。這種評(píng)估只是一種輔助手段题翻,最終目的不在于此。
??? ?三種應(yīng)用領(lǐng)域:
??? ?開發(fā)(CMMI for Development,CMMI-DEV)
???? 服務(wù)(CMMI for Service,CMMI-SVC)
???? 采購(gòu)(CMMI for Acquisition,CMMI-ACQ)
???? 這三個(gè)領(lǐng)域共享16個(gè)核心過(guò)程域腰鬼,同時(shí)每個(gè)領(lǐng)域自己特有的一些過(guò)程域嵌赠。
在這里老師還談了談所謂管理,如何才算管理呢垃喊?首先就必須要有一個(gè)目標(biāo)猾普,如果沒(méi)有目標(biāo),就不會(huì)出現(xiàn)偏差本谜。因?yàn)闆](méi)有和實(shí)際的一個(gè)參照物。而管理就是對(duì)這個(gè)目標(biāo)的跟進(jìn)和對(duì)目標(biāo)的補(bǔ)救偎窘。
對(duì)于過(guò)程域乌助,或者說(shuō)很多的聯(lián)系,是一種相關(guān)性的陌知,而不是因果關(guān)系他托。就是說(shuō)這些的聯(lián)系不是上下級(jí)或者太過(guò)于緊密的關(guān)系。
四種類型:
對(duì)于這些過(guò)程域要進(jìn)行分類
分為項(xiàng)目管理仆葡、過(guò)程管理赏参、工程類、支持類
單個(gè)過(guò)程域?qū)儆谖ㄒ坏囊粋€(gè)類型沿盅,比如不會(huì)出現(xiàn)一個(gè)過(guò)程域既是項(xiàng)目管理的又是過(guò)程管理的把篓。
這里有個(gè)題外內(nèi)容:老師推薦看一看Google編碼規(guī)范和代碼評(píng)審的相關(guān)博文。這個(gè)和考試的關(guān)系肯定是沒(méi)什么的腰涧,老師也強(qiáng)調(diào)了一點(diǎn)韧掩,就是希望通過(guò)上課學(xué)到一些東西,哪怕是聽說(shuō)幾個(gè)新鮮的名詞窖铡,反正是應(yīng)該有所收獲的疗锐,而不是以對(duì)付考試為目的坊谁。
五個(gè)級(jí)別:
這個(gè)好像就是CMMI評(píng)審的那5個(gè)級(jí)別了,即階段式所反應(yīng)的成熟度水平滑臊。
需要注意的是老師說(shuō)這里的5個(gè)級(jí)別和CMM中的是有所區(qū)別的口芍,在以后自己閱讀一些相關(guān)材料的時(shí)候要注意這一點(diǎn),以免暈掉…
第一個(gè)級(jí)別:原始級(jí)(所有的公司都默認(rèn)是這個(gè)級(jí)別)Initial
特點(diǎn):個(gè)人英雄主義雇卷,一般團(tuán)隊(duì)里有個(gè)Superstar阶界,他會(huì)左右項(xiàng)目的進(jìn)展甚至是成功還是失敗。開發(fā)過(guò)程通常隨意且混亂聋庵。
第二個(gè)級(jí)別:已管理Managed
特點(diǎn):這時(shí)候項(xiàng)目已經(jīng)擁有了跟蹤膘融,確保整個(gè)過(guò)程按照方針得到計(jì)劃與執(zhí)行。
第三個(gè)級(jí)別:已定義Defined
特點(diǎn):核心是共享祭玉,過(guò)程得到了清晰的說(shuō)明與理解氧映,并以標(biāo)準(zhǔn)、規(guī)程工具與方法的形式進(jìn)行描述脱货。
第四個(gè)級(jí)別:已量化的管理Quantitatively Managed
特點(diǎn):就是量化…老師在這里談的挺多岛都,主要是因?yàn)楝F(xiàn)實(shí)和理想之間存在差距,導(dǎo)致矛盾的存在振峻。說(shuō)白一些臼疫,就是這個(gè)量化到底是不是好呢?很難說(shuō)也很難做到一種完美的量化方法扣孟。
第五個(gè)級(jí)別:優(yōu)化中Optimizing
特點(diǎn):從英文表述可以看出烫堤,上面幾個(gè)都是ed形式,而這個(gè)是ing凤价,即為無(wú)止境的鸽斟。
這里老師說(shuō)了一個(gè)觀點(diǎn),就是所有的4級(jí)利诺、5級(jí)的公司基本都是做的數(shù)據(jù)富蓄,再直白點(diǎn)就是造假。因?yàn)檎鎸?shí)的數(shù)據(jù)無(wú)法體現(xiàn)一種變化關(guān)系慢逾,但要評(píng)級(jí)必須…咳咳立倍,就是這樣,大家應(yīng)該都懂的…但是這并非是一味的好或者壞侣滩,要辯證看待口注。比如量化這個(gè)東西,它不能完全沒(méi)有也不能太死板胜卤,就是沒(méi)有一個(gè)完美的標(biāo)準(zhǔn)疆导,看個(gè)人意識(shí)了。基本老師就這么個(gè)意思澈段,所以還需要繼續(xù)研究和探索悠菜,大家也不能妄自菲薄,認(rèn)為前途很黑暗败富。
這里老師還闡述了一下軟件工程與傳統(tǒng)行業(yè)的差異表現(xiàn)在哪里悔醋,最核心的就是傳統(tǒng)行業(yè)生產(chǎn)每件東西都是一樣的,是重復(fù)性的兽叮。而軟件不一樣芬骄,每一件都是新的。所以說(shuō)軟件開發(fā)是個(gè)很困難很復(fù)雜的事情鹦聪,所以我們都很不容易~~
這就是一個(gè)大概的體系架構(gòu)账阻,希望大家可以比較清晰些,不會(huì)太暈菜泽本,具體的東西再看看那些PDF淘太。老師說(shuō)有幾個(gè)比較重要的東西,一個(gè)是過(guò)程域的結(jié)構(gòu)规丽,具體就是CMMI Slides這個(gè)PDF文檔中的Process Area Components這張圖蒲牧,大家仔細(xì)看看。另一個(gè)是老師在黑板上畫的一張表格赌莺。
接下來(lái)老師就是具體講述表格中的每個(gè)過(guò)程域了冰抢,目前講了的有PP、PMC艘狭、SAM(這個(gè)沒(méi)有講挎扰,老師說(shuō)如果有時(shí)間再講)、CM缓升、MA鼓鲁、PPQA、RD港谊、TS、PI
我個(gè)人覺(jué)得沒(méi)有必要太過(guò)于扣那些細(xì)節(jié)橙弱,除非要去實(shí)踐的時(shí)候歧寺,不然開始就這么干的話沒(méi)有一些毅力基本會(huì)暈菜…老師在介紹這些具體過(guò)程域的時(shí)候也是以一種探討的方式,而不是單純的講述概念棘脐。
比如PP這個(gè)過(guò)程域斜筐,就是項(xiàng)目計(jì)劃,這里談到了估算問(wèn)題蛀缝,老師其實(shí)沒(méi)有過(guò)多說(shuō)什么具體的估算方法顷链,畢竟時(shí)間也不允許。但老師表達(dá)了一個(gè)想法屈梁,估算的具體方法不是最重要的嗤练,而是在于讓所有的團(tuán)隊(duì)里的人相信這個(gè)具體的方案是可行的榛了。
又比如PMC這個(gè)過(guò)程域,就是項(xiàng)目監(jiān)控煞抬。項(xiàng)目監(jiān)控是必須的霜大,也是有價(jià)值的,但出現(xiàn)偏差時(shí)革答,不能魯莽地去補(bǔ)救战坤,因?yàn)閷?dǎo)致偏差的原因有很多,要具體去分析残拐。
課上老師還介紹很多途茫,但都比較瑣碎。
比如老師說(shuō)了一個(gè)詞語(yǔ):技術(shù)負(fù)債溪食,他希望我們能夠自己去搜索一下這個(gè)概念并且有所收獲囊卜。
比如談到配置管理的時(shí)候,老師說(shuō)一般有3部分眠菇,工作庫(kù)(基本的東西都可以包含其中)边败、配置庫(kù)(穩(wěn)定版本)這里的東西是不允許隨意變更的,但不是不可以變更捎废,需要有一套流程笑窜。還有就是產(chǎn)品庫(kù)。說(shuō)實(shí)話登疗,這里我不是很懂…如果有人能闡述清楚的話排截,就適當(dāng)修改一下哈~老師還說(shuō)代碼進(jìn)入配置庫(kù)的的節(jié)點(diǎn)時(shí)在單元測(cè)試結(jié)束。
比如老師還談到了語(yǔ)言的問(wèn)題辐益,bug和defect翻譯成中文都是缺陷断傲,但其實(shí)在英文中這兩個(gè)是有區(qū)別的,bug是可預(yù)知結(jié)果的智政,而defect則是不可預(yù)知的錯(cuò)誤认罩。
比如老師還說(shuō)軟件工程往往是一種權(quán)衡,而不是一種科學(xué)续捂。
比如老師還談?wù)摿藴y(cè)試這個(gè)職位垦垂,他的觀點(diǎn)是測(cè)試是編碼規(guī)范的執(zhí)行者,但產(chǎn)品質(zhì)量的保障其實(shí)并不等于測(cè)試的職責(zé)牙瓢。測(cè)試在整個(gè)循環(huán)改進(jìn)中是個(gè)重要角色劫拗,但他不是萬(wàn)能的。
比如老師還說(shuō)客戶需求和產(chǎn)品需求是兩個(gè)不同的概念矾克,客戶需求是用戶所需要的使用價(jià)值讥巡,是用戶面臨的問(wèn)題锈嫩。而產(chǎn)品需求則是根據(jù)客戶需求所產(chǎn)生的解決方案贰镣,乍一看有點(diǎn)暈,仔細(xì)想想?yún)^(qū)別還是蠻明顯的哈滓彰。老師還說(shuō)和用戶最好只討論具體問(wèn)題而不涉及系統(tǒng),因?yàn)楫?dāng)你給用戶建立了系統(tǒng)的概念以后欲逃,也許需求就需要全部改找蜜,也就是大俠重新來(lái)過(guò)……
比如老師還說(shuō)有時(shí)候太多名詞并不是一件好事情,因?yàn)檐浖_發(fā)本身已足夠復(fù)雜稳析,再弄一堆復(fù)雜的東西會(huì)讓人瘋掉的…
比如老師還說(shuō)一個(gè)缺陷在開發(fā)過(guò)程中存在的時(shí)間越長(zhǎng)洗做,解決的代價(jià)越大,且增長(zhǎng)不是線性的彰居,有可能是指數(shù)級(jí)的诚纸。
還有很多很多,就不贅述了陈惰。
而我個(gè)人的感受是老師在課堂上闡述的最多的是一種辯證的觀念畦徘,就以CMMI為例,它本身就個(gè)完美的模型抬闯,而每一個(gè)過(guò)程域所闡述的則是最佳方案(理想方案)井辆,但實(shí)際操作起來(lái)確實(shí)是很難達(dá)到的。比如老師說(shuō)評(píng)審消除缺陷的平均代價(jià)是最低的溶握,大家也知道杯缺,但是卻很少有人能嚴(yán)格地執(zhí)行評(píng)審制度。我們更多的是尋找一種平衡睡榆,一種自己和團(tuán)隊(duì)認(rèn)可的東西萍肆。
最后總結(jié)一下:軟件開發(fā)很復(fù)雜,大家活的很不容易胀屿,多看些書接受點(diǎn)新思想多一點(diǎn)思考不一定立馬有用但一定是有益的塘揣,矛盾是沒(méi)法消除的,而考試卻是不會(huì)很難的宿崭,就這樣亲铡。