CMMI / TSP / PSP為相輔相成的機制
財團法人資訊工業策進會 林栩傑 整理
一、前言
CMMI是一個致力於組織流程改善的架構,由於CMMI並未提供有關實施CMMI各流程領域所需的知識和技能,因此美國Carnegie Mellon大學軟體工程研究所(CMU/SEI) 以W. S. Humphrey為首主持研究開發了個人軟體流程PSP(Personal software process)和團隊軟體流程TSP(Team Software Process),形成CMMI/PSP/TSP體系。根據近年來國際軟體流程理論與實踐的發展,目前著重在CMMI、PSP和TSP以及ISO軟體流程標準等方面的研究工作,根據專家學者建議,軟體流程的改善應該從三方面著手進行:
n 能力成熟度整合模式CMMI(Capability Maturity Model Integrated)
n 個人軟體流程PSP (Personal Software Process)
n 團隊軟體流程TSP(Team Software Process)
二、CMMI、PSP、TSP為相輔相成的機制
CMMI、PSP和TSP組成的軟體流程架構
n CMMI是流程改善的第一步,它可評鑑組織的能力、識別優先改善需求和追蹤改善進展的管理方式。企業只有開始CMMI改善後,才能接受需要規劃的事實,認識到品質的重要性,才能注重對員工經常進行培訓,合理分配專案人員,並且建立起有效的專案小組。然而,其實施的成功與否與組織內部有關人員的積極參與密不可分。
n PSP能夠指導程式設計師如何確保自己的工作品質,估計和規劃自己的工作,度量和追蹤個人的表現,管理自己的軟體流程和品質。經過PSP學習和實踐的正規訓練,程式設計師們能夠在他們參與的專案工作之中充分運用PSP,從而有助於CMMI目標的實現。
n TSP結合了CMMI的管理方法和PSP的工程技術,告訴程式設計師如何將個人流程結合進團隊軟體流程,並將後者與組織的整個管理系統相聯繫;告訴管理層如何支援和授權專案小組,堅持高品質的工作,並且依據資料進行建構管理,向組織展示如何應用CMMI的原則和PSP的技能去生產高品質的產品。
n CMMI/TSP/PSP代表了目前國際上軟體流程工程研究方面最先進的成果,它們對促進軟體產業的科學化管理,與提高軟體生產力意義重大。
n 要使一個軟體流程對軟體生產的改善真正有所幫助,其架構應是由CMMI、TSP和PSP組成的一個完整體系,即從組織、團隊和個人三個層次進行良好的軟體工程管理模式。換言之,單獨實施CMMI,無法真正做到能力成熟度的升級,只有將CMMI與PSP和TSP有效的結合,才能發揮最大的效力。
三、PSP概述
個人軟體流程(Personal Software Process ,PSP)是在1995年由美國Carnegie Mellon大學軟體工程研究所(CMU/SEI) Watts s. Humphrey領導開發;W. S. Humphrey同時也是SEI研發CMMI團隊的主持人。PSP是一種可用於控制、管理和改進個人工作方式的自我改善過程,是一個包括軟體發展表格、說明的結構化架構。 PSP為基於個人和小型團隊軟體流程的最佳化提供了具體有效的途徑,如制訂計畫、控制品質、其他人合作等等。在軟體設計階段, PSP的著眼點在於軟體缺失的預防,其具體辦法是強化設計的準則,而不是設計方法的選擇。根據對大陸參加PSP培訓的104位元軟體人員統計資料,在應用了PSP後軟體中總缺失減少了58.0%,在測試階段發現的缺失減少了71.0%,生產效率提高了20.0%。PSP的研究結果還發現,絕大多數軟體缺失是由於對問題的錯誤理解或簡單的錯誤所造成的,很少是因為技術問題而產生的。而且根據多年來的軟體工程統計資料發現,如果在設計階段埋下一個缺失,則這個缺失在程式設計階段引會發3到5個新的缺失,要修復這些缺失所花的費用要比修復這個設計缺失所花的費用增加了相當的成本。因此實施PSP為確保軟體品質的一個重要途徑,尤其是要提高軟體設計的品質。
3.1 PSP的現況
n 從1993年開始,美國、歐洲、澳洲等地已先後有20多所大學開設PSP課程。
n 在產業界,PSP也先後被Motorola、 HP、 AIS等公司採用,以Navy and Marine Corps為例,使用PSP進行以CMM為基礎的流程改善,從成熟度第一級到第四級只花30個月,而大部分的機構需要72個月的時間。SEI協助ABB導入PSP,在第一個應用PSP的專案中,交付時程提前6.9%,系統測試每千行只發現44個缺失,比原先系統減少10倍缺失。
n 中國大陸北航軟體工程研究所於1997年開始,在北航電腦科學與工程系率先開辦了PSP課程,並成立PSP的實驗應用。
3.2 PSP的內容
PSP與工程的技術(程式設計語言、工具或者設計方法等)沒有直接的關係,幾乎能應用到所有軟體工程的工作中。PSP能提供:
1. 個人軟體流程原則的說明
2. 程式設計師作出準確的計畫
3. 程式設計師在改善產品品質所需採取的步驟
4. 度量個人軟體流程改善的基準
5. 流程的改變對程式設計師能力的影響
3.3 PSP的效益
n 使用由下而上的方法來改進流程,讓每個程式設計師了解流程改進的原則,使其了解如何有效生產高品質的軟體
n 為個人和小型團隊軟體流程最佳化提供了具體有效的途徑。彌補在實施CMMI各流程領域所需知識與技能的空白。
n 幫助程式設計師在個人的基礎上運用流程的原則,借助PSP提供的度量和分析工具,瞭解自己的技能水準,控制和管理自己的工作方式,使自己日常工作的估計、規畫和預測更加準確更有效率,進而改進個人的工作表現,提高個人的工作品質和產量。
四、總結
CMMI如同軟體廠商的一面鏡子,用來衡量組織以反映出組織發展的水準及能力,改進軟體發展流程。建議組織在推動流程改善的同時,以CMMI為基礎架構,從PSP先做起,然後在此基礎上逐漸轉換到TSP,循序漸進以確保基礎的穩定,對於日後CMMI高成熟度的提升有正面的幫助。
沒有留言:
張貼留言