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