2006-08-10 13:56:20
1.項目的一些基本概念
項目三要素有多種版本,各不相同。實際操作中多分為范圍,成本與進度,其中最重要的莫過于范圍。我們把項目最終生成并提交給用戶的產(chǎn)品和文檔統(tǒng)稱為遞交件。談判的時候一定要確立遞交件的標準和要求,也就是范圍。盡管商戰(zhàn)的時候不可避免的客戶會不斷提高標準和要求,而承諾的款項卻不會有一分錢的增加。但是這個標準對每個公司來說都有一個底線,一旦超過了這個底線,那項目就肯定是虧的。除非是為了二期有利可圖或者是為了搞好關(guān)系,否則范圍超過底線的時候情愿不做,再厲害的PM在這種情況下也是無能為力。建立范圍需要的就是PM的多年的實戰(zhàn)經(jīng)驗,在大大小小的項目中用血淚換來的一些體會。在這個時候,很能體現(xiàn)PM與技術(shù)人員的區(qū)別。成本就是客戶答應(yīng)付的款項,與我們的投入成本并不是一回事情。進度就不用多描述了。
項目如何成功?也有一些關(guān)鍵的因素。個人的理解也不盡相同,通常包括以下幾個方面:界定工作目標及工作任務(wù);老板或高層的支持;優(yōu)秀的PM和開發(fā)團隊;充足的資源;良好的溝通;對客戶的積極反應(yīng)以及適當(dāng)?shù)谋O(jiān)控和反饋。這里要注意的就是資源和高層的支持。一個上規(guī)模的公司總是同時會有很多項目,可是再大規(guī)模的公司資源也不足以保證每個項目都能組建最合適的開發(fā)隊伍或擁有最好的環(huán)境。這時候各個團隊或者部門之間不可避免的會發(fā)生資源爭奪戰(zhàn),摩擦再所難免。這時候?qū)M的作人再次提出挑戰(zhàn)。除了高層對PM項目的重視程度,如果PM平時在公司與同事相處的好往往能使很多別人看起來很棘手的問題迎刃而解。相反,一個不會作人的PM由于人緣差,即使高層強壓別的部門或團隊配合,別人也會能拖就拖,延緩項目的進度和質(zhì)量。有時候,這種內(nèi)耗對項目和PM來說是毀滅性的。對客戶的積極反應(yīng)也比較關(guān)鍵。一般來說PM已經(jīng)被項目里大大小小的事情搞的筋疲力盡,要PM去主動要求客戶配合是很吃力的事情。
然而,這個時候,越是困難,越是覺得累,越是要去主動??蛻敉膊皇翘貏e的積極,主動與客戶聯(lián)系溝通和測試能及早發(fā)現(xiàn)問題。從風(fēng)險控制的角度來說,問題發(fā)現(xiàn)的越早,風(fēng)險越小,損失也就越小。積極的態(tài)度可以帶動客戶的積極性,在項目完工的時候,客戶對你的感激往往是難以用語言描述的,這對以后接單或者做二期三期會打下良好的基礎(chǔ)。因為在和別的新客戶談判的時候,新客戶自然會找你的老客戶了解情況,這時老客戶隨意的一句話頂?shù)纳夏愫苜M心的十句。項目具有商業(yè)行為的幾個重要特征,有消費源,有參與者,有成功關(guān)鍵因素,有財務(wù)目標,有風(fēng)險。
項目如何成功?也有一些關(guān)鍵的因素。個人的理解也不盡相同,通常包括以下幾個方面:界定工作目標及工作任務(wù);老板或高層的支持;優(yōu)秀的PM和開發(fā)團隊;充足的資源;良好的溝通;對客戶的積極反應(yīng)以及適當(dāng)?shù)谋O(jiān)控和反饋。這里要注意的就是資源和高層的支持。一個上規(guī)模的公司總是同時會有很多項目,可是再大規(guī)模的公司資源也不足以保證每個項目都能組建最合適的開發(fā)隊伍或擁有最好的環(huán)境。這時候各個團隊或者部門之間不可避免的會發(fā)生資源爭奪戰(zhàn),摩擦再所難免。這時候?qū)M的作人再次提出挑戰(zhàn)。除了高層對PM項目的重視程度,如果PM平時在公司與同事相處的好往往能使很多別人看起來很棘手的問題迎刃而解。相反,一個不會作人的PM由于人緣差,即使高層強壓別的部門或團隊配合,別人也會能拖就拖,延緩項目的進度和質(zhì)量。有時候,這種內(nèi)耗對項目和PM來說是毀滅性的。對客戶的積極反應(yīng)也比較關(guān)鍵。一般來說PM已經(jīng)被項目里大大小小的事情搞的筋疲力盡,要PM去主動要求客戶配合是很吃力的事情。然而,這個時候,越是困難,越是覺得累,越是要去主動??蛻敉膊皇翘貏e的積極,主動與客戶聯(lián)系溝通和測試能及早發(fā)現(xiàn)問題。從風(fēng)險控制的角度來說,問題發(fā)現(xiàn)的越早,風(fēng)險越小,損失也就越小。積極的態(tài)度可以帶動客戶的積極性,在項目完工的時候,客戶對你的感激往往是難以用語言描述的,這對以后接單或者做二期三期會打下良好的基礎(chǔ)。因為在和別的新客戶談判的時候,新客戶自然會找你的老客戶了解情況,這時老客戶隨意的一句話頂?shù)纳夏愫苜M心的十句。
項目具有商業(yè)行為的幾個重要特征,有消費源,有參與者,有成功關(guān)鍵因素,有財務(wù)目標,有風(fēng)險。
2.啟動階段的主要任務(wù)
根據(jù)PMI的解釋,接單之后項目自然轉(zhuǎn)入啟動階段。啟動階段PM的主要任務(wù)是率領(lǐng)總體架構(gòu)設(shè)計師和系統(tǒng)分析員收集盡可能詳細的數(shù)據(jù),確立盡可能詳細的需求,進一步確立詳細的項目范圍,預(yù)估資源,確立其他方案并獲得進入下一階段的批準。在這個階段,隨著需求分析的深入,PM也開始在公司內(nèi)部進行人員挑選和資源爭奪,著手組建自己的項目團隊。項目即將進入計劃階段。
在收集完數(shù)據(jù)之后,PM要和客戶開始明確項目的大小,成本,規(guī)格,期限等重要特征并將其寫入合同文本,同時準備內(nèi)部的包括預(yù)算,衡量標準等文檔,建立項目的評估標準。接下來就是需求分析。由于專業(yè)的原因,我們這里僅討論軟件工程項目的需求分析(以下簡稱需求分析)。需求分析的主要參與人員有PM,總體架構(gòu)設(shè)計師,系統(tǒng)分析員,熟悉業(yè)務(wù)流程的客戶。PM統(tǒng)領(lǐng)的團隊這時候還不是真正的開發(fā)團隊,我們叫做前期團隊。隨著需求分析的逐步深入,新的團隊成員不斷加入,啟動階段結(jié)束的時候正式的團隊將建立。對一個已經(jīng)啟動的項目來說,需求分析直接決定了項目的成功與失敗。最初的需求體現(xiàn)在客戶的工作說明書或招標文件及附件上。這種需求一般比較含糊,無法體現(xiàn)客戶真正的需求。前期團隊要根據(jù)自己的經(jīng)驗和客戶溝通并引導(dǎo)客戶進入正軌。有時候客戶會很不講道理或者思路僵化,就要求按照他的思維去定一些明顯錯誤的需求。這個時候團隊成員要耐心和客戶舉事實,談經(jīng)驗,講道理,用圖形或模型等直觀的方式將需求描述出來,比如常見的數(shù)據(jù)流圖等。所以說,爭論再所難免,客戶有時候會吹胡子瞪眼睛拍桌子甚至?xí)f"這個東西不要你們做了"之類的話。PM此時除了要親身參與需求分析綜合整理文檔之外,還要處理好團隊成員與客戶的關(guān)系,確保關(guān)系不會惡化到無法收拾的地步。只要PM盡力約束團隊中的成員,這個度還是很容易控制的。
對快速開發(fā)和疊代開發(fā)來說,需求和實現(xiàn)往往是同步進行,開發(fā)速度快是一大優(yōu)勢。對有相同或類似模式的小項目來說采用快速開發(fā)或疊代開發(fā)是很合算的做法,時下流行的極限編程就是針對這方面建立的思維模式。然而,大中型項目中有太多不一樣的需求和模塊。如果不是因為項目有差異,那么市場上就只有產(chǎn)品而沒有項目了。所以,大中型項目的需求要認真仔細的去做。我們要討論一個問題,究竟應(yīng)該在需求分析和總體設(shè)計上花費多少時間?我們熟悉的瀑布開發(fā)模式基本上分需求分析,總體設(shè)計,軟件開發(fā),測試等幾個階段,然而究竟應(yīng)該在前兩個階段上花多少時間卻沒有定論。實際項目操作的例子表明,分析設(shè)計的時間越長,需求設(shè)計做的越詳細,測試的時間就越短,返工率越低,風(fēng)險也越小,成本越容易得到控制。
而需求分析和總體設(shè)計沒有做好就急忙上馬進行開發(fā)的項目在項目初期進展順利的時候問題不大,到了項目后期和測試階段一些潛伏期比較長但是破壞作用比較大的問題就會凸顯出來,造成返工,延長測試時間。所以與其把問題堆積到緊張的項目后期,不如把時間多花點到需求分析和總體設(shè)計上?;A(chǔ)夯實了,金字塔就容易造了。在日本公司打工的程序員們可能都知道,小日本的軟件規(guī)范非常厲害,他們花在需求分析和總體設(shè)計上的時間通常在40%到50%左右,遠遠超過國內(nèi)軟件項目的實施,效果也要強的多。他們總體設(shè)計的規(guī)范甚至詳盡到某個過程該如何判斷,確立什么樣的條件,換言之就是把什么時候該如何寫(if...else)語句都幫程序員定好了。在這樣的軟件規(guī)范下,程序員更象是裝配流水線上的工人,對一個模塊或技術(shù)熟悉到一定程序就變成了完全的重復(fù)性勞動。所以在日本和歐美經(jīng)常會有程序員是低級工作一說,很多人不明就里,對國內(nèi)程序員也照搬,對國內(nèi)的程序員來說是很不公平的。在國內(nèi),只會照抄別人代碼,一點都不懂創(chuàng)新,凡事依靠別人,快下班就盯著表看的程序員是不少,這種人一般很難有什么前途。但是,優(yōu)秀的不斷進取的程序員也很多。由于國內(nèi)沒有象CMM這樣的軟件規(guī)范或者很少,所以這類優(yōu)秀的程序員不少都是干著系統(tǒng)分析員甚至PM的活,拿著程序員的工資。這類程序員雖然在起步時會吃很多虧,而且是主動找虧吃,然而幾年之后與前一種程序員的社會地位會出現(xiàn)明顯的分化。當(dāng)上進的程序員們作為PM進行商務(wù)談判的時候,前者還在各個公司里頻繁跳槽,跳來跳去都不滿意。有些扯開了,回到我們的話題。
日本的軟件規(guī)范與CMM有驚人的相似,其中至少有35%以上都是幾乎一模一樣的。最近經(jīng)濟不景氣,東京倒閉了160家軟件公司,這個數(shù)字是今年6月份的,還在不斷增加。這些公司紛紛搶灘上海,招收技術(shù)人員。如果去這樣的公司應(yīng)聘就要考慮清楚了,進去可以學(xué)到他們的規(guī)范和質(zhì)量控制,可是要想從程序員成為系統(tǒng)分析員或PM,比登天還難。往往一個程序員進去干了好幾年,對自己的那一塊熟的不得了,而對隔壁同事所做的東西一竅不通。拒傳
華為正在嘗試CMM4(華為印度研究所已經(jīng)通過CMM4),對在華為工作的程序員們來說可謂福禍難料。當(dāng)然,已經(jīng)作到PM或QA或者熱愛CODING的朋友例外。需求分析本身也存在著時間分配的問題。第一遍需求分析花的時間會最長,分析員們在客戶的各個部門之間幾乎把腿都跑斷,把口水說干,就是為了確立一個初期的需求模型。所有的文檔將會提交給PM進行復(fù)審并簽字,不合格的打回重做。反饋表隨之將提交給客戶,第二遍第三遍等等等等接踵而來,與客戶反復(fù)討論和磋商,反復(fù)提交文檔和表格,目的只有一個,明確需求。當(dāng)PM最終合并了所有文檔并確立需求之后,最終生成的需求文檔將提交給客戶的各部門負責(zé)人簽字。這些文檔將作為合同的附件添加,以便在將來項目變更或者碰到重大問題時和客戶扯皮的重要依據(jù)。
需要說明的是,客戶并非都是蠻不講理,但是說實話,頗有無奈,國內(nèi)目前的項目大多數(shù)客戶為了不讓自己的錢白花,經(jīng)常變著法子提需求。在啟動階段明確需求并簽字,無論最終情況如何,一份詳盡的書面文檔可以解決很多口頭承諾或概念模糊的文檔帶來的許多問題。詳盡的需求分析有一個額外的好處就是對一些雙方都很陌生或者從來無人嘗試的領(lǐng)域?qū)⑹且粋€決定是否進行項目的判斷標準。有時候,這種大項目在簽單時雙方都沒有絕對把握保證可以出成果,一旦在需求分析階段發(fā)現(xiàn)難以逾越的技術(shù)難關(guān),就會放棄項目。典型的例子就是NMD洲際導(dǎo)彈防御系統(tǒng)。上世紀八十年代初美國搞星球大戰(zhàn)計劃,拖跨了蘇聯(lián)。大家對那段歷史有些含糊,很多人認為蘇聯(lián)人上了美國的當(dāng)。其實并不完全如此,蘇聯(lián)人的情報機構(gòu)無孔不入,并非那么容易上當(dāng)受騙。實際上當(dāng)時美國國防部已經(jīng)開始著手NMD系統(tǒng)軟件的需求分析,前后耗資數(shù)億美圓,耗時兩年,僅僅是做需求分析,終于發(fā)現(xiàn)存在著在當(dāng)時技術(shù)上無法達到的高度,隨后項目被放棄。
2.啟動階段的主要任務(wù)
根據(jù)PMI的解釋,接單之后項目自然轉(zhuǎn)入啟動階段。啟動階段PM的主要任務(wù)是率領(lǐng)總體架構(gòu)設(shè)計師和系統(tǒng)分析員收集盡可能詳細的數(shù)據(jù),確立盡可能詳細的需求,進一步確立詳細的項目范圍,預(yù)估資源,確立其他方案并獲得進入下一階段的批準。在這個階段,隨著需求分析的深入,PM也開始在公司內(nèi)部進行人員挑選和資源爭奪,著手組建自己的項目團隊。項目即將進入計劃階段。
在收集完數(shù)據(jù)之后,PM要和客戶開始明確項目的大小,成本,規(guī)格,期限等重要特征并將其寫入合同文本,同時準備內(nèi)部的包括預(yù)算,衡量標準等文檔,建立項目的評估標準。接下來就是需求分析。由于專業(yè)的原因,我們這里僅討論軟件工程項目的需求分析(以下簡稱需求分析)。需求分析的主要參與人員有PM,總體架構(gòu)設(shè)計師,系統(tǒng)分析員,熟悉業(yè)務(wù)流程的客戶。PM統(tǒng)領(lǐng)的團隊這時候還不是真正的開發(fā)團隊,我們叫做前期團隊。隨著需求分析的逐步深入,新的團隊成員不斷加入,啟動階段結(jié)束的時候正式的團隊將建立。對一個已經(jīng)啟動的項目來說,需求分析直接決定了項目的成功與失敗。最初的需求體現(xiàn)在客戶的工作說明書或招標文件及附件上。這種需求一般比較含糊,無法體現(xiàn)客戶真正的需求。前期團隊要根據(jù)自己的經(jīng)驗和客戶溝通并引導(dǎo)客戶進入正軌。有時候客戶會很不講道理或者思路僵化,就要求按照他的思維去定一些明顯錯誤的需求。這個時候團隊成員要耐心和客戶舉事實,談經(jīng)驗,講道理,用圖形或模型等直觀的方式將需求描述出來,比如常見的數(shù)據(jù)流圖等。所以說,爭論再所難免,客戶有時候會吹胡子瞪眼睛拍桌子甚至?xí)f"這個東西不要你們做了"之類的話。PM此時除了要親身參與需求分析綜合整理文檔之外,還要處理好團隊成員與客戶的關(guān)系,確保關(guān)系不會惡化到無法收拾的地步。只要PM盡力約束團隊中的成員,這個度還是很容易控制的。
對快速開發(fā)和疊代開發(fā)來說,需求和實現(xiàn)往往是同步進行,開發(fā)速度快是一大優(yōu)勢。對有相同或類似模式的小項目來說采用快速開發(fā)或疊代開發(fā)是很合算的做法,時下流行的極限編程就是針對這方面建立的思維模式。然而,大中型項目中有太多不一樣的需求和模塊。如果不是因為項目有差異,那么市場上就只有產(chǎn)品而沒有項目了。所以,大中型項目的需求要認真仔細的去做。我們要討論一個問題,究竟應(yīng)該在需求分析和總體設(shè)計上花費多少時間?我們熟悉的瀑布開發(fā)模式基本上分需求分析,總體設(shè)計,軟件開發(fā),測試等幾個階段,然而究竟應(yīng)該在前兩個階段上花多少時間卻沒有定論。實際項目操作的例子表明,分析設(shè)計的時間越長,需求設(shè)計做的越詳細,測試的時間就越短,返工率越低,風(fēng)險也越小,成本越容易得到控制。
而需求分析和總體設(shè)計沒有做好就急忙上馬進行開發(fā)的項目在項目初期進展順利的時候問題不大,到了項目后期和測試階段一些潛伏期比較長但是破壞作用比較大的問題就會凸顯出來,造成返工,延長測試時間。所以與其把問題堆積到緊張的項目后期,不如把時間多花點到需求分析和總體設(shè)計上?;A(chǔ)夯實了,金字塔就容易造了。在日本公司打工的程序員們可能都知道,小日本的軟件規(guī)范非常厲害,他們花在需求分析和總體設(shè)計上的時間通常在40%到50%左右,遠遠超過國內(nèi)軟件項目的實施,效果也要強的多。他們總體設(shè)計的規(guī)范甚至詳盡到某個過程該如何判斷,確立什么樣的條件,換言之就是把什么時候該如何寫(if...else)語句都幫程序員定好了。在這樣的軟件規(guī)范下,程序員更象是裝配流水線上的工人,對一個模塊或技術(shù)熟悉到一定程序就變成了完全的重復(fù)性勞動。所以在日本和歐美經(jīng)常會有程序員是低級工作一說,很多人不明就里,對國內(nèi)程序員也照搬,對國內(nèi)的程序員來說是很不公平的。在國內(nèi),只會照抄別人代碼,一點都不懂創(chuàng)新,凡事依靠別人,快下班就盯著表看的程序員是不少,這種人一般很難有什么前途。但是,優(yōu)秀的不斷進取的程序員也很多。由于國內(nèi)沒有象CMM這樣的軟件規(guī)范或者很少,所以這類優(yōu)秀的程序員不少都是干著系統(tǒng)分析員甚至PM的活,拿著程序員的工資。這類程序員雖然在起步時會吃很多虧,而且是主動找虧吃,然而幾年之后與前一種程序員的社會地位會出現(xiàn)明顯的分化。當(dāng)上進的程序員們作為PM進行商務(wù)談判的時候,前者還在各個公司里頻繁跳槽,跳來跳去都不滿意。有些扯開了,回到我們的話題。
日本的軟件規(guī)范與CMM有驚人的相似,其中至少有35%以上都是幾乎一模一樣的。最近經(jīng)濟不景氣,東京倒閉了160家軟件公司,這個數(shù)字是今年6月份的,還在不斷增加。這些公司紛紛搶灘上海,招收技術(shù)人員。如果去這樣的公司應(yīng)聘就要考慮清楚了,進去可以學(xué)到他們的規(guī)范和質(zhì)量控制,可是要想從程序員成為系統(tǒng)分析員或PM,比登天還難。往往一個程序員進去干了好幾年,對自己的那一塊熟的不得了,而對隔壁同事所做的東西一竅不通。拒傳華為正在嘗試CMM4(華為印度研究所已經(jīng)通過CMM4),對在華為工作的程序員們來說可謂福禍難料。當(dāng)然,已經(jīng)作到PM或QA或者熱愛CODING的朋友例外。需求分析本身也存在著時間分配的問題。第一遍需求分析花的時間會最長,分析員們在客戶的各個部門之間幾乎把腿都跑斷,把口水說干,就是為了確立一個初期的需求模型。所有的文檔將會提交給PM進行復(fù)審并簽字,不合格的打回重做。反饋表隨之將提交給客戶,第二遍第三遍等等等等接踵而來,與客戶反復(fù)討論和磋商,反復(fù)提交文檔和表格,目的只有一個,明確需求。當(dāng)PM最終合并了所有文檔并確立需求之后,最終生成的需求文檔將提交給客戶的各部門負責(zé)人簽字。這些文檔將作為合同的附件添加,以便在將來項目變更或者碰到重大問題時和客戶扯皮的重要依據(jù)。
需要說明的是,客戶并非都是蠻不講理,但是說實話,頗有無奈,國內(nèi)目前的項目大多數(shù)客戶為了不讓自己的錢白花,經(jīng)常變著法子提需求。在啟動階段明確需求并簽字,無論最終情況如何,一份詳盡的書面文檔可以解決很多口頭承諾或概念模糊的文檔帶來的許多問題。詳盡的需求分析有一個額外的好處就是對一些雙方都很陌生或者從來無人嘗試的領(lǐng)域?qū)⑹且粋€決定是否進行項目的判斷標準。有時候,這種大項目在簽單時雙方都沒有絕對把握保證可以出成果,一旦在需求分析階段發(fā)現(xiàn)難以逾越的技術(shù)難關(guān),就會放棄項目。典型的例子就是NMD洲際導(dǎo)彈防御系統(tǒng)。上世紀八十年代初美國搞星球大戰(zhàn)計劃,拖跨了蘇聯(lián)。大家對那段歷史有些含糊,很多人認為蘇聯(lián)人上了美國的當(dāng)。其實并不完全如此,蘇聯(lián)人的情報機構(gòu)無孔不入,并非那么容易上當(dāng)受騙。實際上當(dāng)時美國國防部已經(jīng)開始著手NMD系統(tǒng)軟件的需求分析,前后耗資數(shù)億美圓,耗時兩年,僅僅是做需求分析,終于發(fā)現(xiàn)存在著在當(dāng)時技術(shù)上無法達到的高度,隨后項目被放棄。
3.項目啟動
項目啟動要確定項目計劃,與客戶一起實施第一次項目審核,確認并對一些產(chǎn)品和服務(wù)向下包廠商下訂單。這個時候的PM會忽然發(fā)現(xiàn)有開不完的會,一天開三到四個會議是很正常的事情。這些會議有與客戶的會議,與下包廠商的,有團隊的,有公司高層的。團隊的會議主要是建立正式的團隊,提供團隊成員的角色和職責(zé),提供績效管理方法,向成員提供項目范圍和目標。與客戶的一個主要會議將是項目啟動會議。在這個會議上PM會與客戶確立正式的交流渠道,項目綜合描述,讓項目參與人員相互了解,建立以PM為核心的管理制度。還有一些零零碎碎的東西甚至包括辦公場地的大小,電話多少部,所有人的聯(lián)系方式等等都要在會議上確立,并做會議記錄。這都是些非常瑣碎的事情,聽起來婆婆***,卻是非常必要,缺一不可。大概就是所謂三軍未動,糧草先行吧。這時候,作為公司高層,應(yīng)該向全公司發(fā)表申明,正式給PM發(fā)布項目經(jīng)理任命書和項目授權(quán)書。這個動作雖然在別人看來有些形式主義,但是對提高PM本人的士氣和責(zé)任感是有很大助力的。
(網(wǎng)頁編輯:
秋月)