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