雜談研發(fā)管理
深圳漢捷研發(fā)管理咨詢有限公司 靖爽
我們能有的最美妙的經(jīng)驗(yàn)是神秘感。是這種原始的激情孕育了真正的藝術(shù)和真正的科學(xué)。不論是誰,如果沒有這激情,如果不再感到好奇和興奮,那就和死去了一樣,他的眼睛即失去了光明。這種神秘感,再滲入些恐懼,就形成了宗教。認(rèn)識到存在某些我們無法洞察的事物,認(rèn)識到我們只了解最深的理論和最美麗的結(jié)構(gòu)的皮毛,是這種認(rèn)識和這種情感構(gòu)成了真正的宗教信仰;在這個(gè)意義上,也只是在這個(gè)意義上,我是一個(gè)深深投入宗教的人。
——愛因斯坦,《The world as I see it》
點(diǎn)評:偉大的愛因斯坦是我們這個(gè)星球上迄今最聰明的大腦,即使這樣他還是以嚴(yán)謹(jǐn)?shù)膽B(tài)度承認(rèn)自己的無知;而今的“職業(yè)人士”則勇敢的超越了先人:一個(gè)咨詢公司的范圍跨越了戰(zhàn)略、經(jīng)營運(yùn)作、營銷、研發(fā)、財(cái)經(jīng)、資本運(yùn)作、人力資源、甚至包括“吃喝拉撒”的管理方案;一個(gè)講師的網(wǎng)頁中列舉的培訓(xùn)課程竟有令人乍舌的幾十門,仿佛這位牛人的職業(yè)生涯在“留辮子”的時(shí)代就開始了;一個(gè)初出茅廬的年輕人的求職簡歷上告訴你他“精通A、精通B、精通C、精通……”,其實(shí)連那些技術(shù)的名字都叫錯(cuò)了。一個(gè)在面試英語中鎩羽而歸的人喃喃的說自己精通的東西沒有被問到,到底精通啥?——“how old are you?”!天哪,即使id Software的創(chuàng)始人John Carmack 的簡歷上才僅僅說自己的專長是“Exhaust 3-D technology”。我提議國家征收這方面的稅,誰說“吹牛不上稅”?! 我們評價(jià)彼得•德魯克是“一個(gè)真正具有原創(chuàng)性的思想家”,請別忘了前半句話是“在一個(gè)充斥著自大狂和江湖騙子的行業(yè)中”。我想企業(yè)在用人、選擇合作伙伴時(shí)真的應(yīng)該擁有一雙慧眼,認(rèn)真考察對方的業(yè)務(wù)是否聚焦、是否有實(shí)際能力:在企業(yè)發(fā)展運(yùn)作中,一個(gè)有能力有責(zé)任心的人會老實(shí)承認(rèn)即將出現(xiàn)的問題和風(fēng)險(xiǎn),并告訴你是否有解決辦法或者是無藥可救;而另一群人或是根本意識不到危機(jī)、或是拍著胸脯保證自己擁有靈丹妙藥,然后在他們的西洋鏡被拆穿之前來個(gè)勝利大逃亡,編造一個(gè)“成功案例”后接著將“賣拐”進(jìn)行到底。業(yè)務(wù)和能力的聚焦可以使一個(gè)公司或人將精力集中在特定的領(lǐng)域,這是現(xiàn)代管理發(fā)展的要求——對社會的分工越來越細(xì),各個(gè)領(lǐng)域的管理差異性之大遠(yuǎn)遠(yuǎn)超過了個(gè)體能力所及,以研發(fā)管理領(lǐng)域?yàn)槔?,先進(jìn)成熟的解決方案包括研發(fā)的投資理念、市場和用戶導(dǎo)向、結(jié)構(gòu)化研發(fā)流程、跨部門組織運(yùn)作機(jī)制、產(chǎn)品平臺和貨架技術(shù)體系的建立、與之匹配的績效考核機(jī)制等等要素,這些要素在實(shí)踐運(yùn)作中需要互相協(xié)調(diào)才能發(fā)揮最佳效能,孤立去看或者照本宣科去執(zhí)行并無法發(fā)揮應(yīng)有的作用,而各個(gè)要素如何根據(jù)各個(gè)公司研發(fā)的實(shí)際情況去體現(xiàn)則是更加復(fù)雜的難題。所以我有理由推測管理學(xué)的其他領(lǐng)域也需要深入的探討,如果說真有人稱得上全能,不幸的是他已經(jīng)停止了思維:德魯克剛剛走了。
“我等這個(gè)機(jī)會等了三年,我不是要證明我比別人了不起,而是要證明我失去的東西我一定要親手拿回來?!?br>
——周潤發(fā),《英雄本色》
點(diǎn)評:如果一個(gè)項(xiàng)目計(jì)劃需要12個(gè)月完成,然而實(shí)際上用了4個(gè)月才完成了預(yù)計(jì)2個(gè)月的任務(wù),你說這個(gè)項(xiàng)目到底需要多久才能完成?前提是項(xiàng)目條件不變。不同的項(xiàng)目干系人會有不同的答案:一種就是像我一樣悲觀,估計(jì)得增加一倍的時(shí)間才行;一種認(rèn)為前面遇到了一些小麻煩,后面就會好起來,估計(jì)得延期2個(gè)月;還有一種人會像小馬哥一樣自信能夠?qū)⑹サ臅r(shí)間“親手拿回來”,認(rèn)為會在預(yù)期的時(shí)間完成項(xiàng)目;不知道是否還有更加激進(jìn)的經(jīng)理?
首先要說明的是項(xiàng)目早期估計(jì)有誤差是正常的,上圖是Barry Boehm在《Cost Models for Future Life Cycle Process:COCOMO II》書中勾勒出的估計(jì)誤差,在項(xiàng)目先期誤差甚至達(dá)到4倍,隨著項(xiàng)目進(jìn)展估計(jì)的誤差才逐步縮小,所以對進(jìn)度和工作量的估計(jì)應(yīng)該是一個(gè)范圍,在項(xiàng)目中不斷根據(jù)實(shí)際情況去修訂,上面例子中合理的答案應(yīng)該是項(xiàng)目延期一倍。不過遺憾的是這種幾十年前的過時(shí)理論常常會被人忽略和遺忘,而去追逐先進(jìn)而耀眼的靈藥。
估計(jì)就是估計(jì),決不能被當(dāng)成嚴(yán)肅的承諾。項(xiàng)目經(jīng)理的“英雄本色”情結(jié)經(jīng)常會鼓勵其尋找“銀彈”的沖動:利用現(xiàn)有資源按時(shí)完成已經(jīng)超期的項(xiàng)目,當(dāng)然有時(shí)是有領(lǐng)導(dǎo)和用戶的重壓。根據(jù)項(xiàng)目管理中進(jìn)度、質(zhì)量、資源和范圍的約束關(guān)系,這顯然是不可能的任務(wù)。如果期望在預(yù)計(jì)的時(shí)間內(nèi)完成,一般會在需求上下功夫:考慮優(yōu)先實(shí)現(xiàn)那些用戶業(yè)務(wù)所必須的需求,力求削減并非必要的需求,或是在后續(xù)版本提供——實(shí)踐證明通過充分溝通大約可以達(dá)到目的。當(dāng)然調(diào)整資源也是一個(gè)辦法,問題是增加人手的時(shí)機(jī),搞不好反而會更加延緩進(jìn)度——“人月神話”的brooks法則。如果想在“質(zhì)量”上打主意,我個(gè)人認(rèn)為不是好的選擇,原因是軟件系統(tǒng)對需求的實(shí)現(xiàn)程度是二元的——要么實(shí)現(xiàn),要么沒有實(shí)現(xiàn),不存在部分實(shí)現(xiàn)的情況,換句話說就是系統(tǒng)的質(zhì)量和所實(shí)現(xiàn)的需求是相關(guān)的,質(zhì)量的降低也就意味著需求沒有實(shí)現(xiàn)。
上面的解釋中存在邏輯上問題:將軟件系統(tǒng)開發(fā)的理論擴(kuò)展到了系統(tǒng)產(chǎn)品的研發(fā),不過應(yīng)該還是有些借鑒價(jià)值的。
一個(gè)荒禿的山坡。
一具血淋淋的尸體仆倒在地上。
從尸體的傷口上判斷頭顱是被野獸撕掉并叼走的。
“為什么還不提取DNA樣本?” 凱瑟琳問到。
“需要等法醫(yī)來確認(rèn)他真的已經(jīng)死亡?!?格雷森無奈的聳聳肩。
——《CSI: Crime Scene Investigation》
點(diǎn)評:原來號稱制度建立完善的美國也會鬧出這樣的笑話!其實(shí)無論多么完美的流程制度都不能確保在任何實(shí)際情況下是適用的,如何平衡規(guī)范和靈活始終是個(gè)難題,其原因是你要解決的是現(xiàn)實(shí)問題,而不是在紙面上或在頭腦中。如何使流程適應(yīng)當(dāng)前項(xiàng)目的特點(diǎn),確定流程中各項(xiàng)活動的先后順序、執(zhí)行的程度、乃至是否需要執(zhí)行這項(xiàng)活動,關(guān)鍵是流程定義者和執(zhí)行者對活動及其影響的理解程度。
回顧一下軟件項(xiàng)目生命周期模型,包括瀑布(線性)模型、V模型、螺旋模型、增量模型、迭代模型、XP極限編程等等,其實(shí)包含的活動多是相似的,不同之處在于項(xiàng)目過程中各個(gè)活動的取舍、先后順序、執(zhí)行的程度——之所以出現(xiàn)如此多種的模型,關(guān)鍵在于無法用一種模型去適應(yīng)特性各異的項(xiàng)目。如果說有什么模型可以通用,那就是RUP(Rational Unified Process) ,不過它是一個(gè)靈活的軟件開發(fā)流程平臺,換句話說,它即指導(dǎo)你如何去做,同時(shí)又沒有明確告訴你如何去做——如何運(yùn)用還得靠使用者的聰明才智。
對于研發(fā)項(xiàng)目而言、既然流程的定義和裁剪是無法回避的問題,那么就不要避重就輕的將它放在工作的角落里。一般的解決方法是根據(jù)項(xiàng)目特點(diǎn)(例如周期、工作量、投入資源、難易程度等等)將項(xiàng)目分類,并分別制定各類項(xiàng)目的開發(fā)流程;或者制定流程裁剪的原則,規(guī)定哪些活動可以裁剪、哪些活動可以合并。
另一種方法是針對各項(xiàng)活動,列出可裁剪屬性、可選項(xiàng)、裁剪指南,明確實(shí)踐中對單項(xiàng)活動的執(zhí)行情況。例如對“確定信息采集的方法”可以進(jìn)行如下定義:
活動 可裁剪屬性 可選項(xiàng) 裁剪指南
確定信息采集的方法 技術(shù) 用戶評審 對于新需求
觀察 對于現(xiàn)有操作的充分理解
使用任何現(xiàn)有的應(yīng)用 如果應(yīng)用已經(jīng)存在,并且至少覆蓋用戶的一些需求
上面兩種方法分別從宏觀和微觀角度來指導(dǎo)流程的裁剪,都是非常必要的。有的QA、項(xiàng)目經(jīng)理可能會對其工作量提出疑問,我個(gè)人認(rèn)為這項(xiàng)工作是項(xiàng)目管理的關(guān)鍵之一:一個(gè)良好的過程很大程度上決定了項(xiàng)目的成敗,在這上面花些精力是必要的。而且這項(xiàng)工作不僅在項(xiàng)目之初,更要在過程中進(jìn)行,對項(xiàng)目的洞察和理解能力、對項(xiàng)目變化的應(yīng)對能力是項(xiàng)目經(jīng)理是否稱職的主要標(biāo)志,這當(dāng)然依賴于實(shí)際經(jīng)驗(yàn),“別以為看幾本黑手黨的書就可以學(xué)做老大了” ——實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)!
我認(rèn)為研發(fā)項(xiàng)目成功要素中“人”始終是第一位的,因?yàn)樗琼?xiàng)目充滿活力、直面風(fēng)險(xiǎn)和挫折的原動力?!叭恕睂χ贫鹊淖裱且皂?xiàng)目(或者)產(chǎn)品成功為出發(fā)點(diǎn)的,而不是其他的什么。下面這一句話引自“肖申克的救贖”,值得深思:
“制度這東西,開始你不喜歡它,排斥它,慢慢的,開始接受它,喜歡它,最后你發(fā)現(xiàn)自己離不開它,你本身也變成了制度的一部分”。
“詹姆斯,你總得讓我穿點(diǎn)什么吧?!痹∈业拿A嫌吵隽艘粋€(gè)成熟女人的惹火身材,這時(shí)候看客總有一種血脈噴張的沖動——顯然她什么都沒有穿。
“好吧!”邦德先生悠閑的吐著煙圈,懶洋洋的拿起了一雙拖鞋。
——《007系列》
點(diǎn)評:用戶對產(chǎn)品的需求可不像邦德欣賞女郎一樣簡單而直接。如此簡陋的包裝,即使再有內(nèi)秀的產(chǎn)品,也很難得到用戶的青睞。用戶對產(chǎn)品的關(guān)注點(diǎn)往往包括價(jià)格、功能、質(zhì)量、易用性、維護(hù)成本、品牌、外形等等,而不再僅僅局限在產(chǎn)品的質(zhì)量上;同時(shí)對于不同產(chǎn)品、不同關(guān)注點(diǎn)的比重也是不同的,就拿操作系統(tǒng)舉例吧:微軟的windows系列產(chǎn)品面向的是廣大普通的用戶,強(qiáng)調(diào)功能完善并易于操作,與之相對的是面向?qū)I(yè)工程師的UNIX系統(tǒng),強(qiáng)調(diào)系統(tǒng)穩(wěn)定和高效——現(xiàn)在的UNIX系統(tǒng)雖然也“時(shí)髦”的提供了類似于Windows的CDE操作界面,不過這對于真正使用UNIX的人士來講并不是必要的。同是操作系統(tǒng),一個(gè)就像人們乘坐旅游觀光車(被關(guān)在籠子里)安全的游覽野生動物園;另一個(gè)仿佛自己扛著獵槍,享受著在原始森林狩獵的樂趣。
既然我們已經(jīng)知道用戶需求涵蓋的范圍,那么就去帶著這些要點(diǎn)去問問用戶到底要什么,我們就按照用戶的“旨意”開發(fā)吧。遺憾的是準(zhǔn)確獲取用戶需求是一件非常困難的事情:如何確定用戶范圍、如何將用戶需求完整的展現(xiàn)出來、如何預(yù)見到用戶未來的需求,還有就是用戶需求會變化。其實(shí)解決的方法并不復(fù)雜,難點(diǎn)在于如何利用這些“老掉牙”或是“時(shí)尚”的方法獲得有價(jià)值的東西,我認(rèn)為關(guān)鍵還是研發(fā)團(tuán)隊(duì)的心態(tài)和業(yè)務(wù)水平。我們或許可以從下面的例子中得到一些啟發(fā):
微軟在C++市場上正受到來自Borland公司的威脅,McCarthy 所在的開發(fā)小組做了大量市場調(diào)查,并成立了幾個(gè)專門小組收集需求,結(jié)果發(fā)現(xiàn)程序員在使用C++方面的最大挑戰(zhàn)不是掌握C++的高級特性,而是如何入門。于是,微軟將Visual C++1.0版的主要開發(fā)目標(biāo)定為讓程序員不必經(jīng)過繁雜的學(xué)習(xí)就能用C++構(gòu)建應(yīng)用程序。與此同時(shí),Borland公司仍繼續(xù)將目光關(guān)注于高級C++程序員,增加應(yīng)用模板和異常處理功能,以及其他一些C++的核心特性。為實(shí)現(xiàn)讓C++易于使用的目標(biāo),Visual C++小組則致力于構(gòu)造應(yīng)用程序向?qū)?,該工具能夠自動?chuàng)建C++應(yīng)用程序外殼。結(jié)果Visual C++1.0一經(jīng)問世便搶占了數(shù)十個(gè)百分點(diǎn)的市場份額。
誰窮了,誰狗熊!誰富了,誰光榮!
——《金光大道》
點(diǎn)評:公司需要盈利是天經(jīng)地義的事情,但是并不意味著公司里每一個(gè)人做的每一件事都直接盈利,畢竟要有人進(jìn)行技術(shù)預(yù)言、戰(zhàn)略產(chǎn)品開發(fā)等非直接盈利卻對公司發(fā)展至關(guān)重要的工作。大多數(shù)公司可能會把最多的資源分配在最賺錢的部門里,但微軟公司并不是這樣做的:例如負(fù)責(zé)Office產(chǎn)品研發(fā)的部門人數(shù)并不很多,相反,服務(wù)器和工具部門卻擁有最多的技術(shù)員工。這主要是因?yàn)槲④浽诤笈_服務(wù)領(lǐng)域面臨著更加激烈的市場競爭,需要投入更多的資源,以盡快開發(fā)出領(lǐng)先于IBM、Sun等競爭對手的重量級產(chǎn)品 。我猜測現(xiàn)在蓋茨正在為迎擊GOOGLE的強(qiáng)勁挑戰(zhàn)而籌措資源吶!
如何在眾多需要投資的產(chǎn)品中進(jìn)行組合,兼顧公司短期和長期發(fā)展,達(dá)到投資收益最大化呢?簡單說就是從市場入手,理解市場并進(jìn)行市場細(xì)分,并對各個(gè)細(xì)分市場的市場空間、競爭強(qiáng)度、盈利情況等方面進(jìn)行比較,優(yōu)選出對公司發(fā)展至關(guān)重要的細(xì)分市場,進(jìn)而制定針對各個(gè)細(xì)分市場的產(chǎn)品規(guī)劃和技術(shù)規(guī)劃,根據(jù)公司現(xiàn)有和未來的資源狀況,確定產(chǎn)品研發(fā)計(jì)劃和業(yè)務(wù)計(jì)劃。只有通過這樣一系列手段,才可以有效進(jìn)行公司資源調(diào)配,使公司具有持續(xù)發(fā)展的動力。
以上我們談及的是如何進(jìn)行資源分配,另一點(diǎn)很重要的就是在產(chǎn)品線之間核算和利益分配。如果僅僅以盈利狀況為依據(jù),將會出現(xiàn)大量人員不安心于本職工作而期望調(diào)到盈利高的產(chǎn)品線的情況,進(jìn)而嚴(yán)重挫傷工作積極性。像華為公司擁有眾多的產(chǎn)品線,考核時(shí)堅(jiān)持“一是考潛力的增長,二是考對公司的貢獻(xiàn)”,強(qiáng)調(diào)均衡,各條產(chǎn)品線齊頭并進(jìn),整個(gè)公司才會保持了良好的發(fā)展態(tài)勢。
“小雞長大了,就變成了鵝;鵝長大了,就變成了羊;羊長大了,就變成了牛;等牛長大了,共產(chǎn)主義就到了......”
——《活著》
點(diǎn)評:共產(chǎn)主義不會從天降,就像麻雀不會無緣無故變成鳳凰,這需要通過艱苦的蛻變,新產(chǎn)品的開發(fā)也存在類似的現(xiàn)象。從微軟最新旗艦產(chǎn)品Windows Vista的發(fā)布一再跳票、功能不斷縮水的現(xiàn)象上看的確如此。
從技術(shù)角度來講,新產(chǎn)品開發(fā)的主要風(fēng)險(xiǎn)是對于關(guān)鍵技術(shù)的實(shí)現(xiàn)和對開發(fā)周期、資源的控制。我們可以通過提前建立產(chǎn)品開發(fā)平臺、積累成熟的貨架技術(shù)模塊,將技術(shù)開發(fā)和產(chǎn)品開發(fā)分離,有效降低上述風(fēng)險(xiǎn),提高研發(fā)項(xiàng)目的可控性。即使是這樣,對于復(fù)雜系統(tǒng)的開發(fā)也仍然會遇到新的技術(shù)風(fēng)險(xiǎn),而且需求變化已經(jīng)成了家常便飯。如何解決?
下面這兩張圖分別來自Barry Boehm所倡導(dǎo)的螺旋模型方式,和Tom DeMarco在《 Waltzing With Bears:Managing Risk on Software Projects》中為降低軟件開發(fā)風(fēng)險(xiǎn)所提出的增量開發(fā)模式(又是老調(diào)重談),而流行的極限編程則將迭代開發(fā)推向了極致。深入理解他們的理論,會發(fā)現(xiàn)這是符合人類的思維習(xí)慣的——我們會對一個(gè)最初的原型或是版本進(jìn)行不斷修改優(yōu)化,直到滿足要求,而無法通過一次的嘗試達(dá)到終極目的。從實(shí)現(xiàn)需求的角度來講,就是按照需求的優(yōu)先級劃定不同版本,早期版本常常包括基礎(chǔ)的需求、急待解決的技術(shù)風(fēng)險(xiǎn)、可擴(kuò)展的基礎(chǔ)架構(gòu)。如果該版本被發(fā)布,開發(fā)的風(fēng)險(xiǎn)便降低了一大步,對項(xiàng)目進(jìn)度、所需資源的估計(jì)也更有依據(jù),更關(guān)鍵的是項(xiàng)目團(tuán)隊(duì)的信心大大提升了。重復(fù)上述的過程(前提是要有計(jì)劃的重復(fù),也就是應(yīng)明確每次重復(fù)的目的),直到項(xiàng)目風(fēng)險(xiǎn)的“桔子皮”都被展示出來,項(xiàng)目也就完成了。
【?發(fā)表評論?0條?】