談什么呢,先談需求分析,做了幾年開發(fā)下來,發(fā)現(xiàn)需求分析是個很重要的問題,很多程序改了又改,甚至有同事說:“程序就是改出來的”,這其中很大一部分問題就是需求分析沒做好或是做的有缺失,所以先把這個問題拿出來說說,既是對自己的一個總結(jié),也希望對別人有所幫助!
做需求分析,我的感覺是盡可能的減少信息傳遞的個體,先說下我對需求分析的理解,就是把客戶的功能描述轉(zhuǎn)化為軟件員所能理解的功能描述,并在客戶描述的基礎(chǔ)上去除不合理的地方,補(bǔ)充系統(tǒng)缺失的地方,最后為系統(tǒng)的概要設(shè)計,詳細(xì)設(shè)計提供準(zhǔn)確,有效的數(shù)據(jù)基礎(chǔ)。那么這邊就有個信息傳輸?shù)膯栴},例如一個企業(yè)要做個系統(tǒng),他的老板把他的系統(tǒng)理解傳遞給手下經(jīng)理,再由經(jīng)理傳遞給科員,然后找軟件公司,在來個來回,從前臺人員傳遞給項目經(jīng)理,再由項目經(jīng)理傳遞給程序員,在這樣一個信息傳遞中,每個人都有各自對系統(tǒng)的理解,那么就會產(chǎn)生偏差,誤解,而如果把每一個人的偏差與誤解累加起來,我們就會發(fā)現(xiàn)一個很恐怖的事情,那就是我們的系統(tǒng)可能與客戶原始的初衷相差很遠(yuǎn),甚至可能就是兩種系統(tǒng)的理解,所以我個人感覺在條件允許的情況下盡可能地減少中間的信息傳遞,讓信息損失與誤差降低到最低?。?/P>
還有一種情況是他的軟件需求是由很多個人的集體意見構(gòu)成的,那么這里就有主次,輕重之分了。比如一個辦公自動化系統(tǒng),信息發(fā)布的需求是由某個科長提出的,公文流轉(zhuǎn)是由打印室提出的,文檔管理是由檔案室提出的,而且在提需求的過程中,有科員也有領(lǐng)導(dǎo),那么在這里,我們就要區(qū)別對待了,首先要做的便是把所有人意見整理一下,把大家的共同意見先整理出來,因為這是我們必須要做的,而且是首要考慮的,然后,我們便是抓大頭,如果某個科員和他的領(lǐng)導(dǎo)在需求方面有分歧,甚至南轅北轍,那么我們就是要把領(lǐng)導(dǎo)的需求放在首要位置,當(dāng)然這建立在合理的基礎(chǔ)上,優(yōu)先考慮領(lǐng)導(dǎo)需求,把兩份文檔整理出來,那么系統(tǒng)的雛形也就差不多出來了。還有不要忘記,那就是確認(rèn),把整理好的需求與各個科室的領(lǐng)導(dǎo)再對下,最好是形成文檔,那么這個需求相對完善了!
還有一種情況也是我碰到過的,那就是客戶對某個要求比較強(qiáng)硬,而這個需求在軟件實現(xiàn)上有其不合理的地方,那么我們就要據(jù)理力爭,雖說“客戶是上帝”,但是我覺得維持一個公司的技術(shù)獨立型,運營獨立性很重要,我們不能被客戶牽著鼻子走,而是我們引導(dǎo)客戶實現(xiàn)他的系統(tǒng)功能,完善他的各項管理!
而我遇到最多的便是小軟件公司不負(fù)責(zé)任,說難聽點就是忽悠人,但也不是說他亂做,而是僅實現(xiàn)功能地做,甚至我原來公司做個辦公自動化系統(tǒng)就是照著別人的做,就差沒把別人的代碼拿過來換成自己公司的名稱了,完全脫離需求實際,不需要的功能多做了,要的功能少做了或是徹底沒做,結(jié)果呢就是改啊,拖啊,老板竟然還在那自鳴得意,認(rèn)為照別人做是個不錯的主意,而項目完不成便就是我們的責(zé)任,哎!而且很多公司認(rèn)為只要實現(xiàn)功能就行了,對他們來說最重要的就是收到錢,完全不負(fù)責(zé)任。所以個人認(rèn)為在做需求分析時,站在客戶的角度設(shè)身處地的去思考系統(tǒng)這是很重要的,我們的客戶不只是要一個實現(xiàn)功能的系統(tǒng)的,而是要一個給他帶來效益的,科學(xué)的,合理的,人性化的系統(tǒng),那么很多時候客戶在系統(tǒng)中沒有想到的,我們就要考慮到,這不是給自己找麻煩,而是保持一個系統(tǒng)完整性所必須的,我們提供的不只是個軟件,而是一個精致的產(chǎn)品,一種優(yōu)質(zhì)的服務(wù),甚至是一整套科學(xué)合理的完成某些工作的先進(jìn)理念!而且在很多時候,用戶體驗是很重要的,而在我接觸的公司基本就不考慮這個,在他們來說實現(xiàn)功能,收到錢比什么都重要,所以便一直就是小公司!
關(guān)于需求分析的總結(jié)大體就到這了,當(dāng)然還有很多其他的東西也是很重要的
,例如在系統(tǒng)開發(fā)前我們必須做好功課,充分了解系統(tǒng)所在行業(yè)的行業(yè)背景,相關(guān)流程,甚至去下一些別人寫的與系統(tǒng)有關(guān)的程序,“存在的都是合理的”,很多時候別人的系統(tǒng)是很值得借鑒的,注意,是借鑒而不是抄襲,我們要學(xué)的是思想。當(dāng)然關(guān)于需求分析還有很多東西,說白了,這也是門學(xué)問,而我只是個學(xué)習(xí)者,還有很多不足,望各位不吝賜教!