研發(fā)管理的實質是解決以下三個問題:
1. 如何提升研發(fā)效率?
2. 如何保障研發(fā)質量?
3. 如何降低研發(fā)成本挥萌?
這三個問題柬赐,是作為技術管理者(CTO, 技術總監(jiān)亡问,架構師)無法逃避的問題,解決好了這三個問題肛宋, 就能做好研發(fā)管理州藕。 下面就逐個分析下這三個問題。
如何提升研發(fā)效率酝陈?
提升研發(fā)效率的目的床玻,是為了研發(fā)效率的最大化。
提升研發(fā)效率是誰的職責沉帮?通常大家都會認為锈死,提升研發(fā)效率是每個工程師的職責贫堰,是分內之事,但我認為提升研發(fā)效率是技術管理者的職責待牵,因為研發(fā)效率的提升最重要的是架構設計的提升其屏,不管是后端架構還是前端架構。架構設計做得好的應用缨该,整個研發(fā)團隊的研發(fā)效率肯定是很高的偎行,架構設計做得差,研發(fā)效率肯定高不了贰拿。
提升研發(fā)效率的方法蛤袒,核心思想只有一個:復用。 復用思想能否做得好膨更,不同的工程師汗盘,不同的團隊的差別極大。 復用询一,簡單的使用:寫個方法隐孽,多個地方調用。 稍復雜點的使用:寫個類/接口健蕊,用好繼承菱阵,結合個工廠模式,進行封裝調用缩功,多處復用晴及。再復雜點的:組件化編程,把常用的業(yè)務功能或展示交互封裝成組件嫡锌,哪里需要哪里就引入調用虑稼。還有沒有再復雜點的?有势木,模塊化編程蛛倦,微服務化編程,把一類業(yè)務進行模塊化或微服務化封裝啦桌,統(tǒng)一對外提供接口服務溯壶。對于復用思想,絕大部分人最高也就只能認識到這個層面了甫男,其實還有更高的復用思想且改,即“配置驅動開發(fā)”,這個留待后續(xù)章節(jié)再詳細講述板驳。
提升研發(fā)效率另一種思想又跛,就是把代碼量降到最低,如果你能做到這點若治,就能極大提升研發(fā)效率慨蓝,不僅效率能得到極大提升感混,代碼量少,則意味著編碼時間將大大縮短菌仁,研發(fā)工程師將有更多的時間放到真正重要的事情上去,用于提升程序效率與研發(fā)質量静暂,同時測試工作量也將會大大降低济丘。
如何保障研發(fā)質量?
質量與效率的關系是什么洽蛀? 通常大家都認為:研發(fā)花的時間越少摹迷,則質量越?jīng)]法保障(越差),研發(fā)時間越充足郊供,項目質量就會越好峡碉。 實際情況真的是如此嗎? 未必驮审。 我認為鲫寄,項目研發(fā)會有個最低時間,如果少于這個最低時間疯淫,則項目就沒法真正進行開發(fā)落地地来。 這個最低時間因項目與團隊情況而異。 也就是說正常情況下(不少于這個最低時間)熙掺,花的時間越少未斑,質量反而越高。從上一個問題币绩,我們知道效率越高蜡秽,則實際花費的時間就越少,開發(fā)的代碼量就越少缆镣,這也就意味著可以更少的人參與芽突,質量也將更有保障。
保障質量的方法董瞻,“復用”能有效保障代碼質量诉瓦。 復用意味著很多已經(jīng)開發(fā)驗證過的代碼不需要重新開發(fā)了,直接使用就可以了力细。組件化開發(fā)睬澡,讓一次開發(fā)測試完成后,多次多地復用眠蚂,不僅降低開發(fā)測試的工作量煞聪,并使質量得到保障。模塊化逝慧,微服務化開發(fā)也是為了更大層面的復用昔脯,可以更好的把控和維護啄糙,有利于質量的保障≡浦桑“配置驅動開發(fā)”隧饼,可以升級到把很多開發(fā)任務本身都省去了,可以節(jié)省90%以上的開發(fā)時間静陈,既然開發(fā)任務都不需要了燕雁,哪里還會有質量問題呢?
如何降低研發(fā)成本鲸拥?
研發(fā)成本通常由兩部分組成:研發(fā)人力資源投入和軟硬件資源投入拐格。軟硬件資源又可以分為開發(fā)軟件&工具資源和服務器軟硬件資源(包括第三方收費服務,寬帶刑赶,服務器等)捏浊。其中研發(fā)人力資源投入往往是主要投入部分。
研發(fā)效率的提升與質量的保障撞叨,可以有效降低研發(fā)投入成本金踪。 研發(fā)效率高,意味著投入的人力資源可以大大降低牵敷,以前需要10個人開發(fā)的热康,現(xiàn)在只需要2-3個人即可完成。這是可以做到的劣领。
架構設計做得好的話姐军,應用性能也能得到很大提升,服務器資源就可以得到充分利用尖淘,可有效減少服務器硬件方面的成本投入奕锌。
研發(fā)管理,實際包含了很重要的編程思想村生,即 復用惊暴,更近一步,即面向對象趁桃,組建化辽话,模塊化,微服務化卫病,配置驅動等油啤。 這些本質上是架構設計,程序設計的一部分蟀苛。通過架構設計最終解決團隊研發(fā)的效率提升益咬,質量保障,研發(fā)成本降低等問題帜平。
注:第一次正式寫編程思想類的文章幽告,萬事開頭難梅鹦,但總要從第一步走出。 文章內容純屬個人經(jīng)驗總結冗锁,若有寫的不好的地方齐唆,還請大家多提提建議或意見,感謝大家冻河!