軟件開發(fā)過程中的常見問題及對(duì)策

字號(hào):

正確的理解和管理需求及其變更
     問題1: 從項(xiàng)目的需求搜集開始,業(yè)務(wù)專家搜集和提出基于整個(gè)業(yè)務(wù)的需求體系,但是在從初始的需求轉(zhuǎn)化為軟件特性和功能的過程中,由于業(yè)務(wù)專家和技術(shù)人員的溝通不充分或者需求描述不完善,導(dǎo)致技術(shù)人員對(duì)需求的理解產(chǎn)生曲解,從而影響該軟件完成后不符合用戶提出的真實(shí)需求。
     問題2: 從初始的業(yè)務(wù)需求轉(zhuǎn)化為軟件特性的過程中,缺乏有效的跟蹤和管理,導(dǎo)致軟件功能特性與用戶需求脫節(jié)。
     問題3: 在項(xiàng)目過程中,用戶提出改進(jìn)的需求或者增加軟件功能和特性,項(xiàng)目組在了解需求后,對(duì)軟件架構(gòu)進(jìn)行調(diào)整或者重構(gòu),但是如此頻繁的重復(fù)下來,需求來源不清楚,軟件規(guī)格書未反應(yīng)需求變化,或者接受需求但未調(diào)整項(xiàng)目的整體進(jìn)度,導(dǎo)致一些混亂情況的發(fā)生。
     上述1,2個(gè)問題其實(shí)都是對(duì)需求跟蹤和管理機(jī)制的不完善引起的。在任何一個(gè)軟件開發(fā)過程中,都充分地強(qiáng)調(diào)了需求管理的重要性。因此,在項(xiàng)目初期,相對(duì)花比較多的時(shí)間做需求的搜集和跟蹤,完善業(yè)務(wù)人員和技術(shù)人員的溝通機(jī)制是很重要的。這會(huì)減少大量的由于曲解需求導(dǎo)致軟件不符合用戶需求從而返工造成的人力和物力的浪費(fèi)。避免這種情況產(chǎn)生的一種方式是,在項(xiàng)目立項(xiàng)后,由專人或?qū)iT的團(tuán)隊(duì)(這些人必須是了解該項(xiàng)目業(yè)務(wù)領(lǐng)域的知識(shí),并且有相關(guān)的技術(shù)經(jīng)驗(yàn))搜集該項(xiàng)目的原始需求,然后和技術(shù)專家(或團(tuán)隊(duì))進(jìn)行充分的溝通和討論,保證技術(shù)專家對(duì)原始需求乃至一些用戶要求的細(xì)節(jié)有完整而正確的理解,接著技術(shù)專家就會(huì)根據(jù)原始需求的文檔,根據(jù)對(duì)需求的理解撰寫軟件規(guī)格書,在寫的過程中,應(yīng)該不斷讓業(yè)務(wù)專家一定程度的參與(例如審稿或一定程度的修訂,并且參與評(píng)審),這樣的軟件規(guī)格書才能為進(jìn)一步正確地進(jìn)行軟件分析設(shè)計(jì)提供素材和指導(dǎo)。
     對(duì)第3個(gè)問題,用戶提出的對(duì)軟件進(jìn)行改進(jìn)可能是經(jīng)常有的事情,遇到這種情況,有兩種處理辦法。一種辦法是用戶提出的改進(jìn)建議在下一個(gè)發(fā)布版本中實(shí)現(xiàn)。但是用戶往往要求能夠在當(dāng)前版本中進(jìn)行實(shí)現(xiàn)。第二種辦法就是認(rèn)真考慮用戶用戶的建議,用各種方法來滿足用戶的需求,其中包括系統(tǒng)重構(gòu)。在這些過程中,可能會(huì)造成一些混亂。其實(shí)歸根結(jié)底還是需求的跟蹤機(jī)制不完善引起的。建議采用需求和變更跟蹤工具(比如rational clearquest)來對(duì)需求和變更進(jìn)行全過程的跟蹤,這樣在形成需求文檔的時(shí)候,每個(gè)需求來源和其狀態(tài)都是非常清楚的。
     配置管理
     配置管理占據(jù)了越來越重要的角色,對(duì)文檔,圖形,代碼和各種項(xiàng)目數(shù)據(jù)進(jìn)行分類管理,并對(duì)不同的人擁有的權(quán)限進(jìn)行控制,方便技術(shù)人員對(duì)其負(fù)責(zé)的配置項(xiàng)進(jìn)行創(chuàng)建,提交和修改,提高項(xiàng)目整體的運(yùn)作效率。但是在配置管理中也存在著一些問題:
     問題1: 沒有制定好 文檔 ,圖形,代碼應(yīng)放的位置,配置項(xiàng)命名比較隨意,無權(quán)限控制,造成各配置項(xiàng)存放混亂,尋找不易。
     問題2: 培訓(xùn)和支持不充分,對(duì)配置管理工具的用法不了解。目前配置管理工具很多,比如大家常用的vss,可能相對(duì)比較熟悉一些。但是諸如CVS和ClearCase等工具,由于軟件功能非常復(fù)雜,并且對(duì)國內(nèi)用戶來說易用性比較差,雖然功能強(qiáng)大,但是沒有真正派上用場。
     對(duì)第一個(gè)問題,在小型項(xiàng)目中可能尚不明顯,但是在大型項(xiàng)目中,由于各種文檔,代碼等非常多,如果不能進(jìn)行正確的配置管理,很有可能被弄得一團(tuán)糟。因此,在項(xiàng)目啟動(dòng)后,經(jīng)過技術(shù)人員之間的討論,在配置項(xiàng)的命名規(guī)定,目錄結(jié)構(gòu),存放位置等達(dá)成共識(shí),因?yàn)檫@些在具體使用上還和開發(fā)工具,開發(fā)語言等是密切相關(guān)的,在討論的時(shí)候也應(yīng)充分考慮這些因素,給技術(shù)人員在使用它們的時(shí)候提供大的便利。當(dāng)然,為了安全起見,大型項(xiàng)目中,權(quán)限的控制也是很重要的。另外,在一些情況下,如果沒有權(quán)限控制,項(xiàng)目成員可以隨意修改其它文件,這樣可能會(huì)導(dǎo)致一些混亂情況的發(fā)生。
     第二個(gè)問題,對(duì)ClearCase等大型的配置管理工具,如果不作充分的研究和大量的培訓(xùn),對(duì)軟件配置和使用不當(dāng),缺乏對(duì)組織內(nèi)人員的統(tǒng)一培訓(xùn),因?yàn)榕渲霉芾砉ぞ呤菐缀趺總€(gè)人都會(huì)用到的,這樣造成的問題會(huì)相當(dāng)多。在ClearCase中,比如基線的概念,可能很多人都不甚了解,還有動(dòng)態(tài)視圖,靜態(tài)視圖,集成視圖,流等,這些如果不能做充分而細(xì)致的培訓(xùn),技術(shù)人員會(huì)感到相當(dāng)?shù)睦Щ螅绻С植坏轿换蛟谑褂弥械膯栴}無法解決,會(huì)造成項(xiàng)目進(jìn)度的延遲乃至停滯。所以,在對(duì)待此類問題上,培訓(xùn)和支持的工作是必不可少的,雖然可能會(huì)在初期浪費(fèi)一些資源,但是磨刀不誤砍柴功,組織內(nèi)人員都掌握了強(qiáng)大工具的使用方法,將會(huì)極大地提高開發(fā)效率和節(jié)省時(shí)間。