是不完整的,甚至具有很大的片面性。除了隱含需求的定義比較困難以外,客戶本身也是影響需求質量的一個重要因素。
1、客戶有不同的需要。一些客戶知道他們需要什么,而另外一些人知道他們不需要什么。一些客戶希望進行詳細討論,而另外一些客戶則滿足于模糊的承諾。
2、客戶有不同的個性。
3、客戶和供應商之間有著不同的通信方式。一些人非常熟悉產品以及生產廠商,而另外一些人則可能素未謀面,僅僅通過信件往來和幾個匆忙的電話與生產廠商溝通。
4、客戶也經常是矛盾的。事實上,很少有客戶能夠明確的知道怎樣的一個系統(tǒng)對自己是最有益處的,他們往往在集中方案之間徘徊,于是經常產生需求的變動。生產廠商經常陷入客戶自己的矛盾之中。
客戶的負面影響可能對于能夠在預算內按時完成項目產生很大的影響。盡管客戶需要對需求的質量負責任,但是,當一個軟件項目因為客戶事先沒有預料到的情況而導致失敗的時候,即使客戶不會追究開發(fā)方的責任,就軟件項目本身而言,也已經是失敗的。
五、目前控制需求質量的手段
目前,項目經理和系統(tǒng)分析員主要通過聽證、評審、確認等手段控制軟件需求的質量。
聽證:主要是指通過正式或者非正式的渠道召開有關人員的會議,聽求大家對新的軟件系統(tǒng)的要求和意見。
評審:組織有關的專家對軟件需求進行評價,指出目前的需求由那些不合理的地方,以及修改的意見等。評審一般發(fā)生在初步的軟件需求已經形成以后。
確認:開發(fā)方將整理過的需求分析說明書交給客戶確認。如果客戶認可該需求分析說明書,就形成正式的需求分析文檔,并作為一個重要基線管理。
這些需求控制手段可以提高軟件需求的質量,但是仍然無法保證需求是可用的。因為:
1、聽證會的參與者并不一定代表使用者的真實意圖。實踐中經常遇到這樣的情況。即使他是目標軟件的最主要使用者,他也經常會遺忘一些他覺得是很基本的,而事實上對于軟件系統(tǒng)是很重要的細節(jié)。
2、參與評審的專家并不一定對軟件的最終質量負責,因此,他可能把工作的重點放在發(fā)現(xiàn)需求中的問題,而不是確認需求是否可行。
3、客戶確認只代表客戶對需求負責人,不代表客戶承認需求的質量。如果因為需求的質量導致軟將項目無法進展,客戶只能承擔經濟上的責任,而項目小組并不能因此緩解軟件項目陷入的尷尬。
六、用逆向溝通改善需求的質量
逆向溝通,就是在需求調研的過程中,除了了解客戶的情況,同時,向客戶提出一些建議,供客戶參考。
一般認為,客戶在其所在的領域具有比較資深的經歷,因此需要嚴格遵守客戶的意見。事實上,客戶雖然在其所在的領域內很資深,但是,他們的角度是單純的業(yè)務流程,而不是從實現(xiàn)信息技術角度構件的業(yè)務流程。因此,系統(tǒng)分析員要充分的說明對于實現(xiàn)一個業(yè)務系統(tǒng)而言,現(xiàn)有的業(yè)務流程應該做如何的剪裁,以及需要注意哪些要點。
雖然,逆向溝通不能完全保證需求的質量,有效的逆向溝通可以大大減少因為對業(yè)務流程的理解不一致而造成的需求質量的下降。
七、逆向溝通的實現(xiàn)條件
1、熟悉業(yè)務流程的業(yè)務邏輯分析師
系統(tǒng)分析員熟悉業(yè)務流程是實現(xiàn)逆向溝通的前提。在進入一個新的領域以前,系統(tǒng)分析員必須花費大量的經歷,了解這個行業(yè)的狀況,行業(yè)的發(fā)展趨勢,行業(yè)內企業(yè)的運作模式,行業(yè)的目標企業(yè)在這個行業(yè)所處的地位等信息。這些信息會為以后分析客戶的需求,了解需求的質量,分析需求的合理性