小歐有話說:
全球技術(shù)領(lǐng)導(dǎo)力峰會(GTLC)30日【Tim會客廳】環(huán)節(jié),迎來了EGO北京分會第2小組的3名成員——環(huán)信首席架構(gòu)師梁宇鵬、愛因互動聯(lián)合創(chuàng)始人兼CTO洪強(qiáng)寧、當(dāng)當(dāng)架構(gòu)部總監(jiān)史海峰,一起聊聊他們的技術(shù)領(lǐng)導(dǎo)力之路。
主持人(左一):楊衛(wèi)華(Tim Yang),新浪微博研發(fā)副總經(jīng)理
從技術(shù)人到領(lǐng)導(dǎo)者
Tim:大家先做一個簡單的自我介紹吧!
梁宇鵬:在技術(shù)圈大家都叫我一樂,我來自環(huán)信,這是一家做即時通訊云服務(wù)和全媒體智能客服的公司,我是環(huán)信的首席架構(gòu)師,同時也兼任IM事業(yè)部技術(shù)總監(jiān),負(fù)責(zé)即時通訊云服務(wù)產(chǎn)品線。
史海峰:我現(xiàn)在在當(dāng)當(dāng)負(fù)責(zé)架構(gòu)部,之前在神州數(shù)碼和亞信做電信業(yè)務(wù)系統(tǒng)集成,做過七年北京移動的項(xiàng)目,來到當(dāng)當(dāng)四年多,如果大家是北京移動的號碼或者在當(dāng)當(dāng)買過書的話,都是我的衣食父母。
洪強(qiáng)寧:我之前在豆瓣網(wǎng)做首席架構(gòu)師,2014年到了宜信做首席架構(gòu)師,現(xiàn)在創(chuàng)業(yè),和豆瓣首席科學(xué)家王守崑一起創(chuàng)辦了愛因互動。
Tim:各位從剛畢業(yè)到目前的位置,其中有哪些難忘的事情或者關(guān)鍵的事情?怎么能夠成為像你們這樣的“老司機(jī)”?
梁宇鵬:
我在微博工作了幾年,Tim是我的老領(lǐng)導(dǎo),在微博負(fù)責(zé)聊天、通訊系統(tǒng),一開始我也是一心鉆研技術(shù),當(dāng)時整個IM系統(tǒng)即將到達(dá)千萬級的時候,大家都想做一個酷一點(diǎn)的中間件,這個方案當(dāng)時出了好幾版,一到這兒被槍斃了。當(dāng)時Facebook做了一個通訊中間件,我當(dāng)時很不理解,每天拉著Tim討論,“這個東西業(yè)界肯定還缺,而且我們一定需要,就想做這個東西,為什么不能做?”討論了半天,后來Tim問我一句話,“你覺得現(xiàn)在的系統(tǒng)能不能搞得定?”我說“能搞定”,他其實(shí)也將信將疑,說“你證明一下現(xiàn)在的系統(tǒng)搞得定”,我證明完之后,這個中間件沒有下文了,覺得現(xiàn)在系統(tǒng)沒有問題了,不需要做中間件。
后來想起來這是對我影響比較大的一點(diǎn),從那之后,不再單純地去追求做一個能寫很酷的中間件的技術(shù)人員,會換個角度來思考我們團(tuán)隊(duì)需要什么樣的東西,或者當(dāng)前的團(tuán)隊(duì)能做到什么樣的程度,如果能做到足夠好,那么就去想這是不是你最需要做的。我覺得這個事情對我觸動很大,當(dāng)時整個觀念都變化了,中間的溝通過程也是比較痛苦的,因?yàn)楫?dāng)時我每天都覺得我有一個理想,我要去實(shí)現(xiàn),然而并沒有得到支持。
現(xiàn)在在環(huán)信做的通訊協(xié)議、IM協(xié)議,這是原來我們也想做的。2012年移動互聯(lián)網(wǎng)來了之后,都要做面向移動互聯(lián)網(wǎng)的IM協(xié)議。除了中間件,還有很多可以做,比如現(xiàn)在做的跨全球遠(yuǎn)距離數(shù)據(jù)同步的后端系統(tǒng)等等。我不覺得我放棄了追求,而應(yīng)該是自身的一次蛻變,因?yàn)槲抑烙泻芏嗉夹g(shù)可以做,而且也可以跟業(yè)務(wù)結(jié)合起來。
Tim:從我的角度補(bǔ)充一下,作為一個技術(shù)人,在大部分環(huán)境里面,你要做的事情很多時候確實(shí)是夠用就行了,大家可能聽說過很多反面的情況,一些技術(shù)負(fù)責(zé)人做了不恰當(dāng)?shù)臎Q策,導(dǎo)致整個技術(shù)團(tuán)隊(duì)陷在泥潭里面,最終產(chǎn)品沒出來,而且大家很累,也沒有成就感。
梁宇鵬:我們做微博的時候,Twitter天天宕機(jī),技術(shù)體系轉(zhuǎn)來轉(zhuǎn)去,折騰了好多輪。在技術(shù)人員心中,大家就覺得技術(shù)氛圍很好,也很愿意折騰。我覺得我們微博這塊雖然技術(shù)上走得慢一點(diǎn)或者走得很穩(wěn)健,但是在服務(wù)質(zhì)量上業(yè)界都看得見。我現(xiàn)在比較理解了,我會告訴大家什么先不要做,先把最主要的事情做完。
史海峰:我說一點(diǎn),希望對在座的各位有一點(diǎn)借鑒意義。因?yàn)槲抑笆亲鲭娦跑浖模F(xiàn)在在當(dāng)當(dāng),從傳統(tǒng)IT轉(zhuǎn)到互聯(lián)網(wǎng)這個過程還是挺痛苦,也挺刺激的。剛到互聯(lián)網(wǎng)公司,對于常用技術(shù)、架構(gòu)、場景,包括電商這一套業(yè)務(wù)都不是特別了解。而且大家都知道,互聯(lián)網(wǎng)公司人員流動大,沒有什么文檔,很難快速切入。我憑著一些堅持,找各種機(jī)會去了解,有時候厚著臉皮跟人聊,哪怕他不愿意搭理你,最后發(fā)現(xiàn)自己應(yīng)該是有一些鈍感力,就這樣堅持下來,讓大家認(rèn)可了我,在當(dāng)當(dāng)也待了下來,還算是轉(zhuǎn)型成功。總結(jié)一下,就是堅持做一些別人做不了或者說不愿意做的事情。
洪強(qiáng)寧:堅持很重要。怎么成為“老司機(jī)”?我是足夠老了,開始進(jìn)入IT這個行業(yè)大概是上小學(xué)時,找了一本書開始自學(xué),那時候就決定自己要做一個程序員。大學(xué)畢業(yè)后,終于找到了一個正式的程序員工作。最開始是做嵌入式系統(tǒng),也是在那個時候接觸到Python這個語言,也很喜歡,在Python社區(qū)也很活躍,2005年豆瓣的創(chuàng)始人給我發(fā)了封郵件,問我要不要一起干,我就過來了。隨著豆瓣規(guī)模越來越大,我的重心慢慢轉(zhuǎn)移到平臺這個層面,在這個層面學(xué)到了很多東西,也得到了架構(gòu)師的頭銜。
另外一個轉(zhuǎn)變,是我從豆瓣離職,到了宜信擔(dān)任首席架構(gòu)師,眼界得到了提高,看到了不一樣的公司中不同的管理方法,從這個時候開始對管理產(chǎn)生了興趣,也誕生了我要親手創(chuàng)造一個偉大的公司的想法。今年6月份,終于開始創(chuàng)業(yè),這對我來說是人生的一個大轉(zhuǎn)變。但是不管怎樣,最重要的是堅持。我一直覺得技術(shù)是能夠改變世界的,我能夠通過自己的手去讓這個世界變得更美好一些,這是值得奮斗一生的事情。
Tim:從技術(shù)人到領(lǐng)導(dǎo)者,你們的心態(tài)發(fā)生了哪些變化?
梁宇鵬:原來覺得自己加一加班或者自己熬一下夜,這個程序就做完了,現(xiàn)在要調(diào)整自己,如果他們覺得做不完,你要不要接受這個狀態(tài),能不能補(bǔ)救,而不是推著他們一定要這樣做。總之就是,知道什么不要做,知道什么你做不到。
史海峰:我來總結(jié)的話,就是“以德服人”。一樂說得特別好,以前面對的更多是機(jī)器,都是標(biāo)準(zhǔn)化的,現(xiàn)在面對的是一個團(tuán)隊(duì),每個人都不一樣,領(lǐng)導(dǎo)一個團(tuán)隊(duì)的話,不要求在每個技術(shù)領(lǐng)域都比團(tuán)隊(duì)成員強(qiáng),最重要的是在最基本的素質(zhì)和為人上超過他們,對自己的要求要比對他們的要求更高,要學(xué)會控制自己。
領(lǐng)導(dǎo)者有時候的一些方式方法,大家未必會接受的,這樣實(shí)施起來會有一些抵觸情緒,需要領(lǐng)導(dǎo)者更好地琢磨怎么去調(diào)整,最好的辦法就是以身作則。
洪強(qiáng)寧:我給所有的技術(shù)人的建議是保持不斷學(xué)習(xí),但是如果是技術(shù)管理者這個群體,我的建議可能更加務(wù)實(shí)一點(diǎn),就是做好授權(quán)這一件事情,不要把所有事情都把握在自己手上,把權(quán)力下放到團(tuán)隊(duì)去,給他們更多的自由度,創(chuàng)業(yè)公司效率為什么比大公司高很多,很重要的原因是創(chuàng)業(yè)公司幾個人一碰頭就可以把這個事情決定了,大公司要層層上報,最后可能就不了了之了。把權(quán)力下放,找到合適的人讓他放手去做,團(tuán)隊(duì)成長得會更快,你也可以擁有一些得力的助手。
首席架構(gòu)師之路
Tim:在座的幾位都是非常優(yōu)秀的架構(gòu)師,你們典型的一天是怎么度過的?都做了哪些事情?
梁宇鵬:我一天最重要的兩件事情,一是跟大家梳理架構(gòu),康威定律指出,公司的組織架構(gòu)能夠反映出公司產(chǎn)品的技術(shù)架構(gòu),如果我們的架構(gòu)比較落后,那么瓶頸在我身上,因?yàn)橹挥形乙粋€人能夠把這個事情搞清楚,其他人都不明白,那么工作就沒辦法進(jìn)行。所以我想的最多的事情就是組織盡量多的人,大家一起來討論這個架構(gòu),最終大家就都了解這個架構(gòu),了解每個組件以及服務(wù)的權(quán)衡點(diǎn)在哪,就可以自己來設(shè)計這個服務(wù)。有很多創(chuàng)業(yè)公司的增長是非常快速的,如果沒有一個很好的基礎(chǔ),那么流量來了的時候,大家壓力就很大。架構(gòu)能否撐得住,這個對我來說是最焦慮的。
Tim:作為首席架構(gòu)師,跟其他架構(gòu)師怎么分工呢?
梁宇鵬:為什么叫首席呢?因?yàn)槊總€人都有架構(gòu)的思路和想法,我們團(tuán)隊(duì)至少一半以上可以做架構(gòu)的,我來做的話,可能只是把大家的想法匯總起來,把大家不一致的觀點(diǎn)組合起來找到一個一致的想法。
大家一定要達(dá)成一致,達(dá)不成一致這個架構(gòu)其實(shí)沒有任何價值,我覺得重要的是我讓大家在有爭執(zhí)的時候,我們選擇一個大家都能同意的點(diǎn)來開始做,這是我做的事情,還算比較重要的一部分。
史海峰:聲明一下,當(dāng)當(dāng)還沒有首席架構(gòu)師,我主要的工作還是參與一些項(xiàng)目的架構(gòu)設(shè)計,也會評審一些設(shè)計方案。我比較關(guān)注的問題是,如果在會議或者郵件中遇到一些不是特別了解的情況時,盡可能跟當(dāng)事人當(dāng)面溝通;技術(shù)債我都會記下來,很多東西都是我們來不及做或者說只是知道了然而怎么解決我們也不清楚,這種情況下,我就記下來,自己回頭有時間再看一看。將來再遇到其他項(xiàng)目的時候,可能順手能把這個事情解決了,這樣能達(dá)到一石二鳥的效果,這是我比較關(guān)注的事情。
洪強(qiáng)寧:在豆瓣期間,刷豆瓣是我工作的一部分,因?yàn)槎拱晁泄こ處煟撁嬗疑辖菚霈F(xiàn)渲染時間,而且會有顏色標(biāo)注。我每天關(guān)注的點(diǎn)就是一些關(guān)鍵的指標(biāo),我在豆瓣負(fù)責(zé)平臺部門,我會關(guān)注性能指標(biāo)、可用性指標(biāo),從中發(fā)現(xiàn)是不是存在問題。同時作為首席架構(gòu)師,業(yè)務(wù)部門對于平臺所有的需求,最后匯集到我這兒來,我會判斷是否需要對架構(gòu)做調(diào)整,更好地支持業(yè)務(wù)。在這個基礎(chǔ)上,我會設(shè)計下一步的架構(gòu)發(fā)展。我的原則是,作為架構(gòu)師,可以超前設(shè)計一點(diǎn),但是不要超前太多,有一定的冗余量,等到流量突然增加的時候,可以應(yīng)付得了。
Tim:洪教授曾經(jīng)是豆瓣的首席架構(gòu)師,能不能介紹一個由你作為首席架構(gòu)師發(fā)揮重要作用的產(chǎn)品或者技術(shù)?
洪強(qiáng)寧:
我在豆瓣主持的其中一個比較大的項(xiàng)目是豆瓣的服務(wù)化,豆瓣最早期的時候是一套代碼,一個代碼倉庫,所有的產(chǎn)品都是應(yīng)用這一套代碼。隨著業(yè)務(wù)的發(fā)展,這個代碼量越來越大,峰值的時候50萬行,會出現(xiàn)各種各樣的問題,當(dāng)時判斷這種方式是不能持久的。我主持做了服務(wù)化的拆分,也設(shè)計了一些服務(wù)化的框架、輔助的工具,這差不多是我在豆瓣做的工作中,對于整個豆瓣的發(fā)展影響最大的事情。
技術(shù)與管理的平衡Tim:對于技術(shù)領(lǐng)導(dǎo)者這樣的角色,你們認(rèn)為最重要的素質(zhì)或者能力是什么?
梁宇鵬:對我來講,心態(tài)特別重要,之前無論是做技術(shù)、做架構(gòu)、還是寫技術(shù)組件的代碼,面對的都是機(jī)器,如果要做一個技術(shù)領(lǐng)導(dǎo)者,需要面對的是人,你就要調(diào)整自己好自己的狀態(tài),你面對的這幫兄弟們,他們的狀態(tài)不像機(jī)器一樣恒定,有些時候他的狀態(tài)可能隨著他的心情或者生活狀態(tài)發(fā)生變化。
我經(jīng)常用跑步來舉例子,我跟團(tuán)隊(duì)很多兄弟一起跑,跑步這件事情,你會對自己能跑多遠(yuǎn)有一個期望,假設(shè)現(xiàn)在能跑10公里,那么跑馬拉松就會有非常大的壓力,對于技術(shù)人也一樣,如果他自己覺得只能跑10公里,那么把他推到馬拉松的級別,他可能會直接跟你決裂。所以最重要的是隨時觀察團(tuán)隊(duì)成員的狀態(tài),他們現(xiàn)在能到什么級別,你再去往前推動,而不是像機(jī)器一樣,讓他們發(fā)揮出100%的性能。
Tim:如何從一個寫代碼的角色轉(zhuǎn)變到一個技術(shù)領(lǐng)導(dǎo)者的角色?怎么把握這兩者之間的平衡?
梁宇鵬:我只能試著去平衡,因?yàn)槲矣X得寫代碼的時候應(yīng)該是大多數(shù)技術(shù)人員心情最平靜的時候,或者說最高興的時候。真正去管人的時候,你會發(fā)現(xiàn)有太多的不確定性,可能相當(dāng)于遇到了一段讀不懂,但是永遠(yuǎn)有bug的代碼,沒辦法,只能試著適應(yīng)他,把他當(dāng)成一個庫來調(diào)用,我沒有太好的經(jīng)驗(yàn)。但是對我個人來講,如果遇到問題,我會通過跑步去換一個環(huán)境,可能只是半個小時、1個小時,但回來之后能夠靜下心來。
史海峰:首先,一部分的同學(xué)是被動地被提到了一個管理崗位,很可能你的領(lǐng)導(dǎo)離職了或者去了更高的職位,由你來帶團(tuán)隊(duì)。基本上最簡單的是模仿,畢竟當(dāng)過下屬,你知道你的上級是怎么安排任務(wù),怎么去跟蹤,需要關(guān)注哪些點(diǎn),這是最初的。
第二點(diǎn),后來慢慢關(guān)注了一些方式方法,成熟的管理理論或者解決問題的方法論,你會發(fā)現(xiàn)很多東西有人已經(jīng)琢磨得非常明白,只是自己之前沒關(guān)注不了解。
第三點(diǎn),做技術(shù)的人離開安全區(qū)的時候,都會有一個想法——我以后不能全天寫代碼了,我的競爭力在哪里。這要靠時間,靠團(tuán)隊(duì)協(xié)作,靠實(shí)踐,慢慢去調(diào)整你的認(rèn)識,你會發(fā)現(xiàn)團(tuán)隊(duì)能做更大事情的,你在其中做一個核心角色,這樣才會更有價值。
洪強(qiáng)寧:我最開始的時候就是一個非常標(biāo)準(zhǔn)的程序員,什么事情都自己做,很快發(fā)現(xiàn)最后所有的事情都堆在你手上,忙得要死,你的團(tuán)隊(duì)其實(shí)工作并不飽和,這時你會逼迫自己去改變這個問題,我找到了方法,就是把自己的重心從實(shí)現(xiàn)變成設(shè)計,并且進(jìn)行分解,分解出來的任務(wù)并行開發(fā)。從這個階段開始,我的工作職責(zé)慢慢從實(shí)踐者變成了管理者。
這個過程需要特別注意的是,要克制自己,比如你看到一個技術(shù)難題,特別想自己解決,結(jié)果陷入問題當(dāng)中導(dǎo)致項(xiàng)目延期。另一方面,即使成為一個管理者,也不應(yīng)該放棄技術(shù),架構(gòu)師還是要寫代碼的,因?yàn)檫@樣才能知道你設(shè)計的東西是不是真正適合開發(fā)。隨著管理的工作越來越多,真正寫代碼的時候,你給自己安排的代碼任務(wù)不能成為別人的阻礙,像我現(xiàn)在寫的代碼更多的是一些偏研究性的代碼,偏提升效率的工具,還有一些打雜性的工作,沒人做的事情我來做,這樣既可以不阻礙團(tuán)隊(duì)的開發(fā)效率,也不至于喪失對代碼的理解。