官术网_书友最值得收藏!

1.3 人們關(guān)注的不僅僅是質(zhì)量

企業(yè)開發(fā)產(chǎn)品的目的是賺錢,為了使利潤最大化,人們希望軟件開發(fā)工作“做得好、做得快,并且少花錢”。用軟件工程的術(shù)語來講,即“提高質(zhì)量、提高生產(chǎn)率,并且降低成本”。古代哲學(xué)家曾為“魚與熊掌不可兼得”的問題費盡心思,我們現(xiàn)在卻夢想魚、熊掌、美酒三者兼得,現(xiàn)代人的欲望真是無止境啊。

讓我們先談?wù)勝|(zhì)量、生產(chǎn)率和成本之間的關(guān)系。

1.3.1 質(zhì)量、生產(chǎn)率和成本之間的關(guān)系

質(zhì)量無疑是客戶最關(guān)心的問題??蛻艏词共粓D物美價廉,也要求貨真價實。軟件開發(fā)商必須滿足客戶對質(zhì)量的要求(不論是寫在合同上的還是約定俗成的),否則做不成買賣?,F(xiàn)在就連做盜版光盤生意的人也講究質(zhì)量,如果盤片不好,是可以退貨的。高質(zhì)量既是軟件開發(fā)人員的技術(shù)追求,又是職業(yè)道德的要求。

在關(guān)注質(zhì)量的同時,軟件開發(fā)商又期望生產(chǎn)率能高些,并且成本能低些。老板和員工們誰不想用更少的時間賺更多的錢!

質(zhì)量與生產(chǎn)率之間存在相輔相成的關(guān)系。高生產(chǎn)率必須以質(zhì)量合格為前提。如果質(zhì)量不合格,軟件產(chǎn)品要么賣不出去,要么賣出去了再賠償客戶的損失。這種情況下“高生產(chǎn)率”變得毫無意義。別看開發(fā)商和客戶雙方的代表能在餐桌上談笑風(fēng)生,一旦出了質(zhì)量問題,那就不會很親熱了。從短期效益看,追求高質(zhì)量可能會延長軟件開發(fā)時間,一定程度上降低了生產(chǎn)率。從長期效益看,追求高質(zhì)量將使軟件開發(fā)過程更加成熟和規(guī)范化。日積月累,當(dāng)開發(fā)過程成熟到一定程度后,必將大大降低軟件的測試和改錯的代價,縮短產(chǎn)品的開發(fā)周期,實質(zhì)上是提高了生產(chǎn)率,同時又獲得了很好的信譽(yù)。所以質(zhì)量與生產(chǎn)率之間不存在根本的對立。

提高質(zhì)量與生產(chǎn)率需要一個過程,企業(yè)不可操之過急。一般地,軟件過程能力比較低的企業(yè)(如低于CMM 2級),應(yīng)該將質(zhì)量放在第一位,生產(chǎn)率放在第二位,只有這樣才可能持久地提高質(zhì)量和生產(chǎn)率(“能力成熟度模型CMM”將在1.3.2節(jié)介紹)。

如果一個企業(yè)的軟件過程能力低于CMM 2級,表明其開發(fā)能力與管理能力還很薄弱。就其目前的實力而言,無論下多大的決心去做,都不可能一開始就把質(zhì)量與生產(chǎn)率改善得一樣好。并不是我們刻意貶低生產(chǎn)率的“地位”,是公司的現(xiàn)實情況要求在質(zhì)量與生產(chǎn)率之間分個“輕重緩急”。由于人們天生就有“急功近利”的傾向,如果公司領(lǐng)導(dǎo)人認(rèn)可“生產(chǎn)率第一、質(zhì)量第二”,那么員工們做著做著必定會回到混亂的局面。這樣的教訓(xùn)實在是太多了!老話說得好:磨刀不誤砍柴工,用它類比上述理念最合適不過了。

俗話說“一分錢一分貨”,人們買東西的時候大多認(rèn)可“質(zhì)量越好價格就越高”。除了壟斷性的產(chǎn)品外,一般來說成本是影響價格的主要因素。

對于軟件開發(fā)而言,質(zhì)量與成本之間有什么關(guān)系?高質(zhì)量必然會導(dǎo)致高成本嗎?

經(jīng)驗表明,如果軟件的“高質(zhì)量”是“修補(bǔ)”出來的,毫無疑問會導(dǎo)致低生產(chǎn)率和高成本。如果能研制出某些好方法,將高質(zhì)量與高生產(chǎn)率內(nèi)建于開發(fā)過程之中,那么就能自然地降低開發(fā)成本,這是軟件過程改進(jìn)的目標(biāo)。

要提醒大家的是,大公司與小公司對成本的關(guān)注程度是不盡相同的。

首先談一下“市場價”(Marketing Price)與“成本價”(Cost Price)的概念。在某個領(lǐng)域,當(dāng)市場上只出現(xiàn)尚未形成競爭格局的一個或幾個產(chǎn)品時,產(chǎn)品價格基本上是由廠商自己制定的,這里稱其為“市場價”。由于缺乏競爭,無論成本多高,產(chǎn)品總能獲得高額利潤。電影《大腕》里那個搞房地產(chǎn)的精神病人說“不求最好,但求最貴”,真是實話實說。

當(dāng)產(chǎn)品之間形成競爭時,就會出現(xiàn)“殺價”現(xiàn)象。由于各家產(chǎn)品的功能、質(zhì)量旗鼓相當(dāng),競爭實質(zhì)上是在拼成本。誰的成本低,誰就有利可圖。這時的產(chǎn)品價格稱為“成本價”。

中國的彩電業(yè)是一個活生生的例子。若干年前彩電價格極高,彩電遠(yuǎn)離尋常百姓,一部分人即使買得起也買不到。如今連超市里都充斥著各種品牌的彩電,價格戰(zhàn)打得激烈,把廠商逼到“微利”的地步。然而商場里TOTO品牌的馬桶價格卻在2000~3000元,比同體積的國產(chǎn)純平彩電還貴,并且利潤高得多。唉,我們坐在這樣的馬桶上真的要為民族工業(yè)憂心忡忡??!

由于“市場價”與“成本價”的差價懸殊,IT行業(yè)的大公司都想吃“市場價”這塊肥肉。大公司的資金雄厚,銷售力量強(qiáng),只要能搶先推出產(chǎn)品,就不愁賣不出去。怎樣才能達(dá)到目的呢?通常有兩種方式。

一種方式是從別處購買快要成型的產(chǎn)品,改頭換面,貼上大公司的標(biāo)簽就可以上市銷售。所以IT行業(yè)的“公司收購”特別盛行。如果Cisco公司的網(wǎng)絡(luò)產(chǎn)品全部讓原班人馬來開發(fā),它很難那么快就發(fā)展成為網(wǎng)絡(luò)業(yè)的霸主!

另一種方式是自行開發(fā)新產(chǎn)品,讓公司的研發(fā)隊伍加班加點地干活。這么辛苦是值得的,產(chǎn)品成功會讓員工們有很大的成就感。

無論通過哪種方式搶先推出產(chǎn)品,前提條件都要求產(chǎn)品的質(zhì)量合格。如果產(chǎn)品因質(zhì)量不合格而被市場拒絕,那么損失的不僅僅是成本,更慘重的是失去機(jī)會和信譽(yù)。像Intel這樣了不起的公司也會吃敗仗。每當(dāng)Intel公司的CPU芯片出現(xiàn)缺陷時,就會罵聲一片。Intel公司不得不大量回收芯片并向用戶道歉,此時競爭對手(如AMD公司)就會乘虛而入,搶走像IBM、Compaq這些大客戶的部分訂單。

在信息高度發(fā)達(dá)的社會里,你能想得到的產(chǎn)品別人也能想得到。只有少數(shù)大公司能夠享受到“市場價”的利益,但是好景不會太長。大多數(shù)公司在大部分時間里開發(fā)的是“成本價”的產(chǎn)品。所以樹立“降低開發(fā)成本”的理念仍然十分重要。

1.3.2 軟件過程改進(jìn)的基本概念

在20世紀(jì)70~80年代,軟件工程的研究重點是需求分析、系統(tǒng)設(shè)計、編程、測試、維護(hù)等領(lǐng)域的方法、技術(shù)和工具,我們稱為經(jīng)典軟件工程。

現(xiàn)代的軟件技術(shù)、軟件開發(fā)工具比幾十年前不知好多少倍,而且?guī)缀跛械拈_發(fā)人員都學(xué)習(xí)過分析、設(shè)計、編程、測試等技能,可是如今絕大多數(shù)軟件項目依然面臨著質(zhì)量低下、進(jìn)度延誤、費用超支這些老問題。

人們逐漸意識到,由于機(jī)構(gòu)管理軟件過程的能力比較弱,常常導(dǎo)致項目處于混亂狀態(tài),過程的混亂使得新技術(shù)、新工具的優(yōu)勢難以體現(xiàn)。經(jīng)典的軟件工程不是不好,而是不夠用。自20世紀(jì)90年代至今,軟件過程改進(jìn)成為軟件工程學(xué)科的一個主流研究方向,其中CMM和CMMI是該領(lǐng)域舉世矚目的重大成果。

首先解釋什么是過程。過程就是人們使用相應(yīng)的方法、規(guī)程、技術(shù)、工具等將原始材料(輸入)轉(zhuǎn)化成用戶需要的產(chǎn)品(輸出)。過程的3個基本要素是:人、方法與規(guī)程、技術(shù)與工具,如圖1-1所示。可以把過程比喻為3條腿的桌子,要使桌子平穩(wěn),這3條腿必須協(xié)調(diào)好。

圖1-1 過程的要素

從圖1-1可知,過程與產(chǎn)品存在因果關(guān)系,即好的過程才能得到好的產(chǎn)品,而差的過程只會得到差的產(chǎn)品。這個道理很樸實,但是很多人并未理解或者理解了卻不執(zhí)行。畢竟我們銷售的是產(chǎn)品,而非過程。人們常常只把眼光盯在產(chǎn)品上,而忘了過程的重要性。例如,領(lǐng)導(dǎo)對員工們下達(dá)命令時總強(qiáng)調(diào):“我不管你們?nèi)绾巫?,反正時間一到,你們就得交付產(chǎn)品。”其實這是一句因果關(guān)系顛倒了的話,卻在業(yè)界普遍存在。

在過程混亂的企業(yè)里,一批人累死累活地做完產(chǎn)品后,馬上又因質(zhì)量問題被折騰得焦頭爛額。這種現(xiàn)象反反復(fù)復(fù)地發(fā)生,讓人疲憊不堪。怎么辦?長痛不如短痛,應(yīng)該下決心,舍得花精力與金錢去改進(jìn)軟件過程能力。

CMM(Capability Maturity Model)是用于衡量軟件過程能力的事實上的標(biāo)準(zhǔn),同時也是目前軟件過程改進(jìn)最好的參考標(biāo)準(zhǔn)。CMM是由美國卡內(nèi)基—梅隆大學(xué)(Carnegie-Mellon)軟件工程研究所(Software Engineering Institute, SEI)研制的,其發(fā)展簡史如下:

? CMM 1.0于1991年制定。

? CMM 1.1于1993年發(fā)布,該版本應(yīng)用最廣泛。

? CMM 2.0草案于1997年制定(未廣泛應(yīng)用)。

? 到2000年,CMM演化成為CMMI(Capability Maturity Model Integration),CMM 2.0成為CMMI 1.0的主要組成部分。

? CMMI-SE/SW 1.1(CMMI for System Engineering and Software Engineering)于2002年1月正式推出。

CMM將軟件過程能力分為5個級別,最低為1級,最高為5級。目前國內(nèi)只有幾家IT企業(yè)達(dá)到了CMM 2級或CMM 3級。鑒于CMM已經(jīng)被美國、印度軟件業(yè)廣為采納,并且取得了卓著成效,近兩年來國內(nèi)興起了CMM熱潮。CMM受歡迎的程度遠(yuǎn)遠(yuǎn)超過了ISO同類標(biāo)準(zhǔn)。

國內(nèi)IT企業(yè)采用CMM的目的大體有兩種:

(1)主要想提高企業(yè)的軟件過程能力,但并不關(guān)心CMM評估。

(2)既要提高企業(yè)的軟件過程能力,又想通過CMM評估來提升企業(yè)的威望與知名度。

出于第一種考慮的企業(yè)占絕大多數(shù),它們主要是一些中小型IT企業(yè)。出于第二種考慮的一般是實力雄厚的大型IT企業(yè)。無論是哪類IT企業(yè),它們在實施CMM時遇到的共性問題是“費用高、難度大、見效慢”。

企業(yè)做一次比較完整的CMM 2~3級咨詢和評估大約要花費60萬元~100萬元。然而CMM咨詢師只能起到“參謀”的作用,解決實際問題還得靠自己。企業(yè)要組建軟件工程過程小組(Software Engineering Process Group, SEPG)專門從事CMM研究與推廣工作,SEPG的成本并不比咨詢費低。如果企業(yè)再購買一些昂貴的軟件工程工具(如Rational的產(chǎn)品),那么總成本會更高。

即使企業(yè)舍得花錢,也不意味著就能夠輕易地提高軟件過程能力。目前國內(nèi)通過CMM 2-3級評估的企業(yè)屈指可數(shù),而這些企業(yè)的實際能力也沒有宣傳的那么好。因為參加CMM評估的項目都是精心準(zhǔn)備的,個別項目或者事業(yè)部通過了CMM評估并不意味著整個企業(yè)達(dá)到了那個水平,這里面的水分相當(dāng)大。

曾經(jīng)有一段時間,IT人士經(jīng)常爭論“CMM好不好”、“值不值得推廣CMM”等話題。現(xiàn)在業(yè)界關(guān)注的焦點則是“企業(yè)如何以比較低的代價有效地提高軟件過程能力”,攻克這個難題必將產(chǎn)生巨大的經(jīng)濟(jì)效益和社會效益。

一般地,為了真正提高軟件過程能力,企業(yè)至少要做3件最重要的事情:

(1)制定適合于本企業(yè)的軟件過程規(guī)范。

(2)對員工們進(jìn)行培訓(xùn),指導(dǎo)他們依據(jù)規(guī)范來開發(fā)產(chǎn)品。

(3)購買或者開發(fā)一些軟件工程和項目管理工具,提高員工們的工作效率。

本書作者和合作者根據(jù)上述需求,研制了一套“軟件過程改進(jìn)解決方案”(Software Process Improvement Solution, SPIS)。SPIS的主要組成部分如下:

? 基于CMMI 3級的軟件過程改進(jìn)方法與規(guī)范,命名為“精簡并行過程”(SPP)。

? 一系列培訓(xùn)教材,包括軟件工程、項目管理、高質(zhì)量C++/Java編程等,本書即為其中之一。

? 基于Web的集成化項目管理工具,包括項目規(guī)劃、項目監(jiān)控、質(zhì)量管理、配置管理、需求管理等功能,命名為Future。

主站蜘蛛池模板: 阿拉善盟| 南昌市| 酒泉市| 普安县| 涿鹿县| 印江| 林西县| 绩溪县| 山东省| 芦溪县| 陈巴尔虎旗| 三明市| 潮安县| 拉萨市| 青川县| 石柱| 湾仔区| 定陶县| 镶黄旗| 曲靖市| 常山县| 丰原市| 金门县| 周至县| 林甸县| 潍坊市| 勐海县| 出国| 芜湖县| 广丰县| 方山县| 东乌珠穆沁旗| 环江| 双城市| 大石桥市| 蕉岭县| 德钦县| 弥渡县| 永善县| 盐源县| 通城县|