張宜軒
摘要:介紹PSP、TSP、CMM三者的含義,以及在實際項目組織管理、軟件開發過程中各自擔當的作用,并淺析如何將三者有機地結合起來,從而實現高效管理團隊、開發面向用戶的高質量產品的組織目標。
關鍵詞:個人軟件過程(PSP);團隊軟件過程(TSP);軟件能力成熟度模型(CMM);組織目標
一、組織目標完成過程的現狀以及存在的問題
近年來,國內已有多家企業通過并實施了軟件能力成熟度模型(CMM)、個人軟件過程(PSP)、團隊軟件過程(TSP)等各級認證,將它們成功地應用到軟件開發過程和組織管理過程中去。盡管如此,因此三者之間存在同一的協調與配合,導致一部分生產出的軟件產品在交付用戶過程或在后期維護過程中會出現各類問題或漏洞,因此我們只有三者兼顧,才能有效地改善過程,才能有效改善過程,最終在整體角度縮短完成時間、降低所需成本。
二、PSP/TSP/CMM簡介
(一)PSP(個人軟件過程)
PSP過程由一系列方法、表格、腳本等組成,用以指導軟件開發人員計劃、度量和管理,具體理解他們的工作。就是說PSP提供了一種模式幫助軟件開發人員從個人角度出發,收集時間、缺陷、工作量等數據,對比計劃內容與實際結果,從中總結和感知到作為軟件開發人員還有哪些缺陷和不足并針對自己的問題進行改進。PSP過程與具體的技術(設計語言、工具、算法思想等)相對獨立,在幫助軟件開發人員做出各個階段的計劃后軟件開發人員按照既定目標進入開發周期,不斷調整與計劃之間的差距,從而最大化地從個人角度提高軟件開發的實際效率。PSP過程是對軟件開發人員的持續改進過程,這種結構性框架雖然對于團隊軟件過程它使用的范圍小的多,但其中的管理思想、發揮作用等確實是舉足輕重的。
(二)TSP(團隊軟件過程)
TSP過程與PSP過程不同,它更加強調對群組軟件過程的定義、度量且提供了一種策略和方法,與PSP過程相較,它轄制的范圍要大得多、管理的事務也相對龐雜,作為管理者,一方面需要思考如何篩選合格的開發組工作人員,為每個人分配不同的角色,大致承擔什么職責:以10人團隊為例,作為管理人員需要充分調查誰的編程能力上乘、誰的測試能力強勁、誰的后期維護水平優秀等等。
“尺有所長,寸有所短”,TSP過程的任務分配不是簡單的排列座位,而更加注重各子過程的實際運行情況。如果角色稍有重復,勢必會造成時間的浪費;如果分配工作任務與實際能力水平不匹配,亦會造成工作流程協調、銜接的不順暢。更多地,TSP過程為管理者提供了一種模式用以管理整體團隊事務,將PSP過程中的個人技巧按一定策略進行安排,對群組管理提供強有力的支持和保障。
(三)CMM(軟件能力成熟度模型)
CMM是一種協助企業進行軟件質量與管理流程評估的標準,目的是克服軟件生產的危機。CMM的核心就是把軟件開發視為一個過程,并根據這一原則對軟件開發和維護進行過程監控研究,使更加科學化、標準化。CMM雖然是一個優秀的框架,但人員、技術、過程是支撐軟件開發平臺的三大要素,少了哪一個都不行:為了解決軟件危機,人們嘗試了形式化描述語言、結構化開發方法等工具,但這并不意味著實施CMM就一定帶來軟件企業開發能力的提高。
三、如何將三者有效結合服務于組織目標
介紹完上述三者的含義以及各自作用,我們更應該思考如何確定三者的關系以及如何服務組織目標。
根據前面的描述,我們知道:軟件的生產過程及其他許多子過程,軟件開發者以及用戶,系統使用過程都存在變化與波動。要使一個軟件過程對軟件生產的改善真正有所幫助,其框架應當是由CMM、TSP、PSP組成的一個完整體系,即組織、群組和個人三位一體,對軟件工程和管理實踐進行指導和支持。如果僅僅進行某項應用的單獨維護,所起到的作用自然是微乎甚微。
CMM改善是過程改善的第一步,提供了評價組織的能力、識別優先改善需求和追蹤改善進展的管理方式。對于企業自身來說,CMM改善不僅僅帶來的是優化,更大程度上帶來的是對企業軟件產品質量的不斷提升,CMM改善后才能讓整個企業、整個團隊自上而下地意識到質量的重要性,從而建立起有效地項目小組。但是從另一方面來說,CMM規范并不代表完全的生搬硬套,它實現的成功與否與組織內部成員的積極參與和靈活性、創造性頭腦思想密不可分。如果生搬硬套,反而失去了CMM規范的原始定義。
至于PSP(個人軟件過程)來說,是用來指導軟件開發個體保證自己的工作質量和規劃自身工作的;對于一個團隊來說,個人表現的好壞直接或間接影響了整個團隊的進度和軟件開發的質量,經過PSP學習和實踐過程,對軟件開發個體的應用算法能力可能沒有質的飛躍,但這樣一個科學的過程卻可以精準的提高工作效率,而且效率提升會在軟件開發周期的不斷推進中越來越多地顯示出來,而且PSP過程為管理人員在TSP過程階段提供了極為重要的參考。
TSP結合了CMM的管理方法和PSP的工作技能,通過層次傳遞將個人軟件過程的表現反映給管理人員和軟件工程師,讓管理人員等明確如何將個體過程融入小組軟件開發過程,繼而與整個管理系統融合,向組織展示如何應用CMM的原則和PSP技能去生產高質量的產品。
通過上文的分析我們可以發現:CMM/TSP/PSP三者互為表里,互相依賴,它們對促進軟件生產的科學化、管理話,提升軟件過程的生產能力意義重大,一款軟件字開發成型伊始,定然要接收用戶的檢驗和考量,還要考慮被技術進步潮流淘汰的風險,后期巨大的維護成本等問題,CMM/TSP/PSP代表了目前國際上軟件過程管理研究方面最新的成果。試想我們不參照這樣一個標準或不遵循此類模式進行開發和管理,我們如何節約各方面的成本,有效應對軟件危機?只有采用CMM/TSP/PSP三者結合的模式,才能促進軟件生產的科學化管理,為軟件的工業化奠定基礎,當然此模式也沒有完全解決上述的各類問題,具體的使用效果還依賴于管理者的管理水平。
四.總結
因為軟件過程改進是一個循序漸進的過程,在使用CMM/TSP/PSP過程中,我們不能盲目應用,我們必須在套用之前深入研究并理解其中的理論,然后根據自身開發的實際情況和實踐經驗制定可行方案,不斷總結經驗以期實現更高質量的產品。
參考文獻:
[1]何新貴等 《軟件能力成熟度模型》[M] 北京:清華大學出版社,2000
[2]韓丹、袁昱譯 《小組軟件開發過程》[M] 北京:人民郵電出版社,2000