作者:thizhi
淺談PM
一.商務談判
1.作人的姿態(tài)
作人似乎跟商務談判不太有關系,很多技術人員相信PM需要的是本事,是如何做好一個項目,而不是會搞好關系弄的四平八穩(wěn)的人。隨著PM在中國的悄悄興起,越來越多的PM開始在老總的授意下參與商務談判,和銷售們一起打單子,這就比較實在的需要PM們?nèi)ゴ蛻舻男睦怼4蛻粜睦硇枰卸喾矫娴闹R,需要深度和廣度,然而,最重要的仍然是作人。如何放下架子,降低作人的姿態(tài),對從技術人員轉(zhuǎn)型的PM們來說,是至關重要的。
降低作人的姿態(tài)需要從多個方面去實施,最主要應該記住:人不可貌相,更不可以地位衡量。很多公司為了保持公司形象,會統(tǒng)一叫員工打扮的好看一點,看起來象個白領的樣子。然而,老板多半是沒有約束的。中國改革開放才二十年,很多有錢的老板實業(yè)家文化層次都不高,往往是當大學生們只會把屁股坐在板凳上肆意揮霍父母辛苦積攢的財富時,他們已經(jīng)在各地奔波,積累豐富的商業(yè)經(jīng)驗并對金錢,人生和社會的本質(zhì)有了充分的認識,形成了自己穩(wěn)定的思維框架。這些人,很多都是穿著舊舊的衣服,戴著破破的手表,說話的時候經(jīng)常會帶上三字經(jīng),鉆進上海的人堆里,搞不好你會把他當成民工。因為到他們所處的社會地位,已經(jīng)不需要任何華麗的外表來襯托自己的身份,他們有的是底氣。對PM來說,這是個非常危險的挑戰(zhàn)。雖然說項目在初期有意向時會對對方的人事和關鍵人物有一定的了解,然而大項目里能說的上話的人太多了。上海人最瞧不起的就是土氣,很多人談項目的時候看到民工或很俗氣的表現(xiàn)不免會皺皺眉頭,往往在皺眉頭的時候就失去了項目,也就是失去了市場和金錢。PM必須作到能與每一個層次的人交談,尤其是看起來比自己層次要低的群體,哪怕是公司里掃地的阿姨。只有作到謙虛謹慎,不擺架子,尊重別人,才會得到別人的尊重,才有機會贏得項目。鼻子比眼睛高的人只會把自己的鼻子撞扁。
2.豐富的知識面
光尊重別人還不足以贏得項目,準確的說是贏得對方關鍵人物的信賴。PM一般用不著陪客戶喝酒吃飯,那是銷售們的事情,但是PM和客戶討論問題可能是最多的。討論問題的時候就是機會,如何投其所好,是一大關鍵。金錢與美女依然是常規(guī)的敲門磚,然而這種傻瓜也知道的辦法人人都會去做。老板的關系也只是一個方面,如今的大老板,哪個沒有關系?同等條件下PM憑什么去勝過別人一籌?
我一個朋友(PM)打一個單子時,發(fā)現(xiàn)對方對什么都不太感興趣,費了很大力氣也找不到突破口。對方這個人非常順利,金錢地位美女樣樣不缺。他花了好多天和對方交談,以自己的博學逐漸取得了對方的信任。后來他隱約發(fā)現(xiàn)對方對數(shù)學和天文學的發(fā)展史有所涉獵,如獲至寶,回家花一個通宵的時間在網(wǎng)絡上搜索相關資料。第二天他根本不談項目的事情,只跟對方大談特談哥白尼,布魯諾,伽利略這些人的生平,整整吹了一天。對方點頭如搗蒜泥,態(tài)度和熱情都來個一百八十度轉(zhuǎn)彎,隔天他就拿到了單子。這是個經(jīng)典的戰(zhàn)例,誰能事先想到哥白尼會來幫助IT的人賺錢?這個PM靠的就是博學和由博學引申出的敏銳的感覺抓住了機會,讓客戶產(chǎn)生共鳴。客戶感覺他層次也很高,而且和自己有共通之處,信任度大大增強,把項目交給他放心。如今這種例子在商務談判中已經(jīng)屢見不鮮了。對PM來說,并不要求在各個方面都很精通,那是不可能的事情,只要PM對一些流行的話題和天文地理歷史各方面的知識有個大概的了解,在需要的時候能盡快的掌握,才有機會創(chuàng)造機遇和把握機遇。
3.強大的溝通能力
胸中有萬千墨水卻不知如何表達其實是比較少見的,但并非絕對沒有。每個人的人生軌跡都有所不同,思維受環(huán)境的影響也各有差異。包括象我們目前這個班級里的一些未來的MSE們,一定有比較內(nèi)向或者不太愛表達自己觀點的人,這些人比較被動,往往很難承擔起談判的重任。從今天開始,這類人就必須重新學習如何說話,如何大聲的爭論。溝通,并不僅僅是大聲說話,而是在表達自己觀點的同時發(fā)現(xiàn)問題并綜合整理加以解決。除此之外,溝通的能力與社會經(jīng)驗息息相關,與PM的見識聯(lián)系緊密。在日常生活中,PM就要多留心,多思考,當別人想到某個層次的時候要爭取比別人考慮的更深。當然,也有一些不夠踏實的朋友把溝通和吹牛當成了完全的一回事情,在和客戶交流的時候口若懸河的說一些不著邊際的話。這種人,碰到不懂,不太認真或者好奇心強的客戶是有一定市場的;而有水平,負責任的客戶往往會覺得這種人不可靠,一般不會把單子交給他。PM需要把握好這個度,吹是肯定要吹的,只是吹牛的時候一定要有基礎的去吹,對從來沒涉及過的領域或者根本不懂的東西輕易不要發(fā)表意見,挑選自己熟悉的方向合理的進行發(fā)揮,適當?shù)牧羯弦粌墒?,給對方高深莫測的感覺,效果最好。
4.優(yōu)秀的售前團隊
這個團隊一般是由總經(jīng)理發(fā)起并組建的,通常不指定PMP,對團隊的成員如SALES,PM,SA,ENGINEER們的團隊合作提出了比較高的要求。一般公司在接下一個單子進行到一定程度的時候,PM往往會尷尬的發(fā)現(xiàn)協(xié)議上銷售代表們對客戶的一些承諾是幾乎做不到或者根本做不到的事情。這種情況非常多,銷售的任務是拿下單子,我聽到的銷售們說的最多的就是“沒問題”或者“NO PROBLEM”,但是當我聽到客戶的要求和銷售的回答時我總是心驚肉跳,很不自然。銷售是非常辛苦的,為了建立客戶關系,尤其是空白的市場是很不容易的,往往為了一個單子會犧牲非常多。在這種情況下,和銷售進行協(xié)調(diào)自然而然的又落到了PM的頭上。在銷售和客戶做承諾之前,PM要主動的跟銷售交流,提供粗略的總體設計框架和技術難關以及能考慮出的工作量,而不是等出了問題再被動和銷售在老板面前互相推委責任。在組建團隊的時候,PM要根據(jù)團隊里每個人的素質(zhì)和任務進行因人置宜的信息傳遞。優(yōu)秀的售前團隊合作是接單的重要保障。
在商務談判的實際操作中,存在著各式各樣的問題,PM的職責和要求絕非以上幾點所能描述詳盡。根據(jù)環(huán)境,政策,人文,關系等各方面的不同情況,PM的不同成長經(jīng)歷,每個PM最終都會建立自己對商務談判的看法和經(jīng)驗。但是有一點可以肯定,這是PM成為PM的第一道關,也是最重要的一關。接不到單子,PM將失去存在的意義。與銷售有所不同,PM在該階段的任務除了接單,還要盡可能的搜集客戶關鍵人物的資料并與對方各個階層的負責人建立良好的客戶關系,以便在項目實施時充分調(diào)動資源。
二.啟動階段
1.項目的一些基本概念
項目三要素有多種版本,各不相同。實際操作中多分為范圍,成本與進度,其中最重要的莫過于范圍。我們把項目最終生成并提交給用戶的產(chǎn)品和文檔統(tǒng)稱為遞交件。談判的時候一定要確立遞交件的標準和要求,也就是范圍。盡管商戰(zhàn)的時候不可避免的客戶會不斷提高標準和要求,而承諾的款項卻不會有一分錢的增加。但是這個標準對每個公司來說都有一個底線,一旦超過了這個底線,那項目就肯定是虧的。除非是為了二期有利可圖或者是為了搞好關系,否則范圍超過底線的時候情愿不做,再厲害的PM在這種情況下也是無能為力。建立范圍需要的就是PM的多年的實戰(zhàn)經(jīng)驗,在大大小小的項目中用血淚換來的一些體會。在這個時候,很能體現(xiàn)PM與技術人員的區(qū)別。成本就是客戶答應付的款項,與我們的投入成本并不是一回事情。進度就不用多描述了。
項目如何成功?也有一些關鍵的因素。個人的理解也不盡相同,通常包括以下幾個方面:界定工作目標及工作任務;老板或高層的支持;優(yōu)秀的PM和開發(fā)團隊;充足的資源;良好的溝通;對客戶的積極反應以及適當?shù)谋O(jiān)控和反饋。這里要注意的就是資源和高層的支持。一個上規(guī)模的公司總是同時會有很多項目,可是再大規(guī)模的公司資源也不足以保證每個項目都能組建最合適的開發(fā)隊伍或擁有最好的環(huán)境。這時候各個團隊或者部門之間不可避免的會發(fā)生資源爭奪戰(zhàn),摩擦再所難免。這時候?qū)M的作人再次提出挑戰(zhàn)。除了高層對PM項目的重視程度,如果PM平時在公司與同事相處的好往往能使很多別人看起來很棘手的問題迎刃而解。相反,一個不會作人的PM由于人緣差,即使高層強壓別的部門或團隊配合,別人也會能拖就拖,延緩項目的進度和質(zhì)量。有時候,這種內(nèi)耗對項目和PM來說是毀滅性的。對客戶的積極反應也比較關鍵。一般來說PM已經(jīng)被項目里大大小小的事情搞的筋疲力盡,要PM去主動要求客戶配合是很吃力的事情。然而,這個時候,越是困難,越是覺得累,越是要去主動??蛻敉膊皇翘貏e的積極,主動與客戶聯(lián)系溝通和測試能及早發(fā)現(xiàn)問題。從風險控制的角度來說,問題發(fā)現(xiàn)的越早,風險越小,損失也就越小。積極的態(tài)度可以帶動客戶的積極性,在項目完工的時候,客戶對你的感激往往是難以用語言描述的,這對以后接單或者做二期三期會打下良好的基礎。因為在和別的新客戶談判的時候,新客戶自然會找你的老客戶了解情況,這時老客戶隨意的一句話頂?shù)纳夏愫苜M心的十句。
項目具有商業(yè)行為的幾個重要特征,有消費源,有參與者,有成功關鍵因素,有財務目標,有風險。
2.啟動階段的主要任務
根據(jù)PMI的解釋,接單之后項目自然轉(zhuǎn)入啟動階段。啟動階段PM的主要任務是率領總體架構設計師和系統(tǒng)分析員收集盡可能詳細的數(shù)據(jù),確立盡可能詳細的需求,進一步確立詳細的項目范圍,預估資源,確立其他方案并獲得進入下一階段的批準。在這個階段,隨著需求分析的深入,PM也開始在公司內(nèi)部進行人員挑選和資源爭奪,著手組建自己的項目團隊。項目即將進入計劃階段。
在收集完數(shù)據(jù)之后,PM要和客戶開始明確項目的大小,成本,規(guī)格,期限等重要特征并將其寫入合同文本,同時準備內(nèi)部的包括預算,衡量標準等文檔,建立項目的評估標準。接下來就是需求分析。由于專業(yè)的原因,我們這里僅討論軟件工程項目的需求分析(以下簡稱需求分析)。
需求分析的主要參與人員有PM,總體架構設計師,系統(tǒng)分析員,熟悉業(yè)務流程的客戶。PM統(tǒng)領的團隊這時候還不是真正的開發(fā)團隊,我們叫做前期團隊。隨著需求分析的逐步深入,新的團隊成員不斷加入,啟動階段結束的時候正式的團隊將建立。對一個已經(jīng)啟動的項目來說,需求分析直接決定了項目的成功與失敗。最初的需求體現(xiàn)在客戶的工作說明書或招標文件及附件上。這種需求一般比較含糊,無法體現(xiàn)客戶真正的需求。前期團隊要根據(jù)自己的經(jīng)驗和客戶溝通并引導客戶進入正軌。有時候客戶會很不講道理或者思路僵化,就要求按照他的思維去定一些明顯錯誤的需求。這個時候團隊成員要耐心和客戶舉事實,談經(jīng)驗,講道理,用圖形或模型等直觀的方式將需求描述出來,比如常見的數(shù)據(jù)流圖等。所以說,爭論再所難免,客戶有時候會吹胡子瞪眼睛拍桌子甚至會說“這個東西不要你們做了”之類的話。PM此時除了要親身參與需求分析綜合整理文檔之外,還要處理好團隊成員與客戶的關系,確保關系不會惡化到無法收拾的地步。只要PM盡力約束團隊中的成員,這個度還是很容易控制的。
對快速開發(fā)和疊代開發(fā)來說,需求和實現(xiàn)往往是同步進行,開發(fā)速度快是一大優(yōu)勢。對有相同或類似模式的小項目來說采用快速開發(fā)或疊代開發(fā)是很合算的做法,時下流行的極限編程就是針對這方面建立的思維模式。然而,大中型項目中有太多不一樣的需求和模塊。如果不是因為項目有差異,那么市場上就只有產(chǎn)品而沒有項目了。所以,大中型項目的需求要認真仔細的去做。我們要討論一個問題,究竟應該在需求分析和總體設計上花費多少時間?我們熟悉的瀑布開發(fā)模式基本上分需求分析,總體設計,軟件開發(fā),測試等幾個階段,然而究竟應該在前兩個階段上花多少時間卻沒有定論。實際項目操作的例子表明,分析設計的時間越長,需求設計做的越詳細,測試的時間就越短,返工率越低,風險也越小,成本越容易得到控制。而需求分析和總體設計沒有做好就急忙上馬進行開發(fā)的項目在項目初期進展順利的時候問題不大,到了項目后期和測試階段一些潛伏期比較長但是破壞作用比較大的問題就會凸顯出來,造成返工,延長測試時間。所以與其把問題堆積到緊張的項目后期,不如把時間多花點到需求分析和總體設計上?;A夯實了,金字塔就容易造了。
在日本公司打工的程序員們可能都知道,小日本的軟件規(guī)范非常厲害,他們花在需求分析和總體設計上的時間通常在40%到50%左右,遠遠超過國內(nèi)軟件項目的實施,效果也要強的多。他們總體設計的規(guī)范甚至詳盡到某個過程該如何判斷,確立什么樣的條件,換言之就是把什么時候該如何寫(if...else)語句都幫程序員定好了。在這樣的軟件規(guī)范下,程序員更象是裝配流水線上的工人,對一個模塊或技術熟悉到一定程序就變成了完全的重復性勞動。所以在日本和歐美經(jīng)常會有程序員是低級工作一說,很多人不明就里,對國內(nèi)程序員也照搬,對國內(nèi)的程序員來說是很不公平的。在國內(nèi),只會照抄別人代碼,一點都不懂創(chuàng)新,凡事依靠別人,快下班就盯著表看的程序員是不少,這種人一般很難有什么前途。但是,優(yōu)秀的不斷進取的程序員也很多。由于國內(nèi)沒有象CMM這樣的軟件規(guī)范或者很少,所以這類優(yōu)秀的程序員不少都是干著系統(tǒng)分析員甚至PM的活,拿著程序員的工資。這類程序員雖然在起步時會吃很多虧,而且是主動找虧吃,然而幾年之后與前一種程序員的社會地位會出現(xiàn)明顯的分化。當上進的程序員們作為PM進行商務談判的時候,前者還在各個公司里頻繁跳槽,跳來跳去都不滿意。有些扯開了,回到我們的話題。日本的軟件規(guī)范與CMM有驚人的相似,其中至少有35%以上都是幾乎一模一樣的。最近經(jīng)濟不景氣,東京倒閉了160家軟件公司,這個數(shù)字是今年6月份的,還在不斷增加。這些公司紛紛搶灘上海,招收技術人員。如果去這樣的公司應聘就要考慮清楚了,進去可以學到他們的規(guī)范和質(zhì)量控制,可是要想從程序員成為系統(tǒng)分析員或PM,比登天還難。往往一個程序員進去干了好幾年,對自己的那一塊熟的不得了,而對隔壁同事所做的東西一竅不通。拒傳華為正在嘗試CMM4(華為印度研究所已經(jīng)通過CMM4),對在華為工作的程序員們來說可謂福禍難料。當然,已經(jīng)作到PM或QA或者熱愛CODING的朋友例外。
需求分析本身也存在著時間分配的問題。第一遍需求分析花的時間會最長,分析員們在客戶的各個部門之間幾乎把腿都跑斷,把口水說干,就是為了確立一個初期的需求模型。所有的文檔將會提交給PM進行復審并簽字,不合格的打回重做。反饋表隨之將提交給客戶,第二遍第三遍等等等等接踵而來,與客戶反復討論和磋商,反復提交文檔和表格,目的只有一個,明確需求。當PM最終合并了所有文檔并確立需求之后,最終生成的需求文檔將提交給客戶的各部門負責人簽字。這些文檔將作為合同的附件添加,以便在將來項目變更或者碰到重大問題時和客戶扯皮的重要依據(jù)。需要說明的是,客戶并非都是蠻不講理,但是說實話,頗有無奈,國內(nèi)目前的項目大多數(shù)客戶為了不讓自己的錢白花,經(jīng)常變著法子提需求。在啟動階段明確需求并簽字,無論最終情況如何,一份詳盡的書面文檔可以解決很多口頭承諾或概念模糊的文檔帶來的許多問題。
詳盡的需求分析有一個額外的好處就是對一些雙方都很陌生或者從來無人嘗試的領域?qū)⑹且粋€決定是否進行項目的判斷標準。有時候,這種大項目在簽單時雙方都沒有絕對把握保證可以出成果,一旦在需求分析階段發(fā)現(xiàn)難以逾越的技術難關,就會放棄項目。典型的例子就是NMD洲際導彈防御系統(tǒng)。上世紀八十年代初美國搞星球大戰(zhàn)計劃,拖跨了蘇聯(lián)。大家對那段歷史有些含糊,很多人認為蘇聯(lián)人上了美國的當。其實并不完全如此,蘇聯(lián)人的情報機構無孔不入,并非那么容易上當受騙。實際上當時美國國防部已經(jīng)開始著手NMD系統(tǒng)軟件的需求分析,前后耗資數(shù)億美圓,耗時兩年,僅僅是做需求分析,終于發(fā)現(xiàn)存在著在當時技術上無法達到的高度,隨后項目被放棄。
3.項目啟動
項目啟動要確定項目計劃,與客戶一起實施第一次項目審核,確認并對一些產(chǎn)品和服務向下包廠商下訂單。這個時候的PM會忽然發(fā)現(xiàn)有開不完的會,一天開三到四個會議是很正常的事情。這些會議有與客戶的會議,與下包廠商的,有團隊的,有公司高層的。團隊的會議主要是建立正式的團隊,提供團隊成員的角色和職責,提供績效管理方法,向成員提供項目范圍和目標。與客戶的一個主要會議將是項目啟動會議。在這個會議上PM會與客戶確立正式的交流渠道,項目綜合描述,讓項目參與人員相互了解,建立以PM為核心的管理制度。還有一些零零碎碎的東西甚至包括辦公場地的大小,電話多少部,所有人的聯(lián)系方式等等都要在會議上確立,并做會議記錄。這都是些非?,嵥榈氖虑?,聽起來婆婆***,卻是非常必要,缺一不可。大概就是所謂三軍未動,糧草先行吧。
這時候,作為公司高層,應該向全公司發(fā)表申明,正式給PM發(fā)布項目經(jīng)理任命書和項目授權書。這個動作雖然在別人看來有些形式主義,但是對提高PM本人的士氣和責任感是有很大助力的。
三.計劃階段
1.定義結構分工結構圖(WBS)
啟動階段結束后,項目進入計劃階段,也就正式進入實施。這里概念可能有些不太對頭,其實是翻譯的緣故,反正大家明白意思就行,不用拘泥于字面。WBS是一組要提交的項目元素,用來組織定義項目的總體范圍,具體包括從工作內(nèi)容,資源,成本角度考慮項目范圍;建立一套系統(tǒng)所需要的分層工作結構;把項目分解成易于管理的幾個細目,這概念有些模糊,其實跟資源管理器里分目錄是一回事情??梢哉f,WBS是計劃階段的核心。WBS會詳細的分到遞交件,包括給自己人用的項目使用的過程文件,給客戶用的模塊和說明文檔,完成每個細目的標準以及如何把這些細目的責任分配到具體的個人。WBS有縮進式和樹狀式,我這里也沒辦法畫圖,大家參考一些項目管理的書籍,里面有詳細介紹。我整個文章只挑我覺得需要注意的地方,如非必要,對技術細節(jié)或者工具使用不做詳細介紹。WBS的細目并不需要分解到同一水平,最下面的細目叫做工作包,分包的依據(jù)是個人的責任和可信度,也就是說到每個人頭上的任務是否能落實,是否有把握完成;還有就是準備對項目進行控制的程度,程度越深,WBS樹也就越深。由于WBS是實用性的東西,根據(jù)個人理解也不一樣,所以一個項目可能會有幾個正確的WBS,看PM的需要和最適合當前團隊狀態(tài)的進行選擇。
WBS的定義還是很麻煩的。PM要召開團隊進行討論,向成員提供與項目相關的所有詳細資料,并把WBS樹分解到二層三層。然后要花上一段時間讓成員進行頭腦風暴式(BRAINING STORM)思考,制訂工作產(chǎn)出和相應人員的職責,記錄每一個工作包的完成標準。在頭腦風暴式思考時,會有很激烈的爭論,PM要協(xié)調(diào)關系,調(diào)節(jié)氣氛,從自己能考慮到的各個角度旁推側敲,提示成員的思維角度和方向并加以總結。盡管很麻煩,制訂WBS仍然是非常值得的。如同需求分析一樣,WBS準備的越充分,編碼的進度越快。
2.風險管理
既然是商業(yè)行為,那么項目的風險必然存在,相信閱讀這個帖子的朋友不少人都經(jīng)歷過或大或小的風險。有些風險很容易解決,有些風險則大大損害利益。不論什么樣的風險,能避免盡量避免,所以有必要對風險進行管理。由于風險的不可預知性,風險管理難度很大,概念也很難講清楚,只能從一些可行的角度去分析,進行管理。
首先要識別風險。這是個難度很高的活。PM要先召開風險識別會議,這個會議面向公司,高層,跨部門的有經(jīng)驗的人都將參加。然后審核由項目小組生成的風險清單并與重要成員進行風險溝通,檢查一些重要的風險源如WBS,成本(時間)預估,人員計劃,采購管理等等。最后就要用到PM本身在以前類似項目中得到的經(jīng)驗教訓。
識別之后要進行分析。我們可以進行粗略的量化分析(精確分析是不可能的事情)。有經(jīng)驗的人可以一起參加討論,把提交出來的風險進行分類。首先按發(fā)生的可能性分,一般分成高,中,低三個級別,雖然很勉強,但是好歹也有個量化了;然后按耗去的成本分,也是高,中,低三級。我們可以把這兩種類別的三個級別進行組合,碰到可能性也高,成本也高的風險就定位為不能接受。碰到這種風險只好讓客戶修改需求或者增加風險預留成本,否則一旦虧起來不是虧一點點,有可能賠的很厲害。高和中,中和中的搭配都是屬于高風險,中和低,低和低搭配屬于低,高和低搭配屬于中。
針對出現(xiàn)的可能性,需要采取一些手段降低風險。到目前為止也沒有一個定論說有絕對好的方式,只能盡其所能的避免。有幾種方法可以考慮,第一種是將風險納入項目管理計劃并指定負責人,由外部人員定期檢查項目風險,一旦風險發(fā)生,執(zhí)行風險管理計劃;第二種是保險,這種屬于風險轉(zhuǎn)嫁;第三種方式有點奸,不過最保險,就是把客戶拖下水,讓他們一起參與風險管理,呵呵,到時候就好說話了:)
風險管理作為項目計劃之后,PM需要更新WBS,修改日程計劃和更新風險管理計劃。
風險預留通常是成本的8%。
3.預估
預估是從量化的角度對項目進行評估,主要包括工作量,任務期限,人力,設備,材料,成本等,要注意預估不是財務策略或報價。
預估其實并不是一次性工作,在整個項目過程中,預估始終需要。預估似乎沒什么特別需要提的地方,每個PM接到項目的時候自然會有預估,在項目發(fā)生變更或進入下一階段時也會預估。預估的作用主要還是讓PM作到心中有個底,安排計劃時不至于毫無頭緒。
4.進度計劃
進度計劃就是一個模塊或功能要寫多長時間,PM安排個日期,設立里程碑,叫程序員們不能偷懶。進度計劃是從WBS提取過來的。對PM來說,合理的安排進度計劃對項目控制和激勵團隊士氣有著很大的作用。對程序員來說,進度計劃毫無疑問是噩夢。
顯示進度計劃一般有先后順序圖,甘特圖和里程碑圖表。上回邵衛(wèi)老師講課,推薦的工具是m$的PROJECT,這個工具我還不會用,因為沒時間去摸索。我的頭倒是用的很溜了,近一個月來他就用這個PROJECT畫了一個又一個的里程碑圖,不停的折磨我和同事的神經(jīng)。我們一般都是一邊開發(fā)一邊做UNIT TEST,效果上來看,因為有強大的時間壓力,效率上比之前確實要提高不少,可是我們也只能結結巴巴的趕完進度。由于TEAM里人少,我們都是一個人做幾個人的活。我每天早晨六點多出門,經(jīng)過將近兩小時顛簸,八點多點已經(jīng)坐在位子上,中午吃15分鐘的飯,干到晚上八點下班,到家吃完飯往往已經(jīng)11點了。一個多月我從來沒吃過早飯,沒有睡過六個小時以上的懶覺。雖然強大的壓力使我們能在短時間內(nèi)掌握盡可能多的技能,開發(fā)更多的模塊,但是對我們的情緒也是有很大的影響。所以說,項目里程碑是一把雙刃劍,合理安排才能既促進效率也不至于打擊士氣。團隊成員士氣的逐級衰落會給項目后期的開發(fā)帶來難以估計的影響,進度將會大大延緩。關于PM和團隊的問題我們后面會講到,這里我先祥林嫂一把,然后跳過。
里程碑圖表的特征是任務,成員和時間,任務和成員用文字標志,時間用數(shù)字描述并輔助以圖線跨度,象階梯一樣非常形象,一目了然。管理起來非常方便,完了的打個鉤就可以了。
網(wǎng)絡邏輯圖是表示任務和邏輯關系的示意圖,可以用先后次序表示,也可以用關鍵路徑表示。其實把各個活動劃分為1,2,3,4等階段,每個階段包括小活動1.1,1.2,2.1,2.2,2.3,2.4,3.1,3.2,3.3,4.1,4.2等,日程計劃也分四種,一般只提到從前向后和從后向前兩種。從前向后的概念就是某項活動必須相同或晚于直接指向這項活動的的所有活動的最早結束時間的最晚時間。有些繞口,我們打個比方:2階段指向3階段,那么2階段里的4個子階段也都指向3。假設2.1結束時間為1月12日,2.2結束時間為1月22日,2.3結束時間為1月15日,2.4結束時間為1月20日,那么,2階段中最晚的結束時間是2.2的1月22日,所以在3階段中的3個子階段3.1,3.2,3.3的最早開始時間都不能早于1月22日。至于從后向前的例子大家自己去推吧,我就不舉了,剛才幾個123打的我累死了:)
項目經(jīng)常需要調(diào)整進度。在不改變項目范圍的情況下,調(diào)整進度有幾種方法:利用快速跟蹤手段來改變?nèi)蝿臻g的關系;將串行的任務改成并行;改變工作方法(可能改變WBS);改變?nèi)掌谙拗?,使關鍵路徑上的任務開始或結束的更早。雖然方法多樣化,在我看來只有一條,就是拼命的壓榨程序員的勞動力。如何壓榨,還是個技巧。如前面所分析的,需求分析恨不得多分點時間給它,壓需求是不太可能;測試階段后期接近完工,羅里巴唆的事情一大堆,忙都忙不完,那時候PM一門心思提前/按時完工,好收錢,壓那段時間似乎也不太可能。說來殘酷,最能壓的還是CODING,編碼階段往往是壓縮重點,總之大家埋頭苦干就是了,大項目壓縮的時候程序員吃喝拉撒都在公司是很正常的事情,相信不少人都有很深的體會,這里傷心事情也就不提了。只是我總結一下,讓未來的PM們有壓榨后來人的依據(jù),呵呵。測試前期也可以適當?shù)膲阂粔海菚r候人剛完工,都比較懶散。國內(nèi)一般企業(yè)規(guī)模都不大,沒有專門的質(zhì)量控制部門,所以質(zhì)量保證和測試往往就是程序員或PM本身。其實質(zhì)量保證和測試人員的人數(shù)和素質(zhì)都應該要高于程序員。在日本和CMM實施的公司里,編碼壓縮是很容易實現(xiàn)的事情,因為那些程序員真的是技能熟練的裝配工人,壓起來方便的很。他們這樣培養(yǎng)人的目的或許就是為了壓縮吧?!
四.控制和執(zhí)行階段
1.軟件開發(fā)
實在沒什么好說的,也是大家最不愿意談的,平時在公司里談的已經(jīng)夠多的了,還要在這里受我嘮叨。需要提醒的依然是團隊合作精神和完善的文檔管理制度。SOURCESAFE這些工具有時候還是有必要使用的。經(jīng)??吹接腥苏f天才程序員不寫注釋什么的。我相信有這種天才程序員,因為我碰到過幾個。我愛人公司里也有一個,他們的一套產(chǎn)品核心代碼就是這個人寫的,4年過去了,周邊代碼換了好幾茬,核心算法始終沒換過,可惜這小子跟了李洪痔,如今已經(jīng)不知所蹤了。但是他的代碼似乎也要有點注釋的,沒有注釋過段時間再天才的程序員也不能保證他是最有記憶力的。而且,對一個項目的編碼來說,靠一兩個人打天下如今是不可能了。別人的公司都是團隊,兩人智慧勝一人,這頭還在靠一個天才支撐門面,實際上市場可就別人搶了去,那時候再天才也沒用了。編碼的時候講究技術公開,程序員不要藏著掖著,對大家沒好處,PM要想辦法調(diào)動大家創(chuàng)新思維的積極性,營造良好的技術討論氛圍,碰到技術難關的時候就容易攻破了。
有個問題需要單獨對還沒有PM覺悟的程序員說,其實是在調(diào)研的時候就定了的,就是使用什么樣的開發(fā)工具。沒有經(jīng)驗的程序員往往會拿著C++或者JAVA的資格證書或者擁有一兩個開發(fā)工具的一些經(jīng)驗而得意洋洋。其實老板和PM根本不看重這個,他們關心的是使用什么樣的工具能盡快的達到目的。管你什么C++,DELPHI,PB還是JAVA,只要能做的出來,VFP都可以用。我舉這個例子并非說不看中工具,而是提醒想轉(zhuǎn)型為PM的程序員,第一要把工具當作工具,而不要被工具套進去,鉆研一些一輩子都用不上的技術;第二要掌握的并非是單獨的一個工具,而是流行的程序設計的思想,以及在最短時間內(nèi)掌握一門陌生工具的能力。只有建立了這樣的思維,才有可能轉(zhuǎn)為PM,否則一輩子都是技術工人,最多就是個技術總監(jiān)。
2.變更
對任何項目,變更無可避免,無從逃避,只能去積極應對,這個應對應該是從需求分析就開始了。對一個需求分析做的很好的項目來說,基準文件定義的范圍越詳細清晰,用戶跟PM扯皮的幌子就越少。而需求沒做好,基準文件里的范圍含糊不清,被客戶抓住空子搞你一下是非常頭疼的事情,往往要付出無謂的犧牲,有時候甚至非?;鸫?。
需求做的好,文檔清晰又有客戶簽字,那么后期客戶提出的變更就超出了合同的范圍,需要另外收費。這個時候千萬不能手軟,并非要刻意賺取客戶的錢財,而是不能養(yǎng)成客戶經(jīng)常變更的習慣,否則后患無窮,維護的成本會讓PM吃不消。在客戶提出變更請求時,要建立變更申請登記表和變更申請表,并讓客戶簽字。當然,有時候一些不是非常關鍵的模塊PM也不至于一點不講情面,該賣面子的時候還是要賣,尤其是當著對方領導的面,千萬要賣面子,但是也別賣的太干脆,不要讓他們得到的太容易。
需求做的不好,客戶抓住漏洞或者非常不講道理,麻煩就大了。有時候爭論會很厲害,到非常白熱化的地步,PM與客戶代表幾乎溝通不了。PM在客戶關系和短期利益兩方面難以取舍,一般都是向客戶妥協(xié),最終形成惡性循環(huán)。這種情況非常難辦。一般這種情況都是到了項目后期,做重大的更改幾乎是不可能的事情,如果白做就要虧錢。而這個時候如果PM跟對方高層的人關系搞的定,可以透過對方高層把事情壓住。然而由于已經(jīng)到后期,客戶代表不會輕易更換,對方這次沒有改成,必然心懷不滿,下回在別的模塊依然會找麻煩或者在談二期的時候動動手腳,都是很讓PM傷腦筋的事情,這方面目前還沒有什么好的解決方法,所以盡可能的做好需求比什么都重要。相對需求來說,什么WBS,風險管理,計劃進度都是扯淡,需求做好了,一帆風順。還有一種辦法就是裝可憐,要裝的非常的象,在對方的領導面前裝,而且不能讓人看出是裝的樣子,要讓你自己都覺得你自己是真的可憐,那么就算這次客戶硬是要求改了,下回他也必然不好意思再叫你改。其實人心都是肉長的,如果可能的話,我還是不贊同使用一些手段的,但是有時候客戶非常難以在短時間打動而工期又將接近,這種情況下就要靠PM耍一些手段了。各人有各人的方式,八仙過海,各顯神通吧。
PM在變更管理中需要做的是分析變更請求,評估變更可能帶來的風險和修改基準文件。
3.質(zhì)量控制
大公司有質(zhì)量管理部門(QA),QA的成員基本上都是由非常有經(jīng)驗的PM轉(zhuǎn)型過來的老狐貍,是老總接班人的有力爭奪者。一個QA會管理多個項目,有時候甚至會親身參與。PM和QA有些象貓和老鼠,不停的通過報表傳遞一些心照不宣的假數(shù)字。QA對PM的工作最終是有評定的:A級表示總體在控制下;B級表示當前在控制下;C級表示有顯著問題;D級表示有重大問題。如果PM得了個D,那可不太妙,不但世界級的QA會每個月要收報告,地區(qū)QA會一個星期找來面談一次,訓一頓。得到A的PM是很逍遙的,基本上不會有人來過問。在沒有QA的公司,質(zhì)量控制只能由經(jīng)過授權的團隊成員進行,效果就要差的多了。
質(zhì)量管理貫穿整個項目周期,詳細的可以參見CMM。
4.成本管理
PM經(jīng)常通過控制進度和預估來控制成本。PM必須經(jīng)常問自己,項目已經(jīng)到了什么階段?完成了多少?花費了多少?完成時成本是多少?掙值法的術語不少,象BCWS,BCWP,ACWP,但是關系比較簡單,大家參閱一下相關資料,這里不再羸述??傊琍M要管理好成本,注意節(jié)約,但并非是拼命剝削程序員,該花的還是要花。
五.結束階段
1.項目結束
項目結束時,PM要將最終系統(tǒng)方案提交給用戶,完成項目所有的提交件,收集項目全部信息并結束項目,完成或終止合約,簽署項目結束的相關文件。
項目結束意味著可以收錢了。PM辛苦了那么多,終于可以高興一下了,收到最后一筆款項,意味著遞交件的移交和團隊的解散,項目也轉(zhuǎn)入維護階段。不過收錢未必代表著賺錢,要看項目是否按時完工。一般來說,提前完工的項目很少,但是能賺大錢;按時完工的賺小錢;延期的要賠錢。一個人首次承擔PM,如果沒有人帶,多半會失敗。失敗沒什么,所有的PM(注意是所有,不是幾乎所有)都失敗過,然而失敗會成為教訓和經(jīng)驗,推動你繼續(xù)前行。在美國,每年至少有40%的項目無法實施被擱淺。只有在項目中和生活中不斷磨練,培養(yǎng)自身素質(zhì)和作人的基本準則,才能成為賺大錢的PM。
2.項目完工會議
項目結束時,依然要開會,不過少多了。一般跟客戶要開一個,主要是確定所有的提交件都已經(jīng)被接收,對突出的個體進行表揚,對外宣傳成功案例,標志并記錄項目的正式結束。這時候開會很輕松,目的也很明確,做完了大家好聚好散,或者以后有機會再合作。
團隊要解散,內(nèi)部會議肯定是要開的。也沒什么好廢話的,該表揚就表揚,該發(fā)多少獎金就發(fā)多少獎金,畢竟大家都累死累活的干了那么長時間。項目結束請客戶出去泡溫泉時PM們千萬別忘記了辛苦為你工作的
程序員和工程師們,當然,如果他們不愿意看到你的臉那么你就折現(xiàn)發(fā)到他們的存折上去,正好讓他們回家好好休息休息。這樣下一個項目需要他們的時候他們才會為你賣命。說出來獎金發(fā)出去似乎你損失了,其實你賺大了。
3.客戶滿意度
形勢也好,歷史記錄也好,盡管項目結束的時候客戶滿意度PM心中已經(jīng)有底了,但是還是有必要向客戶各個層次的項目代表發(fā)一張信息反饋表,收回的信息將反應客戶的滿意度。其實真正體現(xiàn)客戶滿意度的地方有很多。第一就是付錢付的快,如果客戶不滿意,一分錢藏在他牙縫里你也很難摳出來;第二就是二期,二期非常非常重要,因為這里已經(jīng)是屬于一種無銷售成本的項目,又有一期的經(jīng)驗,可以說二期的錢是最好賺的。這中間的感覺,只有經(jīng)歷過的人才明白。
六.團隊管理
1.建立團隊
挑選人材依然是PM頭疼的一個大問題,有時候一個在別的項目里很優(yōu)秀的人材,挖過來未必能適應。所以,PM還是要拓展知識面,培養(yǎng)自己的敏銳度,因人置宜,才能挑選對自己項目有幫助的人材,才能真正對項目起作用。
2.核心程序員
任何項目都有核心程序員。核心程序員背負著很重的責任,平時要和普通程序員一樣沒日沒夜的加班,碰到重大的技術難關更是整個人撲在電腦上,熬上幾個通宵是家常便飯。常有人抱怨程序員工資高,真想請這些人來嘗試一下程序員的工作,看看他們付出的精力是否配那份工資。前面說過的,中國的程序員不同于日本和歐美,他們很多人參與了系統(tǒng)分析和建模,對腳踏實地工作的程序員來說,這份工資實在是委屈了。看看行業(yè)里努力工作的程序員們,有幾個不是頭發(fā)花白,高度近視,未老先衰的?上星期五晚上我加班到10點,隔壁公司的一個技術總監(jiān)特意留下來跟我說:“我們這種人,前半生拿命去換錢,后半生拿錢來買命!所以,工作的時候一定要注意勞逸結合!”道理我并非不懂,我也不想透支自己的身體,但是我有選擇么?
PM要特別注意愛護核心程序員,尤其是他們的生活困難和精神狀況,有時候,他們耍性子或者不合作PM要妥協(xié),要從自己身上找原因。其實在國內(nèi),我還沒碰到過敢這么做的程序員。相對PM來說,程序員是絕對的弱勢群體,沒有任何發(fā)言權,幾乎可以說PM想怎么做,想怎么改,程序員就要付出一切代價去達到目標。
3.獎勵與懲罰
獎勵是不用說的了,相信所有閱讀我這篇文章的PM,未來的PM,程序員和未來的程序員們都知道如何去做,這里只說懲罰。懲罰似乎很不好辦,其實對PM來說再簡單不過。一個程序員把模塊做砸了,罵,扣工資,開除都不頂用,在項目沒完成之前不是追究責任的時候。一個優(yōu)秀的PM應該給他一個機會,當作沒事一樣讓他去做別的事情,把他做砸的事情交給別人去做,就是對他最大的懲罰。這樣既能激勵他上進又不會讓他尷尬,他會感激你一輩子,因為你給了他一次機會。而PM挑選這個人進團隊并給予他責任,他沒有完成,PM本身就有責任,應該自我檢討。
4.管理沖突
無論團隊里的成員相互之間很熟悉還是不熟悉,沖突再所難免。在發(fā)生沖突的時候PM要牢記以公開,公正的方式處理沖突,不能因為其中之一是自己的小姨子就干掉另一方;處理事情的時候必須對事不對人。有時候,成員與PM之間也會有沖突,一般情況下都可以幾乎肯定是PM的責任,因為很少有成員敢吃豹子膽來反抗自己的頂頭上司。這時候PM除了要及時的做自我檢討之外,要有寬廣的心胸。絕對不可以利用職權打擊與自己有矛盾的成員,否則團隊里所有成員都會心寒,項目的質(zhì)量將會大打折扣。如果他確實不對,也要忍住,等項目完了慢慢收拾他不遲。PM的心胸還表現(xiàn)在不能嫉賢妒能上。當公司高層越級表揚團隊某成員時,你應該高興和光榮,而不是陰險的想著下次如何把這份光環(huán)戴到自己的頭上。實際上在國內(nèi)的很多PM都是這么做的,邀功的時候全是他的,有了責任都在下面。這種PM永遠做不大,遲早會被淘汰。
5.承擔責任
項目是有風險的,肯定會有失敗的部分甚至整個項目失敗。雖然說每個人都在WBS里定下了責任,在項目里程碑里都有任務。但是當整個項目危機來臨的時候,PM要勇于站出來,承擔起全部的責任。這是做人的方式,也能讓你贏得團隊所有成員的尊敬和愛戴。往往在這個時候我們才能體會到什么叫團隊合作精神,就是大家齊心合力,共渡難關。
6.資源爭奪
前面提到過,資源有限,如何爭奪而不傷和氣是對PM的另一個挑戰(zhàn)。因為整個公司是一個大團隊,內(nèi)耗的厲害對PM沒有好處。當然,擺平各路神仙是不可能的。但是一個健康的公司必然有健康的管理制度和優(yōu)秀的成員。物以類聚,人以群分,PM應該在公司里主動結交志氣相投的朋友,在拿到項目時這些朋友會給你很大的幫助,當然,在這些朋友需要你幫助的時候你也應該懂得怎么做。如果你性子很怪,很難找到脾氣相近的朋友,沒關系,交幾個酒肉朋友也不錯。我們公司數(shù)據(jù)統(tǒng)計,一個人在公司的人緣和他在公司請客吃飯的次數(shù)成正比。PM一定要盡心盡力的為公司打算,這樣在需要高層支持的時候才會獲得鼎立相助,而總是為自己打小算盤的PM是不長久的,總會被別人看穿的。
后記:寫到這里實在寫不動了,控制階段的合約管理和項目跟蹤沒有寫進去,一方面我不熟悉,另一方面讓大家自己去做一些思索。其實前天我就在構思這篇文章了,本來還想把CMM也寫一篇的,如今看來太高估自己的能力了,時間實在是不允許。抬頭一看,東方已露魚肚白,外面隱約傳來麻雀的嬉叫聲。今天我還要去跟人談祖房子的事情,明天還要上課,星期一開始又要沒日沒夜的加班,多想睡個懶覺呀!
上回鄧老師的課,我再次跟大家說聲對不起,我的發(fā)言打擾了大家。作為非MSE成員,我的舉動實在是有些過火。但是有一點我還是要申明,我不是為了我自己,我也想為大家好。
我看到了在課程討論版面里關于我們課程太少,不如其他院校和課程安排不透明的討論。因為上次的教訓,我一直沒有表態(tài),擔心會再惹麻煩。今天帖子寫完,實在是忍不住想說幾句了。我覺得課程安排不透明是復旦老師的責任。至于我們課程太少,不如其他院校的問題我覺得不是很有必要提。課程是死的,人是活的。再好的條件也有不成材的,再惡劣的條件也有脫穎而出的,更何況我們的條件并不比別人差很多。只要我們努力,我們不會輸給清華的人。我一直不覺得在光坐在課堂里聽課能學到什么真本事,MSE們?nèi)绻话褜W到的知識與自己的實際工作融合貫穿并領會其中的思想,那這個文憑拿到手也沒用??幢究平逃椭懒耍蠹叶际沁^來人,如今也在工作,你們感覺當初在學校里學的知識在真正上了工作崗位之后有多少能派上用場?好象很多東西都要重新來過。這就是MSE相對普通研究生的優(yōu)勢所在,因為你們一邊工作一邊學習,理論與實踐相結合,對知識的掌握會很快,而不是變成考試和拿文憑的工具。我今天看到亞聯(lián)招聘的信息,上面根本不提高學歷,而是換成了有本事。什么叫有本事我無法定義,但絕對不是一紙文憑能代替的了的。文憑只是個輔助和敲門磚,可以保證你進一個好公司三個月,三個月后你的命運如何還是取決于你能做多少事情。我就是高中畢業(yè),大學退學了兩次,無論計算機還是英語連個象樣的證書都沒有。但是無論你是清華,北大,復旦還是交大的MSE,兩年后你畢業(yè)的時候你有把握在崗位競爭或商務談判中擊敗我嗎?
我們需要的是自覺,踏實,進取和拼搏。只有擁有不斷努力的恒心,我們才能最終提高自己的社會地位和人生價值,說的難聽點最起碼不要讓自己被淘汰。網(wǎng)絡上所有的資料都公開,都有的當,我們的老師又很有能力。其實根本用不著攀比老師的能力,學歷和目前的社會地位,只要他有可以傳授給我讓我學習的經(jīng)驗,我管他是博士還是文盲,管他是IT總裁還是掃大街的!呵呵,這話說出來又要得罪人了!唉,話多就話多吧,總要有人說的!
這篇文章有我一個晚上的心血,也讓我復習了一下PM的知識。我把他獻給復旦02年所有的MSE們,也獻給我愛人。這些年風風雨雨,她跟著我,吃了很多苦,但是她從來不說什么。我要謝謝她!
希望能和大家共同度過愉快的兩年!
轉(zhuǎn)載
【?發(fā)表評論?0條?】