您的位置:軟件測試 > 軟件項目管理 > 開發(fā)管理 >
對軟件研發(fā)項目管理的深入探討
作者:網絡轉載 發(fā)布時間:[ 2013/8/21 10:24:16 ] 推薦標簽:

1.項目的范圍:在需求分析中,首先必須明確項目的范圍,去掉那些看似屬于該項目其實不該在項目中的需求特性。特別是在一些MIS項目中,客戶往往把一些屬于他們的日常工作但不屬于該項目的需求提交給項目組,這時必須分清項目的范圍,不要在項目中加入太多不應該做的東西,否則往往會導致項目范圍無限擴大,終只能是使項目失敗。

2.需求的優(yōu)先級:需求的優(yōu)先級是非常重要的特性,只有在準確把握的需求優(yōu)先級的基礎上我們才可能規(guī)劃外部里程碑(產品版本)和內部里程碑(開發(fā)的階段性,后面會講到)。通常是用戶關心,使用頻繁的功能應該屬于高優(yōu)先級,而那些不怎么重要或很少用到的功能應該屬于低優(yōu)先級。我們必須在產品的開始版本和項目的開始把重點放在高優(yōu)先級的需求上,而對于低優(yōu)先級的功能可以在項目后期根據(jù)需要進行裁減或納入下一個版本規(guī)劃。項目經理圈子

3.產品的易用性:產品的易用性反映在原型中,是原型法的一個非常重要的作用。很多產品的失敗其一個重要原因是易用性比較差,雖然它在功能上滿足了用戶需求,甚至可以說功能很強大。通過原型法,能讓用戶看到并模擬使用終的產品界面,能在需求階段通過修正軟件界面來適應用戶的偏好,從而在很大程度上提高了產品的易用性,使項目更容易成功。blog.mypm.net

4.其他需求特性:如性能要求、健壯性等。這些特性是產品的非功能性需求,也是項目成功的關鍵因素,特別是在一些大型的涉及重要領域的管理信息系統(tǒng)中。

需求分析是整個項目活動中的非常關鍵的部分,它的好壞往往決定了項目的成敗。根據(jù)經驗,需求分析所需的時間往往占整個項目時間的12%[1]。在需求分析中,需要防止的一個錯誤做法是太依靠一些所謂的分析方法,而使整個需求分析過程非常復雜,過多的圖表往往使人眼花繚亂,而不能準確抓住問題的本質。一些分析人員往往對自己熟悉的簡單的業(yè)務花大力氣,而對不熟悉的則一筆帶過,也是本末倒置的錯誤行為。在分析過程中,我們必須始終把握需求分析的目的是把模糊的流程搞清晰,把復雜的業(yè)務盡量簡化,而不是相反。項目管理培訓

需求的管理也是非常重要的方面。對需求分析完后的形成的規(guī)格說明需要進行專門的評審,并且需要客戶和終用戶的參與,在達成一致后形成初的需求基線。以后對需求的更改都必須在基線的基礎上進行,并需要項目組各成員的一致確認,對需求進行嚴格規(guī)劃評審的目的也在于在項目的后期能盡量減少對需求的更改,提高開發(fā)的效率。項目管理者聯(lián)盟

需求分析完成后,項目組需要對項目的初步計劃進行重新審定,一般都需要變更項目時間表和資源需求。需求分析的完成也意味著項目其他部分可以齊頭并進,如概要設計、測試計劃、用戶說明書,這也在某個方面證明了需求分析的重要性-它是下面所有活動的基礎和準繩。

3.2.3開發(fā)計劃

軟件開發(fā)中的計劃性是非常重要的,一個沒有良好計劃的開發(fā)項目能夠成功的機會非常小,除非有天才的程序員再加上好運氣。開發(fā)計劃的主要內容包括:項目進度安排、人力資源安排,風險管理策略等。

項目的進度安排和人力資源安排可能是開發(fā)計劃中重要的部分,也是難以估計的部分。一般國內的中小軟件公司對項目工作量和開發(fā)人員能力的量化程度不高,所以導致進度和資源安排不確切,有時候甚至是相差很遠。目前一個實際的辦法是根據(jù)以往項目的積累,但必須要求是同一領域的類似項目,這樣才有較強的可比性。由于這些計劃安排是預估粗略的,所以還必須在以后的項目各階段完成后進行合理的變更,反應項目的實際需求。微軟的辦法是把進度估計的權限交給開發(fā)人員,由開發(fā)人員根據(jù)自己的經驗進行估計,由于一般開發(fā)人員往往會高估自己的能力,估計的進度也會相應偏短,后再做適當?shù)难娱L[2]。這種辦法有它合理的地方,在中國還需進行實踐摸索。

對于進度的估計,我們有個經驗公式,即您初預估的時間再乘以2.5,可能是后的完成時間。因為許多人在估計進度的時候,往往忽略了很多非開發(fā)時間,如與客戶溝通的時間、項目組溝通時間、公司培訓時間、假期等,所以我們在估計進度的時候,一定要全方位周全考慮,在盡可能的情況下寧愿把進度估計的長一點,免得在項目后期導致非常被動的局面。后面我們將具體講到我們采取的階段性的開發(fā)方法,這種方法的運用反映在進度估計時必須在各階段間預留緩沖時間,以解決那些我們事先沒有預料到的活動。如果進度表和要求的出貨時間有沖突,寧愿砍掉一些不重要的功能,也不要盲目增加人手,這種做法可能會導致產品質量下降,終得不償失,詳細說明請參考[4]。

風險管理是項目管理中非常重要的部分,并且要貫穿項目的始終。一些軟件企業(yè)往往不是很重視風險管理,導致在項目的后期出現(xiàn)了很多預料之外的事情,使項目進度一拖再拖,往往質量也達不到預期要求。因此我們要特別重視風險的管理,具體方法留待后面專門詳述。

3.2.4開發(fā)過程

在項目的開發(fā)過程中,我們采用了階段式的開發(fā)過程,這也是微軟公司所推薦的開發(fā)過程。在開發(fā)過程的初期,首要的活動是概要設計。概要設計的目標是簡單、適用、能夠覆蓋所有的需求并能支持后面的階段式開發(fā)。微軟的應用方案解決模型是基于服務的三層(多層)架構,包括用戶層,業(yè)務層和數(shù)據(jù)層,各層之間采用標準的接口進行通訊,至于該方法的具體使用,請參看相關書籍,在此不在贅述了。

階段開發(fā)過程不是傳統(tǒng)的根據(jù)模塊劃分來依次完成各模塊,后再進行項目的整合,而是在每個階段完成后,項目都可以推出產品,只不過該產品的功能比終產品的功能弱一些。

階段性完成項目比傳統(tǒng)的開發(fā)方法明顯的優(yōu)點是不必到項目的末期才開始整合產品,使產品模塊之間協(xié)作產生的問題及早產生,也及早修正,從而項目的風險也大大減小。傳統(tǒng)的開發(fā)總是在項目的后期才開始整合各模塊,使產生的問題改正起來極為困難,成本也大大增加;前面累計的所有問題全部都拖到了后面來解決,也使后面剩下的工作量大大增加。項目往往看起來已完成了90%——大部分的功能模塊都已完成,但剩下的10%總是完不成,項目進度一拖再拖,很可能還要再花90%的時間來完成剩下的10%。當然采用階段性開發(fā)方法也有相應的代價,大的代價可能是反復的整合、測試已經完成的模塊,但采用相應的一些自動化工具可以減小這個代價。

一般在開始的階段進行的是系統(tǒng)架構和重要的功能,后面的階段是相對不怎么重要的功能。這樣的分配有利于終用戶在早期能看到系統(tǒng)的大致模樣,便于他們及早的對產品提出意見,并對相應的錯誤進行修改;也有利于項目組在項目后期時間很緊的情況下,去掉一些不重要的功能,把它們納入下一個版本處理,確保產品的推出時間。迭代的順利進行依賴于良好的架構設計,前面階段的設計應該給后面要加入的功能預留出各種接口,并能使后面的工作在前面的基礎上繼續(xù)進行下去。

這種在開發(fā)階段的迭代方式不同于整個項目的完全迭代開發(fā),后者是項目的需求、概要設計、開發(fā)等全部是迭代進行,一次迭代要進行所有的項目活動。至于誰優(yōu)誰劣可能在不同的情況下有不同的說法,需要根據(jù)項目和自身的情況合理采用。

還有是迭代的次數(shù)也要根據(jù)項目的具體情況而定。不能太多,導致重復的工作量過大;也不能太少,使得該方法退化到傳統(tǒng)方法。我們的項目(項目小組在10人左右,開發(fā)時間在5個月左右)一般分了四個階段:架構完成、主要功能完成、其他功能完成、整合發(fā)行。實踐證明,這樣的實施比傳統(tǒng)方法確實在很大程度上減小了項目失敗的風險,再沒有產生那種“似乎永遠也做不完的感覺”。項目管理者聯(lián)盟文章

這里舉一個具體例子來更形象的說明該方法的運用。一個一般的MIS程序,第一階段可以構建數(shù)據(jù)庫結構和基于特定領域的核心平臺服務(包括一些基本服務類),并進行初步整合;第二階段可并行同時開發(fā)系統(tǒng)各大模塊的基本功能,并進行第二次整合;第三階段可開發(fā)其他增強功能,也需要相應的功能整合;第四階段進行整個系統(tǒng)的后整合,并可進行相應的性能改進,使產品進入可發(fā)行狀態(tài)。

上一頁12345下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd