對CMMI3的學習和思考


??? 原文出處: http://tech.it168.com/m/2007-08-02/200708020957750.shtml
??? 本文請勿轉載。

??? 近來筆者所在公司正在為過CMMI3做各種準備,對公司的員工進行了一些相關的培訓,作為項目管理人員的我,在學習CMMI3的過程中,也有了自己的一點對于CMMI3的思考。

?? CMMI將軟件過程中的很多步驟都通過步驟規范起來,它并沒有告訴我們應該怎么去做,而只是告訴我們應該做些什么。因為軟件過程中的每一步都需要經過思考、決策、有依據才能得出過程的結果,所以減少了每一步發生錯誤的可能性。

一.CMMI概述

?? CMMI是Capacity Maturity Model Integrated的簡稱,即集成的軟件能力成熟度模型,CMM是CMMI的早期版本,它主要用于軟件工程,而CMMI是一種綜合性模型,它是工程實施和管理方法,它在軟件與系統集成以外的如科研、工程等領域都得到了廣泛的應用。

?? CMMI是一個由理論和經驗部分組成的模型。它有連續式和階段式兩種表述方式,其中連續式主要用于衡量一個企業的項目能力,而階段式主要用來衡量一個企業的成熟度。在連續式表述下,企業在接受評估時可以選擇自己希望評估的項目來進行評估,所以評估通過率相對比較大,但它反映的那個相對比較窄,因為它僅僅反映該企業的該項目或類似項目達到了對應的等級。而用階段式來進行評估時,需由評估師自己來挑選內部的任何項目或其中的某一部分來進行評估。

???? 階段式的CMMI有5個等級,如下:

???? 第一級(初始級):在該等級下,項目的目標雖然得以實現,但它的實現帶有很多的偶然性和風險性,該級對人員的依賴性比較大,性能依賴個人的能力,且隨個人固有的性能、知識和動機的不同而變化。

???? 第二級(受管理級):在該等級下,意味著組織要確保策劃、文檔化、執行、監督和控制項目級的過程,并且需要為過程建立明確的目標,并能實現成本、進度和質量目標等。在這種情況下,組織已經營造了一個穩定的、受控的開發環境,項目已經在受控制的狀態下運行。該級包括如下7個過程域:需求管理(RM)、項目策劃(PP)、項目監督與控制(PMC)、供方協定管理(SAM)、測量與分析(MA)、過程和產品質量保證(PPQA)和配置管理(CM)。

???? 第三級(已定義級):在等級三下,項目執行過程是通過裁剪組織的標準過程集合和組織過程財富產生的“已定義過程”,并具備與該過程相適應的運行環境。該級報刊如下11個過程域:需求開發(RD)、技術解決(TS)、產品集成(PI)、驗證(Ver)、確認(Val)、組織過程聚焦(OPF)、組織過程定義(OPD)、組織培訓(OT)、集成項目管理(IPM)、風險管理(RSKM)和決策分析和決定。

???? 第四級(定量管理級):在等級四下,組織建立了產品質量、服務質量以及過程性能的定量目標,運用統計技術和定量目標作為判斷過程管理成功的標準。在過程的生存周期里,對產品質量、服務質量和過程性能做到統計意義上的了解和管理。該級包括如下兩個過程域:組織過程性能和定量項目管理。

???? 第五級(持續優化級):該等級的突出特征是過程性能的持續改進。組織建立起整個組織的定量過程的定量過程改進目標,并且把它們作為過程改進的判斷標準;這些目標將適時修改,以反映不斷變化的本組織的業務目標。實際實施的過程和組織的標準過程集合都是改進活動的對象。該級包括如下兩個過程域:組織革新和部署和原因分析和決定。

二.CMMI給我們帶來了什么好處?

?? 概括來說,CMMI給我們帶來了如下好處:改進進度和預算的可預測性、改進開發周期、提高生產率、改進質量(質量缺陷)、增加客戶的滿意度、提高員工的士氣、增加投資回報和低質量成本。

??? 對于不同的人來說,CMMI給他們帶來的好處各有不同,例如,對于企業的老板來說,CMMI不僅提高了企業整體的管理水平,而且為企業引進了科學高效的管理觀念、創造了更好的利益。而對于項目經理來說,對CMMI技術的學習掌握能夠提高自身的項目管理能力,因此能夠更好的提高項目質量,低成本、按期限的完成既定的任務。等等。

??? CMMI的實施包括如下幾個步驟:差距分析、過程定義、過程部署和實施、預先評估和正式評估五步。它的實施能夠提高我國企業的管理水平,使我國的企業在管理上能夠盡快地引入國際上的先進技術。調整了我國企業的管理體制,使其從無序變成有序、主觀變成客觀、人治變為體制。CMMI應用將產生的直接效果是提高了工程項目的質量、降低了工程的成本,保證了工程的周期、提高我國企業的在國內與國際市場上的競爭能力。

??? 來越多的大型企業業開始要求其工程承包商具有一定的CMMI級別。級別高的企業在贏得項目的競標中具有一定的優勢。 因此,如果沒有CMMI的等級評估,企業就會失去很多商機。另一方面,企業通過CMMI評估也是為了提升企業內部的管理水平,降低企業的工程成本,得到更加豐厚的回報,對企業來說受益不少。

??? 就拿筆者所在公司來說,從CMMI實施中進行差距分析來說,測量與分析、風險管理、組織培訓等地方明顯做得不夠。因為沒有測量與分析的數據的采集,導致過程中的很多地方無法進行估量。因為對風險管理得不夠,使得風險散播到項目過程中的各個地方,無法從某處獲得對風險的集中管理。因為上級的組織培訓的不重視,導致很多技能不能被相關人員較快較好的掌握。除此以外,還存在很多的問題,CMMI的實施給公司項目管理者帶來了福音。

三.對CMMI的思考

?? 筆者在學習CMMI的過程中,也產生過一些疑問,進行過一些思考,具體如下:

1. 實施CMMI最好采用什么方式來驅動?

?? CMMI只是告訴我們需要做什么,但具體如何做,以及采用什么工具、方法和技術等去做,這些答案需要我們自己去找。

?? 實施CMMI最好采用什么方式來驅動呢?

??? 答案是以實際需求來驅動,真正遵循IDEAL(I-初始;D-診斷;E-建立;A-執行;L-學習)組織過程改進模型。

?? 我們不應該過分的追求采用什么方法或工具來做好某件事情,例如設計圖我們并不一定需要采用專門的Rose的工具來做;對需求等的跟蹤并不一定要采用專門的需求跟蹤工具來做,很多時候Excel就能夠達到很好的跟蹤效果。在以實際需求來驅動的過程中,可以靈活的采用適合的方法或工具,不應該太過拘泥。

2. CMMI與ISO9000存在哪些區別?

??? 取得ISO 9000認證不意味著完全滿足CMMI的某等級要求。取得CMMI第二級或第三級也不能籠統地認為可以滿足ISO 9000的要求。

3. CMMI過時了嗎?

??? 迭代開發技術、軟件產業最佳實踐、和經濟動機推動組織采用基于結果的方法:開發業務案例、構想和原型方案;細化后納入基線結構、可用發布,最后定為現場版本的發布。雖然CMMI保留了基于活動的方法,它的確集成了軟件產業內很多現代的最好的實踐,因此它很大程度上淡化了和瀑布思想的聯系。

??? 分析CMMI和迭代開發之間有什么聯系,方法之一就是看每個模型的KPA是否為這種開發方法激發了合理的軟件管理原理。CMMI和迭代思想聯系得很緊密,所以說CMMI并沒有過時。

4.CMMI與敏捷開發的關系?

??? 最近幾年來,CMMI已經成為一項主流開發技術。很多成功的企業都在使用這個技術。

??? 那么CMMI與敏捷之間存在怎么樣的關系呢?分析如下:

??? 使用敏捷式方法要求IT和業務方面的參與者緊密溝通,更快的交付業務需求從而更快的獲取效益。降低改變的成本、提高系統的靈活性,以及降低投資的風險。敏捷式開發能在質量上有很大的提高。大概在60年代的時候,軟件開發是沒有計劃性的,基本是寫出來,誰也不知道什么時候能交付,但也就是在那個時候,軟件工程學的概念在美國召開的一次會議上頭一次被提出來,傳統工程學通常是把項目分成三步或者四步,先把需求確立起來,進行設計構建。應用到軟件里是開始先由分析人員對需求進行分析,然后設計,架構師把整體的東西設計出來,再確定下來交給編程的團隊,編程的團隊按照需求規約,把東西給做出來,所有的這些東西都是由不同的人在不同的時間完成的。

??? 這種模式的優點是:開發計劃性非常強,因為你知道什么人在什么時候做什么事情。但也存在一些缺點,這些缺點主要由軟件開發和傳統的建筑工程學的不同引起。客戶需求的不斷變化,特別是商業 軟件,跟隨市場的變化,客戶需求也在不斷變化。客戶本身在腦子里并不是很清楚自身需要什么,在它看到了產品后,在使用的過程中,他對自己想要的東西才有了一些更加確定的想法,知道了怎樣的東西才是自己所需要的。但在這個階段的需求變化使得項目步履維艱、使得成本大幅度增加。所以工程學里一個核心的概念,變化是最可怕的一件事情,從設計角度也好、分析的角度也好,不管怎么,不要變化,這樣就使成本增加。

??? 敏捷式開發最核心的東西是它不排斥變化,對變化采取的是適應性的態度。敏捷式的開發針對一小部分進行設計測試,對每一個循環時間非常短,軟件從小到大,從很小的一點到不斷的增加擴大,而且增長的過程中是對軟件不斷修改的過程。

??? 敏捷開發還有一個很大的特點就是它是以人為本,而不是以方法為本的。我們的軟件開發是腦力勞動,而不是簡單的工作。如果你設計出一套方法來,不管什么方法,讓每個人去適應的方法,最后開發效應反而不如你組建一個具有進取心的團隊,這個團隊通常情況下是先選擇一種方法,細節也一樣,在開發過程中,不斷對方法反思,直到達到這個團隊的最高開發效應為止。

??? 如果說,要真正趕上最新一輪的創新浪潮有幾個重要的標志,一個是要趕上最新的CMMI的轉向敏捷開發,從體系架構角度講,除了一些先進的架構理念,還有一些架構模式等等,還有開源代碼的應用,不僅僅是操作系統,包括數據庫、應用服務器、各種開發工具等有很多的開源工具。

四.總結

??? 本文對CMMI進行了概述,并分析了實施CMMI給我們帶來的好處,以及筆者對CMMI的一些思考。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/254574.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254574.shtml
英文地址,請注明出處:http://en.pswp.cn/news/254574.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python3抓取糗百、不得姐

?點擊關注 異步圖書,置頂公眾號 每天與你分享 IT好書 技術干貨 職場知識 重要提示1:本文所列程序均基于Python3.6,低于Python3.6的Python版本可能無法運行.重要提示2:因所抓取的網站可能隨時更改展示內容,因此程序也需及時跟進.重要提示3:本程序僅供學習,不能拿去做…

halcon邊緣檢測的方法及各種方法的適用范圍

目錄一、邊緣提取二、BLOB分析檢測三、贓物檢測一、邊緣提取 1、設置ROI興趣區域 2、快速二值化,并連接相鄰區域。 這樣做的目的是進一步減少目標區域,通過二值化將目標區域大概輪廓提取出來 3、提取最接近目標區域的輪廓 常用函數有boundary&#xff0…

Oracle優化-表設計

前言  絕大多數的Oracle數據庫性能問題都是由于數據庫設計不合理造成的,只有少部分問題根植于Database Buffer、Share Pool、Redo Log Buffer等內存模塊配置不合理,I/O爭用,CPU爭用等DBA職責范圍上。所以除非是面對一個業已完成不可變更的系…

Win10遠程桌面 出現 身份驗證錯誤,要求的函數不受支持,這可能是由于CredSSP加密Oracle修正 解決方法...

升級至win10 最新版本10.0.17134,遠程桌面連接Window Server時報錯信息如下: 出現身份驗證錯誤,要求的函數不正確,這可能是由于CredSSP加密Oracle修正。 解決方法: 運行 gpedit.msc 本地組策略: 計算機配置…

CMM2

原文出處:http://hi.baidu.com/seaweaver/blog/item/e80e7af427f674d9f2d3854a.html CMM2的六個KPA 1、需求管理 (RM,Requirement Management) 2、軟件項目計劃 (SPP,Software Project Planning&#…

查看linux系統核數

查看linux系統核數: grep ^processor /proc/cpuinfo | wc -l轉載于:https://www.cnblogs.com/myyan/p/5822368.html

Rsyslog 日志相關內容

[rootserver vusers_home]# rpm -ql rsyslog|more ###.so結尾為模塊,模塊有分im為輸入模塊,om 為輸出模塊/etc/logrotate.d/syslog/etc/pki/rsyslog/etc/rc.d/init.d/rsyslog/etc/rsyslog.conf/etc/rsyslog.d/etc/sysconfig/rsyslog/lib64/rsyslog…

MFC導出對話框類DLL的實現

1.新建基于對話框的應用程序 2.新建MFC DLL工程 3.選擇MFC DLL 4.選擇擴展Dll選項(重要!!!) 5.為Dll工程添加一個MFC類,基類為CDialogEx 6.Dll新建的MFC 類中添加resource.h防止編譯出錯…

中國如何引進CMM評估,促進軟件產業發展

北京軟件行業協會 (本文轉載自軟件工程專家網www.21cmm.com) 一、CMM的含義及作用   CMM(軟件能力成熟度模型:Capability Maturity Model For Software)是由美國卡內基梅 隆大學的軟件工程研究所(SEI&a…

關于游戲平衡性——王者榮耀英雄傷害數值參考

收集王者榮耀各個英雄的裝備對技能增加的百分比,這樣的主要目的為保證游戲的平衡性。對于技能主要包括:血量、物理攻擊、法術攻擊、物理穿透、法術穿透、暴擊等。關于各個裝備,已經列成一張excel表格,在這里不再詳細描述表格。在這…

Swift-setValuesForKeysWithDictionary

重寫 setValuesForKeysWithDictionary 那么字典中可以有的字段在類中沒有對應屬性 class Person : NSObject {var age :Int 0 // 重寫 setValuesForKeysWithDictionary 那么字典中可以有的字段在類中沒有對應屬性override func setValuesForKeysWithDictionary(keyedValues…

hdu 1269 迷宮城堡(trajan判環)

題目鏈接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1269 題意&#xff1a;略 題解&#xff1a;trajan模版直接求強連通分量。 #include <iostream> #include <cstring> #include <cstdio> using namespace std; const int N 1e4 10; const i…

Arithmetic圖像處理halcon算子持續更新

目錄abs_diff_imageabs_imageacos_imageadd_imageasin_imageatan2_imageatan_imagecos_imagediv_imageexp_imagegamma_imageinvert_imagelog_imagemax_imagemin_imagemult_imagepow_imagescale_imagesin_imagesqrt_imagesub_imagetan_imageabs_diff_image 功能&#xff1a;計算…

身于“亂世”,我們程序員應該如何打算?

今天看了這篇文章&#xff0c; 發現自己也有點生處亂世&#xff0c;不平之感&#xff0c;但是文章的樸實卻讓我有了一個良好的反省&#xff0c;特此轉載 分類&#xff1a; 項目管理 2011-09-04 00:58 770人閱讀 評論(12) 收藏 舉報 不僅要低頭拉車&#xff0c;還要抬頭看路。…

Activity的啟動流程

Activity的啟動流程 努力工作 自己平時工作接觸的frameworks代碼比較多&#xff0c;但真正理解的很有限&#xff0c;一直在努力分析。。我主要還是用補丁的形式來看 core/java/android/app/Activity.java | 6 core/java/android/app/ActivityManagerNative.jav…

es6--箭頭函數

基本用法 ES6允許使用“箭頭”&#xff08;>&#xff09;定義函數。 var f v > v; 上面的箭頭函數等同于&#xff1a; var f function(v) {return v; }; 如果箭頭函數不需要參數或需要多個參數&#xff0c;就使用一個圓括號代表參數部分。 var f () > 5; // 等同于…

halcon Bit圖位像素處理算子,持續更新

目錄bit_andbit_lshiftbit_maskbit_notbit_orbit_rshiftbit_slicebit_xorbit_and 功能&#xff1a;輸入圖像的所有像素的逐位與。 bit_lshift 功能&#xff1a;圖像的所有像素的左移。 bit_mask 功能&#xff1a;使用位掩碼的每個像素的邏輯與。 bit_not 功能&#xff1…

NYOJ題目839合并

--------------------------- AC代碼&#xff1a; 1 import java.util.Scanner;2 3 public class Main {4 5 public static void main(String[] args) {6 7 8 Scanner scnew Scanner(System.in);9 10 int timessc.nextInt(); 11 …

指針的魅力

序 指針說&#xff1a;love me&#xff0c;love me&#xff01; 但是他對指針說&#xff1a;I hate u&#xff0c;I hate u&#xff01; …… 指針僅僅是作為指針&#xff0c;我們可以把它當做有用的工具&#xff0c;為我們提供便利與好處。說起工具不得不讓我想起一樣東西—…

python多進程

2019獨角獸企業重金招聘Python工程師標準>>> python多進程 進程簡介 進程是程序在計算機上的一次執行活動。當你運行一個程序&#xff0c;你就啟動了一個進程。顯然&#xff0c;程序是死的(靜態的)&#xff0c;進程是活的(動態的)。進程可以分為系統進程和用戶進程。…