根據PMI的解釋,接單之后項目自然轉入啟動階段。啟動階段PM的主要任務是率領總體架構設計師和系統分析員收集盡可能詳細的數據,確立盡可能詳細的需求,進一步確立詳細的項目范圍,預估資源,確立其他方案并獲得進入下一階段的批準。在這個階段,隨著需求分析的深入,PM也開始在公司內部進行人員挑選和資源爭奪,著手組建自己的項目團隊。
在收集完數據之后,PM要和客戶開始明確項目的大小,成本,規格,期限等重要特征并將其寫入合同文本,同時準備內部的包括預算,衡量標準等文檔,建立項目的評估標準。接下來就是需求分析。由于專業的原因,我們這里僅討論軟件工程項目的需求分析(以下簡稱需求分析) 需求分析的主要參與人員有PM,總體架構設計師,系統分析員,熟悉業務流程的客戶。
PM統領的團隊這時候還不是真正的開發團隊,我們叫做前期團隊。隨著需求分析的逐步深入,新的團隊成員不斷加入,啟動階段結束的時候正式的團隊將建立。對一個已經啟動的項目來說,需求分析直接決定了項目的成功與失敗。最初的需求體現在客戶的工作說明書或招標文件及附件上。這種需求一般比較含糊,無法體現客戶真正的需求。
前期團隊要根據自己的經驗和客戶溝通并引導客戶進入正軌。有時候客戶會很不講道理或者思路僵化,就要求按照他的思維去定一些明顯錯誤的需求。這個時候團隊成員要耐心和客戶舉事實,談經驗,講道理,用圖形或模型等直觀的方式將需求描述出來,比如常見的數據流圖等。所以說,爭論再所難免,客戶有時候會吹胡子瞪眼睛拍桌子甚至會說"這個東西不要你們做了"之類的話。PM此時除了要親身參與需求分析綜合整理文檔之外,還要處理好團隊成員與客戶的關系,確保關系不會惡化到無法收拾的地步。只要PM盡力約束團隊中的成員,這個度還是很容易控制的。
對快速開發和疊代開發來說,需求和實現往往是同步進行,開發速度快是一大優勢。對有相同或類似模式的小項目來說采用快速開發或疊代開發是很合算的做法,時下流行的極限編程就是針對這方面建立的思維模式。然而,大中型項目中有太多不一樣的需求和模塊。如果不是因為項目有差異,那么市場上就只有產品而沒有項目了。所以,大中型項目的需求要認真仔細的去做。
我們要討論一個問題,究竟應該在需求分析和總體設計上花費多少時間?我們熟悉的瀑布開發模式基本上分需求分析,總體設計,軟件開發,測試等幾個階段,然而究竟應該在前兩個階段上花多少時間卻沒有定論。實際項目操作的例子表明,分析設計的時間越長,需求設計做的越詳細,測試的時間就越短,返工率越低,風險也越小,成本越容易得到控制。