“嗯,咳咳咳”老C大聲的清著嗓子,引起了小P的注意。
“怎么,你寫完了嗎?”小P問道。
“呵呵,算是寫完了。”老C說道。
“快讓我看看,”小P道,跑到老C桌前,看到一篇這樣的文檔。
- 項目概述
Slam是一個自由風格的計算器。所謂“自由風格”是指可以在窗口處使用鍵盤輸入計算式,且如果此計算式符合代數運算的規則,那么就可以得到正確的計算結果。此項目必須在寒假前完成。
- 用戶、發起人及干系人需求
此項目來源于內部技術進步。項目參與者需要在項目結束后掌握C++基于對象的編程技術。表現為:
- 會使用eclipse + CDT + GCC tool chain的開發環境進行編程
- 簡單了解項目開發的流程
- 掌握基本的配置管理知識和工具
- 可以編寫正確的基于C++對象的程序,缺陷率低于2個/千行
- 會使用UML進行簡單的類設計
- 養成良好的代碼風格習慣
- 掌握基本的詞法分析知識
- 掌握基本的語法分析知識
- 項目經理任命與權限
項目經理任命為老C,他具有安排項目資源的權利。小P必須嚴格按照他的計劃和要求進行開發工作。
- 概要的里程碑
10月中旬 完成項目計劃,并建立好開發環境
11月上旬 完成4則運算
11月下旬 完成代數運算
12月上旬 完成函數運算
12月中旬 Alpha測試
12月下旬 發布Beta測試版本
次年1月中旬 正式發布
- 假定與約束
- 組織、環境和外部的假定
- 組織、環境和外部的約束
- 在寒假之前完成此項目
- 不能占用正常的上課時間,需在業余時間進行
- 項目收益
小P每周請老C湘菜一次,或刀削面四次。
-----------------------------------------------------------------------------------------------------------(寂寞的分割線)
“……”小P看到最后一項有些無語,“這個……可以算作項目收益嗎?”
“呵呵,基本算是吧”老C大言不慚,“要不我這個項目經理當的可沒有什么樂趣,你也得有所付出吧,要不做項目的動力從哪里來?你想想,爺爺的,老子飯錢都陶了,這個項目一定要做好,要不也太對不起自己掏的腰包啦……這樣才不會半途而廢嘛。”
“……”小P有些被忽悠暈了,“你這么一說,好像也有些道理……”他想了想,“好吧,舍不得孩子套不住色狼,我就答應啦。”
“……”老C心想自己什么時候變成色狼了……
“那你能不能解釋一下這個項目章程呢?”小P問道。
“呵呵,當然當然。”老C點頭,“項目章程是Develop Project charter process的唯一輸出,我們看到,在Technique & Tools里面有一個工具叫Project Selection Methods,這個工具是用來選擇需要進行的項目的,當項目已經被選中,那么我們就要找人來做。這樣項目經理就被授權來做這個項目——我以前已經說過,項目經理的職責和權利永遠是不對等的——所以這個授權文件就相當的重要,我們來看看一般一個項目的charter都會包含哪些內容。”老C指揮著小P拉過白板。“首先我們有一個關于項目的高層描述,使用幾個簡單的句子說出項目的主要目標;下來是項目需求——我們除了要滿足產品的要求,同時還要滿足項目干系人和項目發起人的要求,這些要求有可能會是一些企業戰略上的需求,比如需要在這個項目中使用一種新的技術,或者是業務需求,比如在項目中鍛煉幾個新人,又或者是一些企業發展的要求,比如缺陷率和項目計劃完成率要達到新的標準等等……”老C找到茶杯喝了一大口,“下來就是項目經理的人名和權限,一般權限包括資源的配置權限,允許使用的資金的等級,審批的權限等;再下來就是假定和約束,假定就是我們認為是真的條件,而約束就是一些限制;最后是一些商業上的考核指標,比如我們需要達到的盈利目標,需要使客戶達到的滿意程度,對組織內部的貢獻等等。總之一句話,我給你了規定的權限,你要給我完成這些目標!”
“哦,我差不多理解了,那么下來我們就可以開始開發工作了吧?”小P問道。
“不行,還差一些。”老C揉揉額頭,“接下來我們還需要一個Preliminary Project Scope Statement才可以開始后繼工作,注意,是后繼工作,不是開發工作。 ”
“哦?這是做什么的東東啊?”小P追問。
“所謂Preliminary Project Scope Statement是一個對項目范圍的初步說明。注意項目范圍與產品范圍是兩回事,產品范圍說的是我們要做什么樣的產品,而項目范圍是我們為了做出這樣的產品而需要做的事情。”說著老C在白板上畫了這樣一個三角。

“我們做項目需要在3個要素間取得平衡,這3個要素是項目范圍、費用和時間,在三角形中用三條邊來表示,而關注的中心在項目和產品的質量;你可以想象,如果三角的任何一個邊變長,勢必會影響到其他的兩條邊,而在項目中其他的兩條邊往往是約束;所以我們在做項目時,必須要先明確項目的范圍是什么,這樣才要判斷我們能否在約束條件下達到項目目標。”老C指著白板。
“唔,那么如果有了初步的項目范圍說明書,那么我們就可以開始編程了吧?”小P問道。
“還不行。”老C搖頭,“我們還需要細化我們的初步項目范圍說明書。我們已經說過,項目是漸進明細的,是迭代發展的,我們會隨著項目的深入,不斷的認識到我們還需要進一步進行的工作,那么如何執行進一步認識我們的工作呢?我們需要制定項目計劃,我們以前已經說過,一個項目被分為9個知識領域,每一個知識領域都需要我們計劃-執行-監控-收尾,所謂項目計劃就是告訴我們如何去進行這些工作,當我們把這些工作按照計劃執行完,我們就是完成了對項目逐步深入認識的工作。只有我們對項目認識深入了,才有可能做好。否則只能靠rp了。”
“就是說我們有了初步項目范圍說明書之后,還需要制定一個項目計劃?”小P問道。
“沒錯,沒錯。”老C點頭,“然后我們需要根據項目計劃的說明去細化我們的項目,得到一個項目范圍說明書。一個項目最重要的3篇文檔就是項目章程、項目計劃和項目范圍說明書。”老C說著在白板上又畫了一幅圖。

“相當具有后現代解構主義的美感,很有27號的設計風格……”小P對著白板品頭論足。
“呵呵,呵呵……”老C傻笑,“畫的好不好另說,這個圖說明了9個知識領域相互的關系,質量、范圍、費用和時間是根本,溝通、人力資源和采購是支柱,風險懸而未決,需要其他部分的支撐,項目經理做整體和集成管理。而項目管理計劃就是如何蓋這個房子的藍圖或者說明書,下來我們就需要制定一個項目計劃啦——記住,項目計劃不僅僅是一些時間上的安排而已。不過在此之前我們需要一個項目初步范圍說明書。”
“是么?那么我們如何做下一步的事情呢?”小P問道。
“嗯,這個也有規定好的processes,我們只要照著做就行了。我們回去吧,時間也晚了,這些事情留到明天再做吧。”老C回答。
“好,那我們明天見!”
(早睡早起,有利身體健康……)