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