1.1:什么是過程
過程的定義很多書上都給出了不同的答案?赡苁沁@些給出的定義所關注的方向不同,因此會忽視一些其他方面,造成很難給過程一個明確的定義。在這里引用一個比較全面的定義來闡述過程!斑^程事實上有三方面的特性:首先,過程應被定義,因此過程的第一個方面就是過程的定義,通常是將過程所包含的活動及程序文檔化;第二,應將關于過程的知識傳授給需要執行過程的每一個人,所以第二個方面就是過程的學習。也就是說應讓過程的知識深入到每個過程執行者的頭腦中去,并以此驅動他們的行為與活動;就像產品的形成是經過一系列的工序處理后的結果一樣,通過執行過程中的活動才能獲得最終的過程結果,這就是過程的第三方面!***[引用自《軟件過程改進 Sami Zahran著》第一章1.2.2]
其實簡單的理解,過程的定義可以描述為:什么人正在做什么事情,什么時候去完成這件事,并且如何去完成這件事的一個特定目標。
1.2:軟件過程
1.2.1:軟件過程定義
軟件過程廣義來將就是指:不僅僅包括軟件開發和管理的過程,并且還包括軟件合同的管理,軟件維護,軟件支持及整個軟件組織的管理等的全部活動。而狹義的軟件過程則指:軟件開發過程,包括軟件開發過程中的全部活動:需求分析,設計,編碼,測試。這些過程可以是增量的交替的開發,或者可以采用迭代的開發。
我們這里所要討論的軟件過程可以定義為:對軟件開發過程的管理,軟件生命周期的管理與工程化過程支持的規范說明。而此軟件過程的使用者為公司的軟件工程師和項目經理,最終的結果就是軟件程序,系統及文檔。
1.2.2:為何要使用高效的軟件過程
什么是高效的、好的軟件過程?要回答這個問題,我們就必須說一說低效的、差的軟件過程有些什么癥狀。
對于一些企業可能存在著如下的問題:
1. 軟件開發過程中執行的任務比較模糊。開發項目組中成員的職責說明不明確。文檔不完善,無指導意義。
2. 軟件開發過程的執行缺乏監控,無法保證與企業管理目標的一致。開發項目中的每個成員喜歡用自己的過程去完成開發,極大的削弱了團隊的能力。
3. 整個企業崇尚技術為主,認為只要技術高了就能提高開發效益。極大忽略了過程的管理。
4. 缺乏軟件開發過程的規范化文檔,進來的新人無法得到規范的指導和培訓。
5. 企業原本有自己的一套規范的軟件過程,但時間久了缺乏改進,也不花精力去研究新的過程,造成舊過程逐漸失效。同時這樣的過程也失去了對新技術和新趨勢的支持。
6. 上級領導只關心結果,不重視過程的使用和管理。整個企業的運作環境也無法支持過程的使用或改進,造成過程成為企業的負擔,無法和企業目標相一致。
以上這些問題都是低效的軟件過程的一些特征,低效的軟件過程可能拖慢企業的開發效率,同時也無法很好的支持企業的運作,無法給企業帶來更多的效益。
在理解了一些低效過程的特點后,就更加肯定了軟件企業必須有個高效的軟件過程支持才能為企業本身帶來更多的效益,也能更快的提高項目的開發效率,保證項目的質量。因為對于軟件開發項目來說,在整個開發生命周期中能保證有一個高效的過程機制去支持開發,那對于整個項目的管理是很重要的。高效的過程能夠讓企業的開發項目組的職責明確化,便于管理。過程目標與企業目標一致,這樣可以對項目成員實行激勵。高效的過程結果是規范的制度,規范的文檔。這些都可以很方便的運用到對新進員工的培訓中去,使新成員能更快的融入到項目組中,提高團隊合作能力。
1.3:小結
一個好的軟件過程只有被定義、培訓、遵守、職責明確、有足夠的支持去執行才能成為真正有效的過程。
軟件過程不僅僅是我們所看到的一堆文檔,這些文檔所包含的內容才是真正的過程產品。通過這些規范的文檔可以有效的,快速的指導整個軟件開發,給項目管理一個指導性的大綱。在有了正確的管理,高效的開發過程后才能為企業和組織帶來更多,更快的效益。
文章來源于領測軟件測試網 http://www.kjueaiud.com/