電子產(chǎn)業(yè)一站式賦能平臺(tái)

PCB聯(lián)盟網(wǎng)

搜索
查看: 372|回復(fù): 0
收起左側(cè)

我在美團(tuán)的八年

[復(fù)制鏈接]

445

主題

445

帖子

3456

積分

四級(jí)會(huì)員

Rank: 4

積分
3456
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2024-9-25 09:01:00 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
點(diǎn)擊上方“C語言與CPP編程”,選擇“關(guān)注/置頂/星標(biāo)公眾號(hào)
干貨福利,第一時(shí)間送達(dá)!
最近有小伙伴說沒有收到當(dāng)天的文章推送,這是因?yàn)槲⑿鸥牧送扑蜋C(jī)制,確實(shí)會(huì)一部分有小伙伴刷不到當(dāng)天的文章,一些比較實(shí)用的知識(shí)和信息,錯(cuò)過了就是錯(cuò)過了。所以建議大家加個(gè)星標(biāo)??,就能第一時(shí)間收到推送了。

前幾天,偶然刷到了一篇美團(tuán)技術(shù)團(tuán)隊(duì)的文章,作者云鵬 2014 年加入美團(tuán),先后參與了美團(tuán)酒店供應(yīng)鏈體系、分布式調(diào)度系統(tǒng)的建設(shè)。從一枚職場(chǎng)小白逐步成長為一名技術(shù) Leader。


他分享了 10 條寫給工程師的精進(jìn)建議,我看了之后感觸很深,在此分享給大家。文章很長,大概 8000 字,不過每條經(jīng)驗(yàn)都值得反復(fù)琢磨,認(rèn)真看完一定會(huì)有所收獲。
下面是正文。
作者:云鵬,2014 年加入美團(tuán)
時(shí)間回到 8 年前,我人生中的第一份實(shí)習(xí)工作,是在某互聯(lián)網(wǎng)公司的無線搜索部做一個(gè) C++ 工程師。當(dāng)時(shí)的我可謂意氣風(fēng)發(fā),想要大干一場(chǎng),結(jié)果第一次上線就寫了人生中第一個(gè) Case Study。
由于對(duì)部署環(huán)境的不了解,把 SVN 庫里的配置文件錯(cuò)誤地發(fā)到線上,并且上完線就去吃晚飯了,等吃飯回來發(fā)現(xiàn)師傅在焦頭爛額地回滾配置。那次故障造成了一個(gè)核心服務(wù) 20 分鐘不可用,影響了幾百萬的用戶。
這僅僅是一個(gè)開始,在后來半年的時(shí)間里,我?guī)缀醢阉新殘?chǎng)新人可能犯的錯(cuò)誤都犯了個(gè)遍。
架構(gòu)師讓我調(diào)研一個(gè)抓取性能提升方案,我悶頭搞了兩周,也沒有得出任何結(jié)論;本來安排好的開發(fā)計(jì)劃,由于我臨時(shí)要回去寫論文,搞得經(jīng)理措手不及;參加項(xiàng)目座談會(huì),全程 “打醬油”……
那段時(shí)間,自己也很苦惱,幾乎每天晚上 11 點(diǎn)多才走,很累很辛苦,但依然拿不到想要的結(jié)果。
8 年過去了,自己從一個(gè)職場(chǎng)小白逐步成長為一名技術(shù) Leader。我發(fā)現(xiàn)團(tuán)隊(duì)中的很多同學(xué)在不停地重復(fù)犯著自己當(dāng)年類似的錯(cuò)誤。他們并不是不努力,到底是哪里出了問題?經(jīng)過一段時(shí)間的觀察與思考后,我想我找到了答案。
那就是:我們大多數(shù)同學(xué)在工作中缺乏原則的指導(dǎo)。原則,猶如指引行動(dòng)的 “燈塔”,它連接著我們的價(jià)值觀與行動(dòng)。
不久前,橋水基金創(chuàng)始人雷?達(dá)里奧在《原則》一書中所傳達(dá)的理念,引爆了朋友圈。每個(gè)人都應(yīng)該有自己的原則,當(dāng)我們需要作出選擇時(shí),一定要堅(jiān)持以原則為中心。
但是在現(xiàn)實(shí)生活中,我們往往缺少對(duì)原則的總結(jié),對(duì)于很多人來說這是一門 “只可意會(huì)不可言傳” 的玄學(xué),是屬于老司機(jī)的秘密,其實(shí)不然。
“追求卓越” 是美團(tuán)的價(jià)值觀。作為一名技術(shù)人員,我們應(yīng)該如何踐行呢?本文總結(jié)了十條精進(jìn)原則,希望能夠給大家?guī)硪恍﹩l(fā),更好地指導(dǎo)我們的行動(dòng)。
原則一:Owner 意識(shí)“Owner 意識(shí)” 主要體現(xiàn)在兩個(gè)層面:一是認(rèn)真負(fù)責(zé)的態(tài)度,二是積極主動(dòng)的精神。
認(rèn)真負(fù)責(zé)是工作的底線。首先,要對(duì)我們交付的結(jié)果負(fù)責(zé)。項(xiàng)目中每一個(gè)設(shè)計(jì)文檔、每一行代碼都需要認(rèn)真完成,要對(duì)它的質(zhì)量負(fù)責(zé)。如果設(shè)計(jì)文檔邏輯混亂,代碼沒有注釋,測(cè)試時(shí)發(fā)現(xiàn)一堆 Bug,影響的不僅僅是 RD 的工程交付質(zhì)量,還會(huì)對(duì)協(xié)同工作的 RD、QA、PM 等產(chǎn)生不好的影響。
久而久之,團(tuán)隊(duì)的整體交付質(zhì)量、工作效率也會(huì)逐步下降,甚至?xí)䦟?dǎo)致團(tuán)隊(duì)成員之間產(chǎn)生不信任感。其次,我們要對(duì)開發(fā)的系統(tǒng)負(fù)責(zé)。系統(tǒng)的架構(gòu)是否需要改進(jìn),接口文檔是否完善,日志是否完整,數(shù)據(jù)庫是否需要擴(kuò)容,緩存空間夠不夠等等,這些都是需要落地的事情。作為系統(tǒng) Owner,請(qǐng)一定要認(rèn)真履行。
積極主動(dòng)是 “Owner 意識(shí)” 更高一級(jí)的要求。RD 每天要面對(duì)大量的工作,而且很多并不在計(jì)劃內(nèi),這就需要具備一種積極主動(dòng)的精神。
例如我們每天可能會(huì)面對(duì)大量的技術(shù)咨詢,如果客戶提出的問題很長時(shí)間得不到回應(yīng)的話,就會(huì)帶來不好的客戶體驗(yàn)。
很多同學(xué)說忙于自己的工作沒有時(shí)間處理,有同學(xué)覺得這件事不是很重要,也有很多同學(xué)是看到了,但是不知道怎么回答,更有甚者,看到了干脆裝沒看見。這些都是缺乏 Owner 意識(shí)的體現(xiàn)。
正確的做法是積極主動(dòng)地推動(dòng)問題的解決,如果時(shí)間無法排開或者不知道如何解決,可以直接將問題反饋給能解決的同學(xué)。
積極主動(dòng)還可以表現(xiàn)在更多方面。比如很多同學(xué)會(huì)自發(fā)地梳理負(fù)責(zé)服務(wù)的現(xiàn)狀,根據(jù)接口在性能方面暴露的問題提出改進(jìn)意見并持續(xù)推動(dòng)解決;也有同學(xué)在跨團(tuán)隊(duì)溝通中主動(dòng)承擔(dān)起主 R 的角色,積極發(fā)現(xiàn)問題、暴露問題,推動(dòng)合作團(tuán)隊(duì)的進(jìn)度,保證項(xiàng)目順利推進(jìn)。這些同學(xué)無一不是團(tuán)隊(duì)的中堅(jiān)力量。
所以,我們?cè)谧龊米约悍輧?nèi)工作的同時(shí),也應(yīng)該積極主動(dòng)地投入到 “份外” 的工作中去。一分耕耘一分收獲,不要給自己設(shè)限,努力成為一個(gè)更加優(yōu)秀的人。
原則二:時(shí)間觀念相信大家都有時(shí)間觀念,但是真正能執(zhí)行到位的可能并沒有那么多。
互聯(lián)網(wǎng)是一個(gè)快速發(fā)展的行業(yè),RD 的研發(fā)效率是一個(gè)公司硬實(shí)力的重要體現(xiàn)。項(xiàng)目的按期交付是一項(xiàng)很重要的執(zhí)行能力,在很大程度上決定著領(lǐng)導(dǎo)和同事對(duì)自己靠譜程度的評(píng)價(jià)。
大家可能會(huì)問:難度幾乎相同的項(xiàng)目,為什么有的同學(xué)經(jīng)常 Delay,而有的同學(xué)每次都能按時(shí)上線?一個(gè)很重要的原因,就是這些按時(shí)交付的同學(xué)往往具備如下兩個(gè)特質(zhì):做事有計(jì)劃,工作分主次。
工作安排要有計(jì)劃性。通常,RD 在設(shè)計(jì)評(píng)審之后就能預(yù)估出精確的開發(fā)時(shí)間,進(jìn)而再合理地安排開發(fā)、聯(lián)調(diào)、測(cè)試計(jì)劃。如果是項(xiàng)目負(fù)責(zé)人,那么就會(huì)涉及協(xié)調(diào) FE、QA、PM 等多個(gè)工種的同學(xué)共同完成工作。
凡事預(yù)則立,不預(yù)則廢。在計(jì)劃制定過程中,要盡可能把每一項(xiàng)拆細(xì)一點(diǎn)(至少到 pd 粒度)。事實(shí)證明,粒度越細(xì),計(jì)劃就越精準(zhǔn),實(shí)際開發(fā)時(shí)間與計(jì)劃之間的誤差就會(huì)越小。
此外,務(wù)必要規(guī)定明確的可檢查的產(chǎn)出,并在計(jì)劃中設(shè)置一些關(guān)鍵的時(shí)間點(diǎn)進(jìn)行核對(duì)。無數(shù)血淋淋的事實(shí)告訴我們,很多項(xiàng)目延期都是因?yàn)樵谝恍╆P(guān)鍵交付點(diǎn)上雙方存在分歧造成的。
例如后臺(tái) RD 的接口文檔計(jì)劃在周五提供,F(xiàn)E 認(rèn)為是周五上午,而 RD 認(rèn)為是周五下班前提交,無形中會(huì)給排期帶來了 1pd 的誤差。所以,我們要做到計(jì)劃粒度足夠細(xì),關(guān)鍵時(shí)間點(diǎn)要可檢查。
工作安排要分清楚主次。我們每天要面對(duì)很多的事情,要學(xué)會(huì)分辨這些工作的主次。可以嘗試使用 “艾森豪威爾法則”(四象限法則),把工作按照重要、緊急程度分成四象限。優(yōu)先做重要緊急的事情;重要不緊急的事情可以暫緩做,但是要持續(xù)推進(jìn);緊急不重要的事情可以酌情委托給最合適的人做;不重要不緊急的事情可以考慮不做。
很多項(xiàng)目無法按期交付的原因,都是因?yàn)閳?zhí)行人分不清主次。比如在開發(fā)中需要使用到 ES,一些不熟悉 ES 的同學(xué)可能想系統(tǒng)性地學(xué)習(xí)一下這方面的知識(shí),就會(huì)一頭扎進(jìn) ES 的汪洋中。
最后才發(fā)現(xiàn),原本一天就能完成的工作被嚴(yán)重拖后。實(shí)際工作中,我們應(yīng)當(dāng)避免這種 “本末倒置” 的工作方式。在本例中,“系統(tǒng)性地學(xué)習(xí) ES” 是一件重要但不緊急的事情。要學(xué)會(huì)分辨出這些干擾的工作項(xiàng),保證重要緊急的事情能夠按時(shí)交付。
原則三:以終為始“以終為始”(Begin With The End In Mind),是史蒂芬?柯維在《高效能人士的七個(gè)習(xí)慣》中提到的一個(gè)習(xí)慣。它是以所有事物都經(jīng)過兩次創(chuàng)造的原則(第一次為心智上的創(chuàng)造,第二次為實(shí)際的創(chuàng)造)為基礎(chǔ)的。直觀的表達(dá)就是:先想清楚目標(biāo),然后努力實(shí)現(xiàn)。
在工作中,很多 RD 往往只是埋頭走路,很少抬頭看天。每次季度總結(jié)的時(shí)候,羅列了很多項(xiàng)目,付出很多努力。但是具體這些項(xiàng)目取得了哪些收益,對(duì)業(yè)務(wù)有哪些提升,卻很難說出來。
這就說明在工作中并沒有遵守 “以終為始” 這一原則。此外,很多同學(xué)在做需求的過程中,對(duì)于目標(biāo)與收益關(guān)注不夠,系統(tǒng)上線之后,也沒有持續(xù)地跟進(jìn)使用效果。這一點(diǎn)在技術(shù)優(yōu)化項(xiàng)目中體現(xiàn)的尤為明顯。
例如在一個(gè)接口性能優(yōu)化的項(xiàng)目中,經(jīng)過 RD 的努力優(yōu)化,系統(tǒng) TP99 縮短了 60%,支持 QPS 提升了 2 倍。但是系統(tǒng)到底需要優(yōu)化到什么程度呢?是不是縮短 60%,提升 2 倍就能滿足需求呢?
在優(yōu)化之前,很多同學(xué)常常忘記設(shè)置一個(gè)預(yù)設(shè)的目標(biāo)(TP99 小于多少,支持 QPS 大于多少)。我們必須清楚,優(yōu)化一定是有原因的,比如預(yù)期某節(jié)假日流量會(huì)暴增或者某接口超時(shí)比例過高,如果不進(jìn)行優(yōu)化,系統(tǒng)可能會(huì)存在宕機(jī)風(fēng)險(xiǎn)。解決特定的問題才是技術(shù)優(yōu)化的最終目的,所以要根據(jù)問題設(shè)定目標(biāo),再進(jìn)行優(yōu)化。
“以終為始”,這一原則還可以作用于我們的學(xué)習(xí)中。很多同學(xué)看過很多技術(shù)文章,但是總是感覺自己依然一無所知。很重要的一個(gè)原因,就是沒有帶著目標(biāo)去學(xué)習(xí)。
在這個(gè)信息爆炸的時(shí)代,如果只是碎片化地接收各個(gè)公眾號(hào)推送的文章,效果幾乎可以忽略不計(jì)。在學(xué)習(xí)之前,我們一定要問自己,這次學(xué)習(xí)的目標(biāo)是什么?是想把 Redis 的持久化原理搞清楚,還是把 Redis 的主從同步機(jī)制弄明白,亦或是想學(xué)習(xí)整個(gè) Redis Cluster 的架構(gòu)體系。
如果我們能夠帶著問題與目標(biāo),再進(jìn)行相關(guān)的資料搜集與學(xué)習(xí),就會(huì)事半功倍。這種學(xué)習(xí)模式的效果會(huì)比碎片化閱讀好很多。
原則四:閉環(huán)思維你是否遇到過這樣的場(chǎng)景:參加了一個(gè)設(shè)計(jì)(或需求)評(píng)審,大家興致勃勃地提了很多合理的意見,等到再次評(píng)審的時(shí)候,卻發(fā)現(xiàn)第一次提的很多問題都沒有得到改進(jìn),很多討論過的問題需要從頭再開始討論。這種情況就是一種典型的工作不閉環(huán)。
之前看過一句話:一個(gè)人是否靠譜,就看他能否做到凡事有交代,件件有著落,事事有回音。這就是閉環(huán)思維的重要性。它強(qiáng)調(diào)的是一種即時(shí)反饋閉環(huán),如果別人給我們分配了一個(gè)任務(wù),不管完成的結(jié)果如何,一定要在規(guī)定的時(shí)間內(nèi)給出明確的反饋。
例如在跨部門的溝通會(huì)議中,雖然各方達(dá)成了一致,會(huì)議發(fā)起者已經(jīng)將最終的記錄周知大家。但是,到這一步其實(shí)并沒有完成真正的閉環(huán),在落地執(zhí)行過程中很可能還存在一些潛在的問題。
例如,會(huì)議紀(jì)要是否經(jīng)各方仔細(xì)核對(duì)并確認(rèn)過?會(huì)議中明確的 To Do 進(jìn)展是什么?完成結(jié)果有沒有 Check 的機(jī)制?如果這些沒有做到的話,就會(huì)陷入 “溝通 - 發(fā)現(xiàn)問題 - 再溝通 - 再發(fā)現(xiàn)問題” 的惡性循環(huán)中。
真正的閉環(huán),要求我們對(duì)工作中的事情都能夠養(yǎng)成良好的思維習(xí)慣,溝通要有結(jié)論,通知要有反饋,To Do 要有驗(yàn)收。
“閉環(huán)思維” 還要求能夠定期主動(dòng)進(jìn)行階段性的反饋。剛參加工作時(shí),我接了一個(gè)工期為兩個(gè)月的項(xiàng)目。整個(gè)項(xiàng)目需要獨(dú)自完成,自己每天按照計(jì)劃,有條不紊地進(jìn)行開發(fā)。大概過了兩周之后,Leader 詢問項(xiàng)目進(jìn)度,雖然我已經(jīng)跟他說沒問題。然而,Leader 告訴我,因?yàn)槲颐刻鞂?duì)著電腦也不說話,讓他心里很沒底。
這時(shí),我才意識(shí)到一個(gè)很重要的問題,我跟 Leader 之間存在信息不對(duì)稱。從那以后,我就時(shí)不時(shí)得跟他匯報(bào)一下進(jìn)度,哪怕就只有簡短的一句話,也可以明顯感覺,他對(duì)我的信心增加了很多。
特別是我做 Leader 之后,對(duì)這種閉環(huán)反饋的理解,就更加深刻了。從 Leader 的角度看,其實(shí)只是想知道項(xiàng)目是否在正常推進(jìn),是否遇到問題需要他協(xié)助解決。
原則五:保持敬畏“君子之心,常懷敬畏”,保持敬畏之心能夠讓我們少犯錯(cuò)誤。在工作中存在各種各樣的規(guī)范,例如代碼規(guī)范、設(shè)計(jì)規(guī)范、上線規(guī)范等等。
我們必須明白,這些規(guī)范的制定一定是基于某些客觀原因的,它們都是歷史上無數(shù) Case 積累而來的經(jīng)驗(yàn)。團(tuán)隊(duì)里的每一個(gè)成員都應(yīng)該學(xué)習(xí)并嚴(yán)格遵守,這一點(diǎn)對(duì)于新人尤其重要。
當(dāng)我們進(jìn)入到一個(gè)新的團(tuán)隊(duì),請(qǐng)先暫時(shí)忘掉之前的習(xí)慣,要盡快學(xué)習(xí)團(tuán)隊(duì)既有的規(guī)范,并且讓自己與團(tuán)隊(duì)保持一致。
以編碼風(fēng)格為例,很多同學(xué)往往習(xí)慣于自己之前的代碼寫作風(fēng)格,在做新公司第一個(gè)項(xiàng)目時(shí),也按照自己的習(xí)慣進(jìn)行變量、包的命名等等。結(jié)果在代碼 Review 過程中,被提了很多修改意見,不得不返工重寫,得不償失。如果能夠保持敬畏之心,提前了解編碼規(guī)范,這種問題完全可以避免。
類似的問題,還包括對(duì)上線流程的不了解,對(duì)回滾操作不熟悉,對(duì) SRE 線上變更過程不了解等等。除了這些顯而易見的規(guī)范,還有一些約定俗成的規(guī)則。個(gè)人建議是:如果有事情拿不準(zhǔn),不妨多問問其他同事,不要憑自己的感覺做事情。
保持敬畏之心并不意味著要 “因循守舊”。在我們充分了解這些規(guī)范和約定之后,如果覺得存在不妥之處,可以跟全組同學(xué)討論,是否采納新的建議,然后及時(shí)去更新迭代。其實(shí),讓規(guī)范與約定與時(shí)俱進(jìn),也是另一種形式的敬畏。
原則六:事不過二“事不過二”,是我們團(tuán)隊(duì)一貫堅(jiān)持的原則,它可以解讀為兩層含義。
一層含義是 “所有的評(píng)審與問題討論,不要超過兩次”。之所以有這樣的要求,是因?yàn)槲覀儼l(fā)現(xiàn),很多 RD 都把時(shí)間花費(fèi)在一些無休止的評(píng)審與問題討論中,真正投入到實(shí)際開發(fā)中的時(shí)間反而很少。
在實(shí)際工作場(chǎng)景中,我們經(jīng)常會(huì)遇到一些不是很成熟的需求評(píng)審。這些需求文檔,要么是背景與目標(biāo)含糊不清,要么是產(chǎn)品方案描述不夠細(xì)化,或者存在歧義。RD 與 PM 被迫反復(fù)進(jìn)行討論,我曾經(jīng)遇到過一個(gè)需求評(píng)審,進(jìn)行了三次還被打回。
同樣的問題,在設(shè)計(jì)評(píng)審中也屢見不鮮。方案固然需要經(jīng)過反復(fù)的討論,但是如果遲遲不能達(dá)成一致,就會(huì)耗費(fèi)很多 RD 與 PM 的寶貴時(shí)間,這就與提升研發(fā)效率的理念背道而馳。因此我們團(tuán)隊(duì)規(guī)定:所有的評(píng)審最多兩次。
通過這種方式,倒逼利益相關(guān)方盡可能地做好需求與方案設(shè)計(jì)。評(píng)審會(huì)議組織前,嘗試與所有相關(guān)人員達(dá)成一致,詢問對(duì)方的意見,并進(jìn)行有針對(duì)性的討論,這樣能夠大大提升評(píng)審會(huì)議的效率和質(zhì)量。如果在第一次評(píng)審中不通過,那么就只有一次機(jī)會(huì)進(jìn)行復(fù)審。一旦兩次不通過,就需要進(jìn)行 Case Study。
“事不過二” 原則的另一層含義,是 “同樣的錯(cuò)誤不能犯第二次”
每次故障之后,Case Study 都必須進(jìn)行深刻的總結(jié)復(fù)盤,對(duì)故障原因進(jìn)行 5 Why 分析,給出明確可執(zhí)行的 To Do List。每次季度總結(jié)會(huì),大家自我反省問題所在,在下個(gè)季度必須有所改善,不能再犯類似的錯(cuò)誤。
孔子云:“不遷怒,不貳過”,在錯(cuò)誤中反思與成長,才能讓我們成為更優(yōu)秀的人。
原則七:設(shè)計(jì)優(yōu)先“設(shè)計(jì)優(yōu)先” 這條原則,相對(duì)來說更加具體一些。之所以單列一項(xiàng),是因?yàn)榧軜?gòu)設(shè)計(jì)太重要了。Uncle Bob 曾說過:“軟件架構(gòu)的目標(biāo),是為了讓構(gòu)建與維護(hù)系統(tǒng)的所需人力資源最小化。”
架構(gòu)設(shè)計(jì),并不僅僅關(guān)系到系統(tǒng)的質(zhì)量,還關(guān)乎團(tuán)隊(duì)的效能問題。很多團(tuán)隊(duì)也有明文規(guī)定,開發(fā)周期在 3pd 以上的項(xiàng)目必須有設(shè)計(jì)文檔,開發(fā)周期在 5pd 以上的項(xiàng)目必須有設(shè)計(jì)評(píng)審。
在具體的執(zhí)行過程中,由于各種原因,設(shè)計(jì)往往并不能達(dá)到預(yù)期的效果。究其原因,有的是因?yàn)轫?xiàng)目周期緊,來不及設(shè)計(jì)的足夠詳細(xì);有的是因?yàn)?RD 主觀上認(rèn)為項(xiàng)目比較簡單,設(shè)計(jì)草草了事。
無數(shù)事實(shí)證明,忽略了前期設(shè)計(jì),往往會(huì)導(dǎo)致后續(xù)開發(fā)周期被大幅拉長,給項(xiàng)目帶來了很大的 Delay 風(fēng)險(xiǎn)。而且最可怕的是,不當(dāng)?shù)脑O(shè)計(jì)會(huì)給項(xiàng)目帶來巨大的后期維護(hù)成本,我們不得不騰出時(shí)間,專門進(jìn)行項(xiàng)目的優(yōu)化與重構(gòu)。
因此,無論什么時(shí)候都要記住 “設(shè)計(jì)優(yōu)先” 這一原則。磨刀不誤砍柴工,前期良好的設(shè)計(jì),會(huì)給項(xiàng)目開發(fā)以及后期維護(hù)帶來極大的收益。
“設(shè)計(jì)優(yōu)先” 這一原則,要求寫別人看得懂的設(shè)計(jì)。我們了解一個(gè)系統(tǒng)最直接的途徑就是結(jié)合設(shè)計(jì)文檔與代碼。
在實(shí)際工作中,很多同學(xué)的設(shè)計(jì)文檔讓大家看得一頭霧水,通篇下來,看不出系統(tǒng)整體的設(shè)計(jì)思路。其實(shí),設(shè)計(jì)的過程是一種智力上的創(chuàng)造,我們更希望它能成為個(gè)人與集體智慧的結(jié)晶。
如何才能讓我們的設(shè)計(jì)變得通俗易懂?我個(gè)人認(rèn)為,設(shè)計(jì)應(yīng)該盡量使用比較合理的邏輯,進(jìn)而把設(shè)計(jì)中的一些點(diǎn)組織起來。比如可以使用從抽象到具體,由總到分的結(jié)構(gòu)來組織材料。在設(shè)計(jì)過程中,要以需求為出發(fā)點(diǎn),通過合理的抽象把問題簡化,講清楚各個(gè)模塊之間的關(guān)系,再詳細(xì)分述模塊的實(shí)現(xiàn)細(xì)節(jié)。
做完設(shè)計(jì)之后,可以發(fā)給比較資深的 RD 或者 PM 審閱一下,根據(jù)他們的反饋再進(jìn)行完善。好的設(shè)計(jì),一定是邏輯清晰易懂、細(xì)節(jié)落地可執(zhí)行的。
原則八:P/PC 平衡
“P/PC 平衡” 原則,即產(chǎn)出與產(chǎn)能平衡原則。伊索寓言中講述了一個(gè)《生金蛋的鵝》的故事。產(chǎn)出好比 “金蛋”,產(chǎn)能好比 “會(huì)下金蛋的鵝”!爸氐拜p鵝” 的人,最終可能連產(chǎn)蛋的資產(chǎn)都保不住;“重鵝輕蛋” 的人,最終可能會(huì)被餓死。
產(chǎn)出與產(chǎn)能必須平衡,才能達(dá)到真正的高效能。為了讓大家更清晰的了解這一原則,本文舉兩個(gè)例子。
從系統(tǒng)的角度看,每一個(gè)系統(tǒng)都是通過持續(xù)不斷地疊加功能,來實(shí)現(xiàn)其產(chǎn)出,而系統(tǒng)的產(chǎn)能是通過系統(tǒng)架構(gòu)的可擴(kuò)展性、穩(wěn)定性等一系列特性來表征。
為了達(dá)到產(chǎn)出與產(chǎn)能的平衡,需要在不斷支持業(yè)務(wù)需求的過程中,持續(xù)進(jìn)行技術(shù)架構(gòu)層面的優(yōu)化。如果一味地做業(yè)務(wù)需求,經(jīng)過一定的時(shí)間,系統(tǒng)會(huì)越來越慢,最終影響業(yè)務(wù)的穩(wěn)定性;反之,一個(gè)沒有任何業(yè)務(wù)產(chǎn)出的系統(tǒng),最終會(huì)消亡。
再從 RD 的角度來看這個(gè)問題,RD 通過做需求來給公司創(chuàng)造價(jià)值,實(shí)現(xiàn)自己的產(chǎn)出。而 RD 的產(chǎn)能是指技術(shù)能力、軟素質(zhì)、身體健康狀況,有這些資本后,我們才能進(jìn)行持續(xù)的產(chǎn)出。
在日常工作中,我發(fā)現(xiàn)很多 RD 往往只重視產(chǎn)出。他們也在很努力地做項(xiàng)目,但是每一個(gè)項(xiàng)目所使用的方法,還是沿用自己先前一貫的思路。最終,不僅項(xiàng)目做得一般,還會(huì)抱怨自己得不到任何成長。這就是 P/PC 不平衡的體現(xiàn)。
如果能在做項(xiàng)目的過程中,通過學(xué)習(xí)和總結(jié)持續(xù)提升自己的技術(shù)能力和軟素質(zhì),并將其應(yīng)用于項(xiàng)目實(shí)施交付中,相信一定會(huì)取得雙贏的結(jié)果。
“P/PC 平衡” 原則還適用于很多其他的領(lǐng)域,例如團(tuán)隊(duì)、家庭等,我本人也非常推崇這一原則。希望大家也能將其作為自身的一項(xiàng)基本原則,努力尋找到產(chǎn)出與產(chǎn)能的平衡點(diǎn)。
原則九:善于提問“善于提問”,首先要勤于提問。求知欲源于好奇心,是人類的一種本能。在工作中要養(yǎng)成勤于提問的好習(xí)慣,不懂就問,不要因?yàn)樽约阂粫r(shí)懶惰或者礙于情面,就放棄提問的機(jī)會(huì)。當(dāng)遇到不同的觀點(diǎn)時(shí),也要禮貌地問出來。
波克定理告訴我們,只有在爭辯中,才可能誕生最好的主意和最好的決定。
在設(shè)計(jì)評(píng)審、代碼評(píng)審這類體現(xiàn)集體智慧的活動(dòng)中,遇到有問題的地方一定要提出來。
我經(jīng)?吹剑芏嗤瑢W(xué)評(píng)審全程一言不發(fā),這就是浪費(fèi)大家的時(shí)間。設(shè)計(jì)評(píng)審的目的,是讓大家針對(duì)方案提出改進(jìn)意見并達(dá)成一致,如果全程 “打醬油”,那就失去了評(píng)審的意義。我們鼓勵(lì)大家多提問,把自己內(nèi)心的疑惑表達(dá)出來,然后通過交流的方式得到答案。
“善于提問”,還要懂得如何提問。為什么同樣是參加設(shè)計(jì)評(píng)審,有的同學(xué)就能提出很好的問題,而有的同學(xué)卻提不出任何問題?除了知識(shí)儲(chǔ)備、專業(yè)技能、經(jīng)驗(yàn)等方面的差異外,還有一點(diǎn)很重要:這就是批判性思維。
批判性思維主張通過批判性思考達(dá)到理性思維,即對(duì)事物本質(zhì)的認(rèn)知和掌握。關(guān)于如何進(jìn)行批判性思維,大家可以參考一些經(jīng)典的圖書如《批判性思維》、《學(xué)會(huì)提問》等。
在工作中面臨一項(xiàng)決策時(shí),會(huì)有各種各樣的意見擺在你面前,所以我們必須要學(xué)會(huì)使用批判性思維來進(jìn)行分析,每個(gè)人的論據(jù)是否可靠,論證是否合理,是否有隱含的立場(chǎng)。同樣,在閱讀一篇技術(shù)博客的時(shí)候,也要使用批判性的思維,多問幾個(gè)為什么,作者得出的結(jié)論是否合理?論據(jù)是否充分?只有這樣,才能不斷地獲取真正的知識(shí)。
原則十:空杯心態(tài)“滿招損,謙受益”,“空杯心態(tài)” 是最后一項(xiàng)原則。我覺得這也是一個(gè)人能夠持續(xù)成長的前提。
做技術(shù)的人,骨子里通常有股傲氣,并且會(huì)隨著資歷、成績的提升而不斷增加。初入職場(chǎng)的小白,可能會(huì)非常謙虛,但是工作幾年之后,專業(yè)技能逐步提升,可能還取得了一些小成就,人就會(huì)越來越自信。
這時(shí)候,如果不能始終保持 “空杯心態(tài)”,這種自信就會(huì)逐步演變?yōu)樽詽M。自滿的人,往往表現(xiàn)為工作中把別人的建議當(dāng)成是批評(píng),不接受任何反對(duì)意見,學(xué)習(xí)上也缺乏求知的動(dòng)力,總是拿自己的長處去跟別人的短處做比較。其實(shí)每個(gè)人多少都會(huì)有一些自滿,可怕的是不知道甚至不愿承認(rèn)自滿。
保持 “空杯心態(tài)” 這一原則要求我們時(shí)刻進(jìn)行自我檢視與反省。在工作中,多去跟不同級(jí)別的同學(xué)聊一聊,或者做一個(gè) 360 度評(píng)估,這有助于我們更加客觀地評(píng)價(jià)自己。在橫向?qū)Ρ戎校嘞蚰切﹥?yōu)秀的同學(xué)看齊,學(xué)習(xí)他人的優(yōu)點(diǎn)。
很多同學(xué)在設(shè)計(jì)評(píng)審或者代碼 Review 過程中,針對(duì)別人提出的問題與建議,往往都采用一種對(duì)立的態(tài)度。錯(cuò)誤地認(rèn)為別人是在挑刺,是在針對(duì)自己。誠然,在某些方面,我們可能確實(shí)比其他人想得深入,但是這不代表在所有方面都能考慮周全。
對(duì)于別人的建議,建議使用 “善于提問” 原則里提到的批判性思維仔細(xì)分析一下,虛心地吸取那些好的建議。
工作學(xué)習(xí)就像 “練級(jí)打怪”,技能儲(chǔ)備的越多,就越容易走到最后。保持空杯心態(tài),可以讓我們發(fā)現(xiàn)很多以前注意不到的新能力,我們要做的就是努力學(xué)習(xí)它,將它們轉(zhuǎn)化為自己能力庫的一部分。
寫在最后以上,是我總結(jié)的工作與學(xué)習(xí)的十條基本原則。
其中有的側(cè)重于個(gè)人做事情的方法,如 “Owner 意識(shí)”、“時(shí)間觀念”、“以終為始”、” 閉環(huán)思維”;有的側(cè)重于團(tuán)隊(duì)工作標(biāo)準(zhǔn)規(guī)范,如 “保持敬畏”、“事不過二”、“設(shè)計(jì)優(yōu)先”;有的側(cè)重于團(tuán)隊(duì)或個(gè)人效能提升,如 “P/PC 平衡”、“善于提問”、“空杯心態(tài)”。
這些原則是我多年在工作與學(xué)習(xí)中,不斷總結(jié)得來的經(jīng)驗(yàn)。希望在大家面臨選擇時(shí),這些原則能夠起到一定的幫助和指導(dǎo)作用。
以原則為中心地工作與生活,讓自己與團(tuán)隊(duì)變得更加強(qiáng)大。
——你好,我是飛宇。日常分享C/C++、計(jì)算機(jī)學(xué)習(xí)經(jīng)驗(yàn)、工作體會(huì),歡迎點(diǎn)擊此處查看我以前的學(xué)習(xí)筆記&經(jīng)驗(yàn)&分享的資源。
我組建了一些社群一起交流,群里有大牛也有小白,如果你有意可以一起進(jìn)群交流。

歡迎你添加我的微信,我拉你進(jìn)技術(shù)交流群。此外,我也會(huì)經(jīng)常在微信上分享一些計(jì)算機(jī)學(xué)習(xí)經(jīng)驗(yàn)以及工作體驗(yàn),還有一些內(nèi)推機(jī)會(huì)。


加個(gè)微信,打開另一扇窗
經(jīng)常遇到有讀者后臺(tái)私信想要一些編程學(xué)習(xí)資源,這里分享 1T 的編程電子書、C/C++開發(fā)手冊(cè)、Github上182K+的架構(gòu)路線圖、LeetCode算法刷題筆記等精品學(xué)習(xí)資料,點(diǎn)擊下方公眾號(hào)會(huì)回復(fù)"編程"即可免費(fèi)領(lǐng)取~

感謝你的分享,點(diǎn)贊,在看三  

發(fā)表回復(fù)

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表