2020-我的技術(shù)之路:創(chuàng)業(yè)公司中的研發(fā)效能與技術(shù)賦能
2020 年,諸多不易,大家都是披荊斬棘砥礪前行;在這一年我在技術(shù)、產(chǎn)品、行業(yè)認(rèn)知上也是起起伏伏,在挫折、摔打中不斷地深化自己對(duì)行業(yè)的認(rèn)知,融入制造團(tuán)隊(duì),打磨產(chǎn)品,構(gòu)建更順滑的體驗(yàn)與交付能力。從技術(shù)與產(chǎn)品的視角看,2020 我的核心關(guān)注點(diǎn)如下:
- 研發(fā)效能,以盡可能小的技術(shù)團(tuán)隊(duì)保障全線產(chǎn)品的按時(shí)上線、交付。我們的產(chǎn)品涵蓋了典型的 工業(yè)互聯(lián)網(wǎng)/MES/CRM/電商系統(tǒng),跨越了 Web/移動(dòng)端/小程序/桌面端等多個(gè)觸達(dá)點(diǎn),服務(wù)于海內(nèi)外客戶(需要維護(hù)跨地域的公/私有云及邊緣節(jié)點(diǎn))。
- 技術(shù)賦能,挖掘并驅(qū)動(dòng)業(yè)務(wù)發(fā)展,單點(diǎn)突破與全線貫通齊頭并進(jìn),以正合,以奇勝。我們需要某些產(chǎn)品點(diǎn)打動(dòng)客戶,但是如果不能給客戶提供完整的解決方案,是無法得到最好的認(rèn)可。
做時(shí)間的朋友:八大體系超千篇數(shù)百萬字技術(shù)筆記
天地逆旅,時(shí)光飛逝,歲月如梭,年近而立也是愈發(fā)感覺有急迫感;每次回顧過去十年的職業(yè)生涯,想起自己曾經(jīng)學(xué)過、做過很多,但是也忘了很多,不由地內(nèi)心惶惑。此時(shí)唯有自己做的這數(shù)百萬字筆記體現(xiàn)了技術(shù)一途上留下的痕跡: 在線閱讀:ng-tech.icu/books ,書籍托管于 Github: https://github.com/wx-chevalier
今年我會(huì)針對(duì)每個(gè)系列編寫專門的導(dǎo)讀文章,希望能與更多的人分享我看到的、學(xué)到的、記下的。
既能組裝也能造輪子:模板、庫、項(xiàng)目的沉淀
經(jīng)歷了不同的大廠與創(chuàng)業(yè)團(tuán)隊(duì),對(duì)于技術(shù)人員而言需要具備極強(qiáng)的機(jī)動(dòng)性、靈活性;在小型的創(chuàng)業(yè)團(tuán)隊(duì)中不能墨守成規(guī),照搬大廠的規(guī)范、流程、制度以及技術(shù)架構(gòu)。另一個(gè)方面,也不能因?yàn)槭切F(tuán)隊(duì)就忽略了對(duì)于架構(gòu)、編程規(guī)范(如 Lint)、重構(gòu)(如 Code Review)等的堅(jiān)持,否則隨著業(yè)務(wù)發(fā)展迅速增加的技術(shù)負(fù)債終會(huì)顯示出它的破壞力。就如筆者在《 SoftwareArchitecture-Series 》中關(guān)于所謂復(fù)雜性的討論,軟件架構(gòu)的核心價(jià)值,即是控制系統(tǒng)的復(fù)雜性,將核心業(yè)務(wù)邏輯和技術(shù)細(xì)節(jié)的分離與解耦;互聯(lián)網(wǎng)軟件系統(tǒng)架構(gòu)的設(shè)計(jì)不是一蹴而就,而需要漸進(jìn)、持續(xù)、多次設(shè)計(jì)的。
作為創(chuàng)業(yè)團(tuán)隊(duì)的技術(shù)人員,核心矛盾是提高生產(chǎn)力,提高團(tuán)隊(duì)的研發(fā)效能。我們既要能發(fā)現(xiàn)現(xiàn)有的輪子,去快速組裝他們,去支撐業(yè)務(wù)需求;也要能造輪子,去完成團(tuán)隊(duì)自身的工具化與工程化。同時(shí)也不能盲目追新,很多令人激動(dòng)的新技術(shù)、新特性,但是也要考慮到新技術(shù)本身的不確定性、團(tuán)隊(duì)成員的學(xué)習(xí)成本。這里以 Web 開發(fā)做簡(jiǎn)單示例,在 wx-fe 主題下大概有十來個(gè)項(xiàng)目,其典型包括:
m-fe-*
系列 : 微前端工程化系統(tǒng)項(xiàng)目,包含了前端開發(fā)基礎(chǔ)腳手架、React/Vue/Node/Electron/Taro 以及各種微前端模板。- micro-components 系列 :包含 Web 電子白板、Excel 全棧解決方案等一系列項(xiàng)目。
ueme-*
系列 : 構(gòu)建用戶體驗(yàn)中臺(tái)系列項(xiàng)目。
這部分筆者會(huì)在單獨(dú)的專題中進(jìn)行討論,此處僅引出筆者的代碼庫的沉淀。
雜談:程序員的職業(yè)轉(zhuǎn)折,小團(tuán)隊(duì)與大團(tuán)隊(duì)
不覺入行已有十年,十年蒼狗,我卻是一直懷著對(duì)行業(yè)的焦慮前行,35 的檻一直如達(dá)摩克里斯之劍;不過回頭來看,至少對(duì)于身邊認(rèn)識(shí)的很多前輩,在這個(gè)時(shí)代以 IT/編程為敲門磚進(jìn)入某個(gè)行業(yè)/領(lǐng)域是極好的選擇。只要是真正的有心人,能夠在日常工作中進(jìn)行人脈、管理、行業(yè)等等多維度的積累,是肯定能打破職業(yè)生涯的桎梏,完成轉(zhuǎn)型的。技術(shù)好的,不妨進(jìn)入一些傳統(tǒng)行業(yè)。只要跨過了行業(yè)門檻,有公平競(jìng)爭(zhēng)的機(jī)會(huì),以更現(xiàn)代化的產(chǎn)品與研發(fā)效率,也是有可能進(jìn)行降維打擊的。
但是,需要特別強(qiáng)調(diào)的是,無論進(jìn)入哪個(gè)行業(yè),必須心懷敬畏;毫無行業(yè)經(jīng)驗(yàn)的人,看了幾個(gè) PPT 就揚(yáng)言要顛覆行業(yè),不覺得是對(duì)于前人的不尊重嗎?同時(shí)不能太過畫餅,于己于人皆是如此,反對(duì)強(qiáng)行讓別人為自己的夢(mèng),或者錯(cuò)誤買單。很多人既要獨(dú)斷專行的權(quán)利,卻不愿意承擔(dān)責(zé)任義務(wù)。
職責(zé)的變化
我從 2014 年開始一直陸陸續(xù)續(xù)參與創(chuàng)業(yè)團(tuán)隊(duì)的工作,期間也在大廠工作了三年;頗有感觸的一點(diǎn)是,創(chuàng)業(yè)對(duì)于純技術(shù)背景的同學(xué)并不友好,往往技術(shù)越強(qiáng),落差越大。譬如心態(tài)的轉(zhuǎn)變,很多技術(shù)背景的管理者往往會(huì)不適應(yīng)類似于接口協(xié)調(diào)這樣的工作,覺得似乎是在浪費(fèi)生命。但是需要慢慢地將自己從日常工作中抽身出來,為團(tuán)隊(duì)保駕護(hù)航,上善若水,水利萬物而不爭(zhēng);然后慢慢起身遠(yuǎn)眺,做更偏重于協(xié)調(diào),以業(yè)務(wù)整體績(jī)效為目標(biāo)的事情。此時(shí)在團(tuán)隊(duì)溝通上也需要注意技巧,良好的組織氣氛,是提升團(tuán)隊(duì)研發(fā)效能的重要保障。就像玩游戲一樣,對(duì)于團(tuán)隊(duì)、對(duì)于自己,想要翻越某些藩籬的時(shí)候,需要不斷地給予正向反饋。無論是公司、團(tuán)隊(duì)的管理,還是自我管理,成就感都是非常不錯(cuò)的活力棒與路標(biāo);而保證自己在日常工作或者 Side Project 中獲得成就感的一種前提,就是盡可能細(xì)粒度的切分任務(wù)。
此外,研發(fā)往往有明確的目標(biāo)、指標(biāo),但是在未知行業(yè)中,要提取、抽象出指標(biāo)卻并非易事,并且目標(biāo)也是不斷的變化;這點(diǎn)在大公司中往往是由 PD、PM 去屏蔽,但是在創(chuàng)業(yè)團(tuán)隊(duì)中缺頗為考驗(yàn)技術(shù)人員的辨識(shí)能力。譬如目標(biāo)和過程的區(qū)分。最初我們以為目標(biāo)是:客戶能夠用上我們的軟件與解決方案,后來發(fā)現(xiàn)這只是實(shí)現(xiàn)最終商業(yè)目標(biāo)的過程,后來發(fā)現(xiàn)我們需要的過程是建立聯(lián)接而不是拘泥于軟件使用這件事。競(jìng)爭(zhēng)意識(shí)損害競(jìng)爭(zhēng)力,同樣達(dá)成目標(biāo)的執(zhí)念有時(shí)反而會(huì)損害執(zhí)行力,很多開始以為的階段目標(biāo)反而會(huì)成為你要征服的最高的巔峰。
團(tuán)隊(duì)的組成
在創(chuàng)業(yè)型小團(tuán)隊(duì)中,團(tuán)隊(duì)構(gòu)成不穩(wěn)定。開發(fā)往往身兼數(shù)職,不僅僅實(shí)現(xiàn)功能,經(jīng)常要處理用戶反饋和投訴,還要和產(chǎn)品討論需求、和設(shè)計(jì)討論界面實(shí)現(xiàn),甚至有時(shí)要修電腦、裝軟件、解決疑難雜癥。同時(shí)創(chuàng)業(yè)期的產(chǎn)品可能質(zhì)量要求不高。用戶量級(jí)小,即使質(zhì)量稍差也能接受。做的功能亦不太考慮可擴(kuò)展性,能用就行。技術(shù)視野狹隘。整體業(yè)務(wù)場(chǎng)景少,技術(shù)以使用為主,很少深挖底層原理和實(shí)現(xiàn)。產(chǎn)品的生命周期不可預(yù)測(cè)。做了 1、2 年的產(chǎn)品,可能因?yàn)楦鞣N原因而無法上線。但是,小團(tuán)隊(duì)也同樣具備優(yōu)勢(shì)。人數(shù)少的優(yōu)勢(shì),使得團(tuán)隊(duì)易于扁平,決策層到執(zhí)行層是直接關(guān)系,甚至有時(shí)執(zhí)行層也參與決策。指令下達(dá)速度快,溝通成本降低。而且作為早期參與者,在渡過艱難的生存期之后,更容易成為核心人員。核心代表著股份與期權(quán),持股干活更是動(dòng)力十足。再往后,如果團(tuán)隊(duì)能夠擴(kuò)招,核心人員往往是管理人員的首選。
合適的人才是團(tuán)隊(duì)的基石,招聘也是團(tuán)隊(duì)長(zhǎng)久的任務(wù)與挑戰(zhàn);特別是對(duì)于技術(shù)負(fù)責(zé)人,往往也需要承擔(dān)起招聘。早期的團(tuán)隊(duì)往往是內(nèi)部推薦,或者以人帶人,應(yīng)當(dāng)盡量招聘合適的人才,過低或者過高往往都會(huì)加重團(tuán)隊(duì)的管理成本。在第一輪快速擴(kuò)張之后的平穩(wěn)期,穩(wěn)定是重中之重,同時(shí)注意流水不腐,戶樞不蠹。同時(shí)團(tuán)隊(duì)無論大小,即使沒有專門的 HR,也需要盡量保證面試流程的正規(guī)性,并且針對(duì)不同的面試者展示團(tuán)隊(duì)不同的優(yōu)勢(shì):氛圍良好/極客文化/快速發(fā)展/行業(yè)優(yōu)勢(shì)等等。不過隨著團(tuán)隊(duì)的迅速擴(kuò)張,人員擴(kuò)充本身是熵增的過程,但是熵增也意味著混亂與無序,作為技術(shù)團(tuán)隊(duì)的領(lǐng)導(dǎo)者,需要不斷地進(jìn)行重新定位與角色轉(zhuǎn)變。從早期的核心開發(fā)者,到漸進(jìn)的團(tuán)隊(duì)協(xié)調(diào)者,再到團(tuán)隊(duì)的管理者。
健康的團(tuán)隊(duì),應(yīng)該是離開任何人都可以正常運(yùn)轉(zhuǎn);反過來看,如果核心成員發(fā)現(xiàn)自己在團(tuán)隊(duì)中的地位是無可替代的,反而需要有危機(jī)感,寧可犧牲些可用性,也要換取些分區(qū)容忍性。技術(shù)負(fù)責(zé)人首先要能夠?qū)⑷蝿?wù)合理劃分,將業(yè)務(wù)型的與通用型的模塊化切割開來,盡可能地定義明確邊界與交互的接口協(xié)議。這樣就能夠?qū)⑷蝿?wù)打包給兼職/實(shí)習(xí)人員,盡可能地實(shí)現(xiàn)調(diào)度優(yōu)化。
結(jié)語
前兩日有校友撰文寫道:人生之路,不似揮舞劍花那般行云流水,更若一首平仄絕句,錯(cuò)落有致。面對(duì)道路的蜿蜒,唯有攜著“柳暗花明又一村”的篤定堅(jiān)守,才能穿過眼前橫亙的“山重水復(fù)”。國(guó)學(xué)大師陳寅恪曾說,“唯此獨(dú)立之精神,自由之思想,歷千萬祀,與天壤而同久,共三光而永光。”于個(gè)人,既要失敗要乘早,窮人家的孩子承擔(dān)不起失敗的代價(jià)。不過也要隨時(shí)轉(zhuǎn)換,如多年前一次失敗的創(chuàng)業(yè),創(chuàng)業(yè)痛苦的并不是燦爛熱烈的死去,而是將死不死,雖靜美卻無心賞秋葉。
最后,謹(jǐn)以此文,致敬認(rèn)識(shí)的或者不認(rèn)識(shí)的創(chuàng)業(yè)者,也是贈(zèng)言給身邊走在創(chuàng)業(yè)路上的朋友。