導(dǎo)讀:在軟件工程中,需求分析指的是在建立一個(gè)新的或改變一個(gè)現(xiàn)存的電腦系統(tǒng)時(shí)描寫新系統(tǒng)的目的、范圍和定義時(shí)所要做的所有的工作。需求分析是軟件工程中的一個(gè)關(guān)鍵過程。在這個(gè)過程中,系統(tǒng)分析員和軟件工程師確定顧客的需要。只有在確定了這些需要后他們才能夠分析和尋求新系統(tǒng)的解決方法。在軟件工程的歷史中,很長時(shí)間里人們一直認(rèn)為需求分析是整個(gè)軟件工程中最簡單的一個(gè)步驟,但在過去十年中越來越多的人認(rèn)識(shí)到它是整個(gè)過程中最關(guān)鍵的一個(gè)過程。
(一)案例正文
我所在的公司是個(gè)50多人的小軟件公司?,F(xiàn)在我被分到一個(gè)五人的項(xiàng)目開發(fā)組,這個(gè)項(xiàng)目已經(jīng)開始兩個(gè)月了,目前的進(jìn)展是只有兩人(包括我)在寫文檔,我負(fù)責(zé)寫需求文檔,其它人都有事在忙別的事,項(xiàng)目暫由公司的上一層領(lǐng)導(dǎo)負(fù)責(zé)。我剛畢業(yè),專業(yè)和軟件沒一點(diǎn)關(guān)系,但沒辦法,沒其它人,我必須得上;我沒學(xué)過軟件工程,也不知道一個(gè)項(xiàng)目下來應(yīng)該具體怎么操作。我覺得我現(xiàn)在這樣工作,有很大問題。
首先,功能性需求都確定不下來,我想先把自己的想法寫下來,然后項(xiàng)目組成員一起討論確定。事實(shí)上其它項(xiàng)目成員也沒人關(guān)注這項(xiàng)目,就一直沒有進(jìn)行。我不能只等著,于是就往下寫。
現(xiàn)在麻煩的是,那個(gè)間接領(lǐng)導(dǎo)有時(shí)間,會(huì)來檢查一下我的文檔,他會(huì)突然有個(gè)想法,要加上某某功能,又要去掉某某功能,然后我又按他要求修改;下次他檢查時(shí),結(jié)果又是這樣,搞得面目全非,我也形成不了自己的思想體系,只有揣摩他的意思。兩月過去了,還在考慮功能的問題,真是失敗啊。難道這就是RUP 開發(fā)的迭代過程?還是我們管理有問題,還是我的想法有問題?
我覺得應(yīng)該定下功能性需求,然后再根據(jù)功能寫用例,再從開發(fā)角度上細(xì)化用例,根據(jù)用例寫時(shí)序圖,組件圖什么的,請問這個(gè)過程應(yīng)該是什么樣的?
(二)專家點(diǎn)評(píng)
潘東,上海交通大學(xué)計(jì)算機(jī)軟件專業(yè)的博士,現(xiàn)任神州數(shù)碼金融軟件公司的副總經(jīng)理,主管公司的項(xiàng)目交付。曾任神州數(shù)碼項(xiàng)目管理部總經(jīng)理,具有豐富的項(xiàng)目管理經(jīng)驗(yàn)。
潘東點(diǎn)評(píng):這個(gè)案例表面上看是作者無法確項(xiàng)目的需求,但深層的問題是項(xiàng)目沒有明確的“客戶”(因?yàn)榘咐男畔⒉蝗?,這點(diǎn)僅僅是推測)。之所以如此推斷,是案例中始終沒有明確提及有“誰”在“提出”需求,或者項(xiàng)目是給“誰”開發(fā)的?
如果客戶是“誰”是明確的,作者“寫需求文檔”的過程,就應(yīng)該是分析和整理“客戶”需求的過程,而不是按自己的“思想體系”創(chuàng)造需求的過程。
到底該由“誰”提需求呢?一般而言,應(yīng)用軟件由最終用戶提出業(yè)務(wù)需求,軟件產(chǎn)品由產(chǎn)品經(jīng)理進(jìn)行產(chǎn)品定義。不管怎樣,由項(xiàng)目組“自己”為“客戶”定義需求都是不太妥當(dāng)?shù)?,這有點(diǎn)像裁縫按自己的尺寸給客戶作衣服。
(一)案例正文
我所在的公司是個(gè)50多人的小軟件公司?,F(xiàn)在我被分到一個(gè)五人的項(xiàng)目開發(fā)組,這個(gè)項(xiàng)目已經(jīng)開始兩個(gè)月了,目前的進(jìn)展是只有兩人(包括我)在寫文檔,我負(fù)責(zé)寫需求文檔,其它人都有事在忙別的事,項(xiàng)目暫由公司的上一層領(lǐng)導(dǎo)負(fù)責(zé)。我剛畢業(yè),專業(yè)和軟件沒一點(diǎn)關(guān)系,但沒辦法,沒其它人,我必須得上;我沒學(xué)過軟件工程,也不知道一個(gè)項(xiàng)目下來應(yīng)該具體怎么操作。我覺得我現(xiàn)在這樣工作,有很大問題。
首先,功能性需求都確定不下來,我想先把自己的想法寫下來,然后項(xiàng)目組成員一起討論確定。事實(shí)上其它項(xiàng)目成員也沒人關(guān)注這項(xiàng)目,就一直沒有進(jìn)行。我不能只等著,于是就往下寫。
現(xiàn)在麻煩的是,那個(gè)間接領(lǐng)導(dǎo)有時(shí)間,會(huì)來檢查一下我的文檔,他會(huì)突然有個(gè)想法,要加上某某功能,又要去掉某某功能,然后我又按他要求修改;下次他檢查時(shí),結(jié)果又是這樣,搞得面目全非,我也形成不了自己的思想體系,只有揣摩他的意思。兩月過去了,還在考慮功能的問題,真是失敗啊。難道這就是RUP 開發(fā)的迭代過程?還是我們管理有問題,還是我的想法有問題?
我覺得應(yīng)該定下功能性需求,然后再根據(jù)功能寫用例,再從開發(fā)角度上細(xì)化用例,根據(jù)用例寫時(shí)序圖,組件圖什么的,請問這個(gè)過程應(yīng)該是什么樣的?
(二)專家點(diǎn)評(píng)
潘東,上海交通大學(xué)計(jì)算機(jī)軟件專業(yè)的博士,現(xiàn)任神州數(shù)碼金融軟件公司的副總經(jīng)理,主管公司的項(xiàng)目交付。曾任神州數(shù)碼項(xiàng)目管理部總經(jīng)理,具有豐富的項(xiàng)目管理經(jīng)驗(yàn)。
潘東點(diǎn)評(píng):這個(gè)案例表面上看是作者無法確項(xiàng)目的需求,但深層的問題是項(xiàng)目沒有明確的“客戶”(因?yàn)榘咐男畔⒉蝗?,這點(diǎn)僅僅是推測)。之所以如此推斷,是案例中始終沒有明確提及有“誰”在“提出”需求,或者項(xiàng)目是給“誰”開發(fā)的?
如果客戶是“誰”是明確的,作者“寫需求文檔”的過程,就應(yīng)該是分析和整理“客戶”需求的過程,而不是按自己的“思想體系”創(chuàng)造需求的過程。
到底該由“誰”提需求呢?一般而言,應(yīng)用軟件由最終用戶提出業(yè)務(wù)需求,軟件產(chǎn)品由產(chǎn)品經(jīng)理進(jìn)行產(chǎn)品定義。不管怎樣,由項(xiàng)目組“自己”為“客戶”定義需求都是不太妥當(dāng)?shù)?,這有點(diǎn)像裁縫按自己的尺寸給客戶作衣服。