摘要
管理仍然是開發(fā)軟件項目成敗的關(guān)鍵。我國的軟件產(chǎn)業(yè)需要迅速轉(zhuǎn)入以過程為中心,走工業(yè)化生產(chǎn)的道路。但單純依靠能力成熟度模型CMM,永遠不能真正做到過程管理的改善, 只有與PSP和TSP有機地結(jié)合起來,才能達到軟件過程持續(xù)改善的效果。
前言
本文將圍繞過程管理的各個環(huán)節(jié),以循序漸進的方式,更具體更深入地講述和分析軟件開發(fā)的過程改進問題。它將從如何控制、管理和改進個人工作方式的問題開始,到如何創(chuàng)建高效且具有自我管理能力的工程小組,工程人員如何才能成為合格的項目組成員,以及管理人員如何對群組提供指導和支持,一直講到如何在全公司范圍內(nèi)定義和推行合適的符合CMM標準的過程規(guī)范,并達到不斷改進的良性循環(huán)狀態(tài),等等。
如果按照本文所提到的這種思路和體系進行過程改進的話,那么公司的過程工作將是踏實而有效的。并且于個人,于公司都將受益非淺:
1、 提升個人的能力。PSP向你展示如何制訂計劃并跟蹤你的工作,提供工作有效性的數(shù)據(jù)并識別出自己的優(yōu)勢和劣勢,從而使你能夠不斷了解和改善自己的技能和才智,并在工作中充分利用自己獨特的才能。而TSP向你展示如何成為合格的項目組成員,如何創(chuàng)建高效且具有自我管理能力的工程小組,從而達到高效的協(xié)同開發(fā)。
2、 完善公司的過程。結(jié)合TSP和PSP,在全公司范圍內(nèi)建立規(guī)范的開發(fā)過程就輕而易舉。再加上本文提供的具體實踐和有效思路,能夠很好地幫助企業(yè)提升管理能力,包括軟件過程管理、項目管理和持續(xù)改進過程。
個人開發(fā)能力
PSP (Personal Software Process) 是一種可用于控制、管理和改進個人工作方式的自我持續(xù)改進過程,是一個包括軟件開發(fā)表格、指南和規(guī)程的結(jié)構(gòu)化框架。PSP與具體的技術(shù)(程序設計語言、工具或者設計方法)相對獨立,其原則能夠應用到幾乎任何的軟件工程任務之中。PSP能夠說明個體軟件過程的原則; 幫助軟件工程師作出準確的計劃;確定軟件工程師為改善產(chǎn)品質(zhì)量要采取的步驟;建立度量個體軟件過程改善的基準;確定過程的改變對軟件工程師能力的影響。
團隊開發(fā)能力
TSP(Personal Software Process)對群組軟件過程的定義、度量和改革提出了一整套原則、策略和方法,把CMM要求實施的管理與PSP要求開發(fā)人員具有的技巧結(jié)合起來,以按時交付高質(zhì)量的軟件,并把成本控制在預算的范圍之內(nèi)。在TSP中,講述了如何創(chuàng)建高效且具有自我管理能力的工程小組,工程人員如何才能成為合格的項目組成員,管理人員如何對群組提供指導和支持,如何保持良好的工程環(huán)境使項目組能充分發(fā)揮自己的水平等軟件工程管理問題。
軟件開發(fā)過程
軟件開發(fā)過程(Software Development Process,SDP)是組織級在全公司范圍內(nèi)進行的過程定義、度量和改進,包括三部分:開發(fā)生命周期、項目管理實踐和軟件工程過程。它是在CMM的基礎上建立起來的,綜合在實踐中行之有效的具體方法,注重實用性和效果,以實現(xiàn)項目交付的可預期性和質(zhì)量保證為最終目標。
開發(fā)生命周期。一個專業(yè)的軟件開發(fā)公司應該有根據(jù)自己的開發(fā)模式建立一個非常詳細的軟件開發(fā)周期模型,包括開發(fā)階段,每階段內(nèi)的任務,任務的具體工作和交付物,使用的開發(fā)工具和技術(shù),以及人員的分工,甚至可以細到通用的審核會議。將開發(fā)中所有的內(nèi)容用網(wǎng)絡圖或流程圖的形式明確地規(guī)范下來,使得高層能夠?qū)椖康恼w過程一目了然,使得項目的管理者很容易地跟蹤任務的情況,使得每位開發(fā)人員都非常明確自己的任務和在整體開發(fā)中的作用。只有這樣的生命周期模型對具體的開發(fā)才有意義,它是公司所有開發(fā)的“圣經(jīng)”,所有的技術(shù)開發(fā)和過程開發(fā)均需在此基礎上進行開展,并以此為依據(jù)。
項目管理實踐。以公司的軟件生命周期為基礎,依據(jù)CMM標準,為公司建立一系列合適的過程實踐。幾個關(guān)鍵的過程實踐包括:質(zhì)量保證,需求管理,配置管理,計劃和跟蹤,風險控制。然后再建立一套項目度量工具來更加精確地管理項目。如果你們企業(yè)不做CMM認證的話,我認為其他的實踐可以先不做。將這些基本的工作做到位,然后再參考三級四級五級的實踐來改進和補充這些實踐,也完全可以很好地控制開發(fā)的軟件過程。即所謂:學習CMM是吸收其精華和精神。
持續(xù)改進過程。有了規(guī)范的開發(fā)生命周期模型和項目管理實踐,可以想辦法為企業(yè)設計一個建立在數(shù)據(jù)基礎之上、不斷度量和改進、不斷提高企業(yè)開發(fā)能力的一個良性循環(huán)的機制。模型圖如下:
三者的有機結(jié)合
PSP、 TSP 和CMM為軟件產(chǎn)業(yè)提供了一個集成化的、三維的軟件過程改革框架。三者互相配合,各有側(cè)重,形成了不可分割的整體,猶如一張具有三條腿的凳子,缺一不可。在軟件能力成熟度模型CMM的18個關(guān)鍵過程域中,有12個與個體軟件過程PSP緊密相關(guān),有16個與群組軟件過程TSP緊密相關(guān)。因此,如果能夠熟悉個體軟件過程和群組軟件過程,不僅有助于工程師改善工作效率,而且也非常有利于組織的過程改善。
為了更有效地改進公司的過程,在這里我建議一種循序漸進的方法。如下圖所示:
PSP注重于個人的技能,能夠指導軟件工程師如何保證自己的工作質(zhì)量,估計和規(guī)劃自身的工作,度量和追蹤個人的表現(xiàn),管理自身的軟件過程和產(chǎn)品質(zhì)量。經(jīng)過PSP學習和實踐的正規(guī)訓練,軟件工程師們能夠在他們參與的項目工作之中充分利用PSP,從而保證了項目整體的進度和質(zhì)量。
TSP注重團隊的高效工作和產(chǎn)品交付能力,結(jié)合PSP的工程技能,通過告訴軟件工程師如何將個體過程結(jié)合進小組軟件過程,通過告訴管理層如何支持和授權(quán)項目小組,堅持高質(zhì)量的工作,并且依據(jù)數(shù)據(jù)進行項目的管理,展示了如何去生產(chǎn)高質(zhì)量的產(chǎn)品。
CMM注重于組織能力和高質(zhì)量的產(chǎn)品,它提供了評價組織的能力、識別優(yōu)先改善需求和追蹤改善進展的管理方式。再拓展到本文提到的軟件開發(fā)過程SDP的話,那就是具有更高層次更高組織性的意義。
總結(jié)
如果一個組織正在按照CMM改進過程,則PSP和TSP是和CMM完全相容的。如果一個組織還沒有按照CMM改進過程,則有關(guān)PSP和TSP的訓練,可以為未來的CMM實踐奠定堅實的基礎。總之,單純實施CMM并不能完全做到能力成熟度的升級,我國企業(yè)還應當將實施CMM與實施PSP和TSP有機地結(jié)合起來,才能將CMM發(fā)揮最大的效力。
posted on 2007-01-05 15:45
周銳 閱讀(202)
評論(0) 編輯 收藏 所屬分類:
Other