|
怎樣看微軟的Program Manager 這個角色
| 怎樣看微軟的Program Manager 這個角色 |
|
[ 2005-12-19 19:38:53 | Author: ccBoy ]
記得自己在顧問的經(jīng)歷中,曾和許多開發(fā)團(tuán)隊交流過微軟的MSF,許多人都曾經(jīng)疑問過MSF組隊模型中的Program Manager,因為從他們的公司,他們的團(tuán)隊無法找到這樣的角色來對應(yīng),至于開發(fā)Team、測試團(tuán)隊、設(shè)計團(tuán)隊、文檔團(tuán)隊、配置團(tuán)隊、用戶教育團(tuán)隊、本地化團(tuán)隊還能想象,但唯獨Program Manager找不到對應(yīng)的。因為一個Program Manager需要項目管理的技巧,Program Manager也需要負(fù)責(zé)功能需求、Program Manager還要寫功能規(guī)范說明書、Program Manager還要負(fù)責(zé)設(shè)計原型。Program Manager要有三大硬功夫:Technical Proficiency,Project Management 和Design Sensibility,而且還要有內(nèi)功,擁有非凡的Communication能力和Leadership。
然后問題就來了,很快就人問,什么是Leadership? 這個問題夠開一門二周的課了。 然后第二著名的問題來了,Project Manager 和 Program Manager 有什么不同? 開發(fā)組的Team Leader 和Program Manager 有什么不同?
真的這樣類似的問題非常的多,找到對應(yīng)關(guān)系也許是你此時認(rèn)為在團(tuán)隊或公司實施MSF的一個重要前提。但我相信你需要一些場景和Context來看這個問題。
Project Manager --這是一個項目的最高決定人,在許多公司一個項目經(jīng)理是一個項目的資源所有人。他需要完成這個項目,并進(jìn)行項目管理活動。但需要項目經(jīng)理(甚至大部分項目經(jīng)理)不要求他會程序設(shè)計和精通技術(shù),甚至進(jìn)行編程。他的目標(biāo)是完成項目,讓用戶驗收,拿到驗收單。可能他需要組織需求分析、設(shè)計、開發(fā)、測試、安裝、部署、維護(hù)等等等,也可以產(chǎn)品以及開發(fā)出來他只需要完成客戶驗收的部分。總之,這是一個普通和廣泛意義上的項目管理領(lǐng)域和范疇。
Program Manager --這是一個產(chǎn)品開發(fā)過程中的角色,而不全是項目范疇的概念,它可以只存在產(chǎn)生開發(fā)的生命周期中。微軟的所有產(chǎn)品是設(shè)計、開發(fā)、測試然后發(fā)布、再設(shè)計、開發(fā)、測試然后下一個發(fā)布。你會發(fā)現(xiàn)似乎沒有用戶驗收的問題。
這里有兩個 聯(lián)想,第一種人很快發(fā)現(xiàn),微軟MSF走的產(chǎn)品研發(fā)的路線,和我們公司或團(tuán)隊的項目運作方式并不同。所以我們需要重新考察Program Manager這個角色,但是我們?nèi)绾伟l(fā)揮MSF中Program Manager這個角色呢? --舍棄不要?還是繼續(xù)生搬硬套
第二種人,會聯(lián)想到這樣的問題,既然沒有用戶驗收環(huán)節(jié),那么微軟的產(chǎn)品如何保證用戶都接受,都會去購買,其實這也是一個驗收的過程,暫且稱為虛擬驗收。一個項目的目的是為了讓用戶最后驗收。那么微軟在產(chǎn)品設(shè)計、開發(fā)、測試的環(huán)節(jié)如何保證它能夠被"虛擬的驗收"?靠好的設(shè)計、編碼規(guī)范、風(fēng)險評估、足夠的測試?因為你總需要有足夠的措施保障你的產(chǎn)品能成功,能被虛擬驗收。
先看看,JOEL 說軟件一書的55頁怎么說的:
Quote
長期擔(dān)任微軟總設(shè)計師的Charles Simonyi 提出主程序員(Master Programmers) 的概念。其主要思想是,雖然由一個主要的程序員負(fù)責(zé)所有的代碼編寫,但是他或者她要緊緊的依靠高級程序員而且將他們視為“代碼仆從”。與考慮調(diào)試每個函數(shù)的作法不同,主程序員應(yīng)主要關(guān)注每個函數(shù)的原型而創(chuàng)建出可見的輪廓,然后將它扔給一位高級的程序員去實現(xiàn)。(當(dāng)然,Simonyi是主程序中的主程序員。)由于主程序員這個術(shù)語顯得太老氣橫秋了一點,因為微軟用Program Manager 一詞來描述此類概念 。。。。一個名叫Jabe Blumenthal的聰明人從根本上重新確立了程序經(jīng)理的地位,這樣一來,Program Manager就掌管著產(chǎn)品設(shè)計與規(guī)格說明書。從那以后,微軟的Program Manager就負(fù)責(zé)收集需求,弄清代碼的意圖在于做什么,以及編寫規(guī)格說明書。在通常的情況下,每個Program Manager配備大約5名的程序員,這些程序員負(fù)責(zé)用代碼去實現(xiàn)程序經(jīng)理已經(jīng)以規(guī)格說明書形式確定的功能。Program Manager還要去協(xié)調(diào)marketing,文檔創(chuàng)建、測試、其他內(nèi)部的雜務(wù)以及所有那些不應(yīng)該讓程序員花時間的瑣碎事務(wù)。最后,微軟的Program Manager需要讓人覺得他心里裝有整個“公司的宏圖”,而程序員則可以無所顧忌地一門心思讓自己的那塊代碼確實顯得合理而高效。
JOEL 娓娓道來了Program Manager的來歷,這不是全部,至少不是我看待的全部。但JOEL說出一個很重要的特性--Master Programmers Program Manager != Technical Proficiency + Project Management + Design Sensibility + Communication + Leadership。 這些都是一個Program Manager 要做的工作或素質(zhì)。Program Manager 應(yīng)該等于一個詞 Program Manager = Ownership 一個Program Manager 代表著項目/產(chǎn)品中一個特性的Ownership, 一個工作的Ownership,一個風(fēng)險的Ownership,任何需要Ownership的地方,這就是JOEL 下面說的
Quote
Program Manager 的價值是無法衡量的。如果你曾經(jīng)發(fā)牢騷說,程序員應(yīng)該如何關(guān)注技術(shù)上的質(zhì)量而不是可銷售性,那么就意味著需要一個Program Manager。如果你曾經(jīng)發(fā)牢騷說,能夠?qū)懗鰞?yōu)秀代碼的人從來不會關(guān)心文檔的優(yōu)秀和語法,那么就意味著需要一個Program Manager。如果你曾經(jīng)發(fā)牢騷說,產(chǎn)品似乎在毫無方向地隨機飄蕩,那么預(yù)示著需要給一個Program Manager。
你可以想象這樣的場景,假如你是一個背負(fù)價值著10000000000000萬合同金額的產(chǎn)品/項目經(jīng)理,甚至你們公司的老總,他最關(guān)心的問題是,我們的產(chǎn)品今天能發(fā)布了嗎? 客戶需要的功能都開發(fā)完畢了嗎? 假如有100個功能或任務(wù),老板最希望看到的是像點將臺一樣,下面站立100個人,依次說,報告老板,01功能完畢,報告老板,02功能完畢,報告老板,03功能完畢。。。。。報告老板,99功能完畢,報告老板,100功能完畢。
這100個人每個都是一個Program Manager, 你說原來Program Manager就是干這個事情的
我忘了考證具體的數(shù)字,這個你可以推測出來,比如Office 開發(fā)團(tuán)隊有2000人,一個開發(fā)人員至少有一個或兩個測試人員,就按1:1,那么有1000個開發(fā)人員1000個測試人員,那么按1:5(一個Program Manager下面有5個隨從人員),那么至少就應(yīng)該有200+200=400個Program Manager ,然后你可以根據(jù)模塊(比如Word、Excel、Outlook等等)、產(chǎn)品特性的大小,任務(wù)的大小,再對這個進(jìn)行一些調(diào)整,比如產(chǎn)品特性大的一個Program Manager下面還有許多小的Program Manager,或有的Program Manager下面有5個人,有的有10個人。但無論如何應(yīng)該有超過10%的Program Manager(我忘了具體的數(shù)字,朱敏博士在一次培訓(xùn)中曾經(jīng)介紹過這個數(shù)字)
又比如說典故中的諸葛亮火燒赤壁時說的萬事具備,只欠東風(fēng)。在這里就意味著有10000個Program Manager,再加上一個負(fù)責(zé)搞定東風(fēng)的Program Manager。不然這事情沒法成功。 當(dāng)你理解了Ownership 的含義,你就會更容易的看懂JOEL 后面說的,找什么樣的人做Program Manager,更重要的是如何在你的公司、項目或開發(fā)團(tuán)隊?wèi)?yīng)用MSF模型。MSF3.0 4.0 甚至以后不叫MSF了,但Ownership 的原則不會變的,也許你們公司或開發(fā)團(tuán)隊沒有Program Manager這個頭銜,但應(yīng)該有肩負(fù)Ownership的人。比如: A事情Ownership是你,那就意味著:A事情這就是你的工作,你的工作就是把A事情做到一種可以刻量的程度;任何時候,A事情都由你負(fù)責(zé)和掌握,有什么問題都會來找你;同樣為完成A事情,只有你能做出決定和選擇,而且也只有你為A事情的結(jié)果負(fù)責(zé)。你最大的使命就是確保讓A事情成功或完成。如果A事情失敗了,那么你也就完了。
許多公司不是沒有Program Manager,而是沒有Ownership的概念。一件事情可以讓A做,也可以讓B做,A做是一個結(jié)果,B做是另外一個結(jié)果,而且兩個結(jié)果都接受都可以,甚至3個N個結(jié)果都行。一件事情A主管說這么做,B主管說要那么做,怎么做? 一件事情有許多的聲音或Ownership不清楚。 這會浪費多少的人力、物力、時間和金錢。 所有對于所有的項目經(jīng)理、開發(fā)團(tuán)隊的主管來說,無論一個開發(fā)任務(wù)有多大,多么困難。正如剛剛所說的如火燒赤壁一樣,那么這意味著你要確保這10001件事情發(fā)生,確保每件都有一個人(Master) 來負(fù)責(zé),而且結(jié)果只有一個。當(dāng)10001個結(jié)果發(fā)生,火燒赤壁才能成功。 回去看看三國演義,你看看各位戰(zhàn)將都負(fù)責(zé)了什么,周瑜成功扮演了一個Program Manager,他必須保證曹操相信他毆打黃蓋的苦肉計。而諸葛亮在火燒赤壁的項目中成功扮演了一個Project Manager ,同時也是擔(dān)任了一個Program Manager,因為他必須保證借到東風(fēng)。 你們公司不必像微軟一樣一定要有Program Manager這個角色,但一定要有明確的Ownership意識和機制。諸葛亮這么做了,確保了火燒赤壁,微軟這么做了,確保了他的產(chǎn)品能及時發(fā)布,你的項目/產(chǎn)品要成功,我想你至少考慮要這么做。
這么說,你或許領(lǐng)會少許微軟Program Manager這個角色的意義了吧。 最后,真的,不要拘泥于MSF ,不要拘泥于Project Manager 和Program Manager 的差別。不要拘泥于Program Manager這個頭銜或定義。
[Last Modified By ccBoy, at 2005-12-20 08:42:56]
|
|