在基於
cmmi
實施軟體過程改善時,有些根本的思想認識問題解決不了,往往會使實施的週期比較長,效果不好,甚至導致過程改善的失敗或中止。軟體企業的高層領導、企業的過程改進主管、專案經理及一般的開發人員都需要對這些問題統一認識,在此基礎上才能消除各方面的阻力,把握好過程改善的方向,控制好過程改善的進度。
cmmi
不是萬能的,只有
cmmi
是不行的,還要技術
(開發方法、工具
)、人員二個要素一起改善。
在軟體工程發展的歷史程序中,人們為了解決軟體危機,嘗試了採用諸如形式化描述語言、結構化開發方法、
case
工具、構件化開發方法等等各種解決方案,但是效果並不那麼顯著,
sei提出了軟體過程能力成熟度模型整合(
cmmi
)基於過程的角度來解決軟體
/系統危機。那麼是否實施了cmmi,軟體企業的開發能力就一定能提高,一定能帶來經濟效益呢?答案是否定的。如果企業裡要帶來經濟效益必須要結合軟體過程、工具、開發方法、人員等多種因素一起提高,才能保證帶來經濟效益,因為人員、技術和過程是支撐軟體開發平台的三條腿,少了那一條都不行。大家也都知道木桶原理,乙個木桶可儲存水的最大容量是由最短的那根木頭決定的。在企業的開發能力中過程、技術
(含工具、方法
)、人員都是主要的因子,都需要全面提高,只關注乙個方面,而忽略了其他方面,都是有害的。
在開始實施
cmmi
時,最容易犯的乙個錯誤就是
"唯管理論
"或孤立地只抓過程改善,忽略了開發技術與人員的提高,過分強調管理的作用,實施了半年或一年後,發現企業的生產能力並沒有得到明顯的改善,這時反對的聲音就會成為主流,過程改善就難以繼續進行了。有的企業採用物件導向的開發方法進行軟體開發,但是企業內並沒有對物件導向技術真正了解的專家,雖然也採用
rup過程、也採用
rose
等開發工具,但是僅僅是形似,沒有做到真正的
oo方法,沒有得到
oo方法的精髓,這種問題僅僅依靠過程改善是無法解決的。還有的企業開發人員的積極性很差,工作熱情很低,企業的激勵機制沒有起到很好的作用,這種問題也是依靠
cmmi
無法解決的。
1.
管理就是預防,管理的作用是隱性的,不都是立竿見影的,大家要有耐心。
在實施cmmi
時,企業的管理層在開始時往往會對過程改善期望值太高,希望短時間內效果顯著,正如上面所述,效果顯著與否不是由乙個方面的要素決定的,需要多個因素共同改善。而管理的最大作用是預防,防患於未然。
任何的管理的改善都是符合
j曲線的,即在改善的初期企業的執行效率可能會下降,甚至可能會出現一些混亂的局面,不過渡過了這段時間就會看到效果。所以在改善的初期大家要有這個思想準備,要有耐心。
2.
堅持活學活用,以我為主
機械照搬
cmmi
的條文是在實施
cmmi
時常犯的錯誤。在國內的軟體企業中,都是從作坊式的軟體組織逐步發展過來的,也沒有經過系統工程化階段,甚至也沒有什麼標準、規範。真正超過
10年軟體
/系統工程經驗的人員更是比較少的,加上大家不願從事管理,因而有的企業所組建
epg的人員中可能在工程經驗方面是有欠缺的,又沒有真正的有實踐經驗的專家進行指導,所以對
cmmi
的理解就不可能一下就很深刻,不敢裁剪
cmmi
,容易機械照搬
cmmi
條文,其實這恰恰違背了
cmmi
的精神,
cmmi
是系統工程經驗的集大成,是從實踐中總結出來,用以指導實踐的,
cmmi
本身也在更新版本,不斷完善。每個企業都有自己的特點,就象微軟的
msf,那是微軟自己內部的管理過程標準,是微軟的產品開發經驗總結,有些內容是
cmmi
中沒有的,完全可以借鑑過來使用,所以只要可以提高企業自己的軟體管理水平,就應該大膽地來嘗試。
在推行cmmi
時,所以遇到的阻力,很大程度上是由於照搬
cmmi
的條文,不切合專案組的實際,沒有具體情況具體分析。實際上,一線的管理人員、開發人員最了解實際。誰了解實際,誰有發言權。所以在制定
cmmi
規程標準時,尤其是在制定大家要執行的操作規程、模板和記錄模版時,一定要得到執行者的認同,否則就容易造成執行和溝通的障礙,你硬要推,表面上看來似乎大夥也照規程做了,其實是表面文章,對改善沒有實際幫助,以導致
spi工作受阻。
3.
要改良式不要革命式
以革命的方式來實施
cmmi
,期望通過一場運動來解決過程能力的問題,一種可能是不懂
cmmi
,不曉得管理的改進是循序漸進的,一種可能是明知故犯,期望在短期內通過
cmmi
評估,單純追求市場上的轟動效應。有的企業在短時間內雖通過了
cmmi
幾級評估,我想恐怕由於沒有實效而得不到大家的認同而難以將這種"水平
"持續下去。乙個企業引入
cmmi
之後會從本質上影響企業的文化,改變大家的思想與做事方法。有人曾形象得將過程改進比喻為**,你是可以依靠**藥在短時間內減輕體重,但如果不從根本上改善飲食、生活、運動的習慣,那麼體重將會在短時間內恢復到原來,我認為這個比喻是十分形象的。
4.
cmmi與企業的創新文化是不矛盾的
軟體企業的有些管理人員,也包括一些開發人員往往抱怨或認為嚴格的管理會束縛他們的創新,他們認為在
cmmi
中提倡的一種按部就班,什麼活動都要做計畫、按規程標準來做,對企業的創新文化會起負面作用。在我遇到的開發人員中,越是技術鑽研越深的人持這種觀點的越多。我想形成這種觀點主要有二個原因:一是企業在推行
cmmi
時,過分機械,沒有從實際出發,不能與實踐緊密結合,挫傷了開發人員的積極性。比如說在分析與設計階段,需要開發人員能夠發揮創意的成分更大一些,如果你要求他們一定就要按統一的文件標準來寫文件,甚至字型大小大小、縮排格式一點也不能差,這的確很難做到,可能你需要在專案組配備文件支援人員,有他們來做這些完善工作,降低分析與設計人員的這些工作量。二是這類人員缺少真正的軟體工程經驗,做的大專案太少,經歷的失敗太少。關於這一點是不要爭論的,
cmmi
是系統工程經驗與教訓的集大成,我們無需再去重複那些失敗。
軟體企業必須形成創新的文化,事實
cmmi
本身也一種系統工程管理的創新,而技術創新是必須進行管理才能使其有效地轉化為生產力,轉化為企業的實際效益,達到效益最大化,這是最根本的。
5.
要勇於實踐,也要允許犯錯誤
cmmi
就是系統工程經驗與教訓的總結。在實施
cmmi
的過程中,肯定會走些彎路,甚至於要犯錯誤,由此許多人會議論紛紛,一直會反映到高層經理處,這時不要猶豫,要敢於嘗試,更不能因為有困難就打退堂鼓,現在大家都是
"摸著石頭過河
",不下水,是沒有辦法過河的,臨淵慕魚不如退而結網。要少說不,少說難,勇於實踐,有錯就改。對於軟體企業的領導尤其要注意這一點,不要因為在過程中的一些實踐失敗,就對專案經理、
sepg
等人員有偏見,要提倡這種文化。
6.
管理過程改進是組織內所有人的事情,而並非僅僅是sepg的事情
按照cmmi
專家的建議,在乙個組織內專職從事軟體過程改善的人數應為組織總人數的
2-3%
,根據這一建議,企業內一開始就配備專職的工程過程組(
epg),這些員工專職負責企業的軟體過程改善工作,另外我們根據需要組織一些技術任務組(
twg),他們會兼職的參與特定過程規程、標準的制定、試點和修改完善工作。在這種情況,可能會出現如下的問題:
sepg
成了最忙的人,
twg的任務往往會由於那些兼職的人員以工作忙為理由一拖再拖,最後還是由
sepg
的成員替代
twg做工作;
企業的非開發人員對管理過程改進的效果一下沒有明確地感受到,甚至看到由於加了些新的活動可能使專案拖期可能會更嚴重,於是他們可能就會將這些抱怨反饋到企業的高層經理,在推行過程中經常會聽到:我這個專案時間太緊,當前不適合使用
cmmi;
7.
高層經理迫於市場的壓力,甚至可能會提出不合實際的專案工期等等。
推行cmmi
不僅僅是管理人員的事情,每個人都要積極參與。要改變原來的一些做法:即
epg是在使勁的推進
cmmi
的工作,而不是大家自覺自願的來實施
cmmi
。從epg
的角度來看,要做好培訓的工作,首先要解決的大家的思想認識問題,這還是比較難的,有些人的思想還是比較頑固的。
管理首先要解決的是思想認識上的問題,不但在主觀上要解決,在客觀上也要有措施,光說不練是不行的,光練不說也是要否定的。曾經遇到過類似的問題,有的開發人員或者專案經理在口頭上是可以接受變革的,會配合工作的,但是在具體操作,很可能又會遇到事實上的否定,這時作為
cmmi
的推廣人員要盡快提出實施的具體措施,盡快落實。任何變革都要涉及到企業內的權利的再分配,不要忽視企業政治,這是客觀存在的,所以一定要預防那些光說不練者。
解決pip安裝時出現SSLError的問題
錯誤 可以發現 在windows下的路徑為 使用者資料夾 pip pip.ini 其他系統為 使用者資料夾 pip pip.conf 我是在windows系統下,依次進入 使用者 administrator 發現並沒有pip資料夾。沒關係我們可以自己新建乙個資料夾命名為pip 並在pip資料夾下建立...
memmove 解決記憶體拷貝時記憶體重疊的問題
記憶體重疊 拷貝的目的位址在源位址範圍內。所謂記憶體重疊就是拷貝的目的位址和源位址有重疊。在函式strcpy和函式memcpy都沒有對記憶體重疊做處理的,使用這兩個函式的時候只有程式設計師自己保證源位址和目標位址不重疊。使用memmove函式可解決記憶體重疊問題。memmove函式對記憶體重疊做了處...
解決PUBG啟動時報某個必須的檔案出現問題
大半夜的,正跟朋友開黑,結果遊戲突然崩了,進不去,寫篇筆記記錄下解決過程,以免下次再出現也好快速解決問題,分享出來,便於其它參考解決。關鍵字 某個必須的檔案出現問題 msvcp140.dll 看到log 現了vcruntime140,猜測可能就是visual c 出現問題了,而在報錯的對話方塊中,藍...