研發(fā)管理就是在研發(fā)體系結(jié)構(gòu)設(shè)計(jì)和各種管理理論基礎(chǔ)之上,借助信息平臺對研發(fā)過程中進(jìn)行的團(tuán)隊(duì)建設(shè)、流程設(shè)計(jì)、績效管理、風(fēng)險(xiǎn)管理、成本管理、項(xiàng)目管理和知識管理等的一系列協(xié)調(diào)活動。這是百度百科上的定義,不能說沒有一定道理,不過卻不太實(shí)用,很難看出其中的重點(diǎn)所在。
套用項(xiàng)目管理鐵三角的說法,研發(fā)管理三大重點(diǎn)則應(yīng)該是效率、質(zhì)量和成本。而團(tuán)隊(duì)建設(shè)、績效管理、風(fēng)險(xiǎn)控制、知識管理、流程設(shè)計(jì)、項(xiàng)目管理等等可以認(rèn)為是輔助手段或者是包含在進(jìn)度、質(zhì)量和成本控制中的內(nèi)容。例如,流程設(shè)計(jì)應(yīng)該是效率范疇中要考慮的問題,提升效率,必然要從過程即流程設(shè)計(jì)著手;而項(xiàng)目管理本身就包含進(jìn)度、成本與質(zhì)量,也與之相符。
成本控制上,在人力資源給定的情況下,研發(fā)開銷是基本固定的。對于研發(fā)成本的控制,更多的是資源是否用在刀刃上,是否做對了項(xiàng)目,研究對了課題,這方面的控制主要體現(xiàn)在公司的戰(zhàn)略規(guī)劃、產(chǎn)品規(guī)劃上面,做錯(cuò)了產(chǎn)品、方向,往往是浪費(fèi)最大的。規(guī)劃任何一個(gè)新產(chǎn)品都需要做到“大膽設(shè)想、小心求證、重質(zhì)量輕數(shù)量”,嚴(yán)格立項(xiàng)過程。而且就研發(fā)來說,技術(shù)積累很重要,過去的成功經(jīng)驗(yàn)未必能夠復(fù)制到新的領(lǐng)域,因而進(jìn)入任何一個(gè)新的領(lǐng)域,都需要慎之又慎。這部分的工作,大部分都產(chǎn)生于公司決策層面和產(chǎn)品規(guī)劃層面,對于研發(fā)部門來說能做的比較少。因而研發(fā)管理的重點(diǎn)還是在效率與質(zhì)量上。
對于效率問題,在《研發(fā)感悟之二--過程與方法論》、《研發(fā)感悟之三--敏捷開發(fā)》兩篇博客中進(jìn)行過論述。并據(jù)此在09年冬天和2010年初進(jìn)行過實(shí)踐,取得了較好的效果。因此,可以說研發(fā)效率問題可以說已經(jīng)基本得到了解決,這里就不再繼續(xù)探討。我們這里關(guān)注的是研發(fā)管理的另外一個(gè)重點(diǎn)--質(zhì)量管理。
研發(fā)質(zhì)量很多時(shí)候,會被理解為QA(Quality Assurance)和QC(Quality Control),往往歸宿于質(zhì)量管理部門。QC往往關(guān)注的是產(chǎn)品而非體系,在軟件研發(fā)領(lǐng)域?qū)?yīng)的就是測試;而QA則建立體系并確保體系按要求運(yùn)作,涉及到過程內(nèi)容(流程設(shè)計(jì))。QC是通過對質(zhì)量的結(jié)果進(jìn)行檢測、鑒定,防止劣質(zhì)產(chǎn)品的發(fā)布;QA對研發(fā)是否符合過程進(jìn)行控制。通過QA/QC兩個(gè)環(huán)節(jié)的配合,確實(shí)能夠起到一定的質(zhì)量控制作用,但質(zhì)量管理單單靠QA和QC是遠(yuǎn)遠(yuǎn)不夠的,會存在很多問題與漏洞,更重要的是技術(shù)經(jīng)理們在設(shè)計(jì)、開發(fā)環(huán)節(jié)中進(jìn)行控制。
首先,在微觀問題上,QA人員由于能力的限制對研發(fā)過程中細(xì)節(jié)的把握不可能像開發(fā)經(jīng)理一樣到位,這就注定了對于流程是否符合的控制,往往是僅僅解決了要做什么的問題,而無法解決怎么做,做得怎樣的問題?!霸趺醋觯龅迷鯓印?,這往往跟執(zhí)行者的能力相關(guān),僅僅靠流程、控制點(diǎn)是難以達(dá)到的。而且過程中的細(xì)節(jié)問題,很難去全部規(guī)范完備、做到滴水不漏,即使真的做到滴水不漏,也必然使得過程過于龐大而導(dǎo)致效率低下。就如同有些SOP去規(guī)范員工如何寫郵件一樣,那應(yīng)該是小學(xué)語文老師的工作,不是QA所要關(guān)注的點(diǎn),也不具有可操作性。
解決怎么做,做得怎樣的問題則需要技術(shù)經(jīng)理去控制,而且在控制過程中還需要注意方式方法。例如,開發(fā)過程中要求規(guī)范編碼,包括規(guī)范編碼風(fēng)格、采取統(tǒng)一的變量命名方式、必要的注釋、抽取公用函數(shù)解決重用問題、代碼不合理情況下進(jìn)行重構(gòu)、設(shè)計(jì)不足情況下優(yōu)化設(shè)計(jì)等等。而這些往往就是QA們難以做到,也非QA人員能力范圍之內(nèi),即使做了也難以控制好的,這就需要技術(shù)經(jīng)理們的去進(jìn)行管理、同時(shí)靈活把握方式方法。就像王傳福所說技術(shù)人員往往不善于交際、脾氣怪一樣,程序員們大部分也都這樣,容不得其他人指手畫腳,技術(shù)經(jīng)理們當(dāng)面去指出程序員那里代碼寫得有問題,很多時(shí)