《大史住在大前端》前端技術博文集會在多社群同步更新:
位元組跳動幸福裡大前端團隊邀請各路高手前來玩耍,團隊和諧有愛,技術硬核,位元組範兒正,覆蓋前端各個方向技術棧,總有位置適合你,Base北京,社招實習都有HC,不要猶豫,內推簡歷請直接瞄shiwenqiang@bytedance.com~
宣告
下文只是自己對比一些行業現狀和過去半年經歷的反思,並不影射任何公司任何部門,我在新團隊工作的很開心,和優秀的人做有挑戰的事是非常有趣的經歷,文中的觀點和認知也僅是當前這個時間節點上的一些感悟,未來自己打臉也不是沒有可能~
背景
農曆年前的倒數第二天,我順利完成了試用期答辯,正式成為位元組跳動的前端工程師[撒花慶祝.jpg]。這半年來過得並不輕鬆,但很慶幸自己收穫了認知升級。我們大多數都是天資平庸也沒那麼自覺的普通人,只有依靠極致的忙碌、壓力和高人的點撥才可能獲得認知升級,前提是你心態不能崩。面對壓力,我們的本能反應都是逃避,只要有一絲餘地,都會更期望沿用舊的思維和行動模式,直到無路可退的時候,才會認真思考該如何去解決問題,而這才是能夠承載我們未來走得更遠的東西。
第一次認知升級——關於加班
你能創造更多價值嗎?
當分配給你的任務無法在正常的工作時間內完成時,我們最容易想到的解決方案就是延長時間,也就是加班,因為這段時間你本來也沒有安排什麼其他更有價值的事情,可能犧牲的不過就是打遊戲或者追劇的時間,它們的缺失對於幸福感並不會有實質性的負面影響。相比之下,還不如用來加班來獲得更多的職業發展空間或者掙點加班費。更重要的是,對於一線的開發者而言,你的行為時刻都是被同事看在眼裡的,如果大家都在加班,常常早走的你就會顯得很不合群或者工作不飽和,沒有人會因為你工作效率高而敬重你,但卻很有可能因為與眾不同而排擠你,這也算是身處底層的悲哀,這個時候大多人都不想成為出頭鳥。
很快,晚上9點~10點變成了常規的下班時間,甚至更晚,自己心底裡覺得還可以承受,儘管業餘時間被工作佔據,但公司提供的晚餐和夜間叫車免費的福利還是挺香的。我們總對自己說【過了這段時間就好好休息一下】,但回頭看看時常常會發現“這段時間”似乎從來就沒有結束過。長期積累的疲憊和工作生活的失衡可能會帶來很大的問題,只是它們一直沒有積累到爆發的程度。越是忙碌,就越要擠出時間自我提升和思考,我們都期望能夠【有完整的時間來系統地提升自己】,但其實你心裡比誰都清楚,這幾乎是不可能的,只有接受這樣一個前提,才會開始尋找新的辦法來完成自我提升,過程可能是連滾帶爬狼狽不堪的,但總比站在原地自欺欺人要好得多。
自我提升並不一定需要在業餘時間,對工作本身進行復盤和優化,針對實際問題去快速學習相關的知識並在工作中應用可能比單純地學習新技術對你更有幫助,但如果你在腦海中認定是【忙碌導致了自己沒時間提升】,很容易會陷入一個”越忙碌就越難以提升“的死迴圈,並最終面臨被淘汰出局的風險。底層的忙碌創造的價值是非常有限的,希望你能儘早意識到這一點,不要搭上了健康感動了自己,最後換得一個尷尬的結局。
如果逃避不了加班的事實,那麼就多想想如何讓它的收益變的更大吧。
第二次認知升級——關於提效
你能創造更多價值嗎?
你可能會說【我日常已經需要加班到很晚,真的到極限了,任務再多的話那我只能選擇辭職】,但事實上如果Leader真的把更多的事情強行分派下來時,我們最容易做出的選擇就是投入更多的時間,哪怕自己已經疲憊不堪,哪怕自己心裡煩得要死,因為我們“辭不起”,銀行的存款並不足以讓自己瀟灑滴離開。但你不知道的是,對你來說,退一步可能不過就是換一份工作,但對於很多中小企業的老闆來說,很多時候退一步可能就意味著直接出局。
我們來假設一種極限的狀況,假設現在Leader分配給你的任務每天需要25小時才能做完,如果做不完的話他就和你同歸於盡,那你覺得自己做得到嗎?我想至少你不會那麼快就給出【一定做不到】的論斷,【為問題尋找解決辦法】和【為困難尋找更多借口】看起來都很忙碌的,但只有前者才有破局的機會。
在這個極端的假設下,我們只能嘗試提高效率來達成目標,畢竟即使不吃不睡你也不可能把一天變成25小時。當你放棄【投入更多時間】這個選項時,會發現思路反而會被開啟,因為提效的方式有很多,而大多數都是和行為習慣有關係的,只要刻意練習就可以做到,比如把平時走路通勤改成小跑,比如減少跟同事聊八卦的時間,比如通過練習打字或是記住更多快捷鍵來提高開發效率,比如編寫自動化指令碼去來分擔日常生活中一些重複性較高的事務等等,再比如購買一些好用的辦公用品或是學習一些高效能人士做事的方法論(例如金字塔原理、各種時間管理方法等等),這些細小的點非常多,你可以一點點來養成這些習慣,一段時間的努力後,你會發現25小時完成35~40個小時的工作也並非絕無可能。
也許我們從最開始面對任務量增加時就應該優先思考如何提效而不是以更多的時間為代價,但延長時間和改變習慣相比似乎的確更輕鬆,筆者自己也是在連續11-12點下班的疲憊感中才意識到需要提升工作效率的,慶幸的是它見效很快且收益明顯。工作效率提升後,你又可以愉快地加班了。
第三次認知升級——關於團隊
你能創造更多價值嗎?
工作效率的提升大概可以將原本的產能提升1.2~1.5倍,它對於個人而言更有價值,原本需要加班才能夠完成的工作,現在只需要常規的時間投入就可以完成,如果你仍然不得不加班,至少這段時間是可以用來自我提升的。但很快新的問題又出現了。在一次自己負責的緊急專案中,粗評的工作量大概需要30人天,但產品給的期限只有7天,那一瞬間我就知道這件事情已經不是靠加班熬夜就能夠應付的了,於是趕緊請求支援,從隔壁組調來3位同事來一起加入專案攻堅,最終才如期上線。在為期40天的開發週期中,我的個人程式碼貢獻量超過5萬行,產出效率幾乎是外包程式碼量要求的10倍,但自己並沒有因此而覺得沾沾自喜,第一因為過程真的很辛苦,自己覺得非常疲憊,我很清楚這不是一個可持續的狀態,第二是因為極致的投入讓看到了自己個人能力的極限,我認可自己的能力,但也意識到了風險:如果一個關乎存亡的專案恰好需要11個初級水平的工程師才能完成,那即便自己一個頂十個也無濟於事,想要承擔更大規模的任務,創造更多的價值,就需要依賴團隊,當你能以正確的方式把3-5個人組織起來一起去做事時,如果你們實力相當,整體的產出通常都會大幅增加,哪怕其他人的水平不如你,你也可以因為其他人的加入而擁有更多時間去聚焦那些難度較高的事情,同時也讓自己保持一個相對良性的工作狀態。
如果老闆要求你對一個大型專案進行排期,你肯定不會說這個專案很簡單,我一個人就可以搞定,只不過需要1年時間,你覺得老闆會不會罵人?作為一個技術管理人員,你可能更需要告訴老闆這個專案評估下來預計是xxx人天的開發工總量,以目前團隊的狀況,哪些人可以投入進來,還有多少人力缺口,最遲需要什麼時候到崗,否則就得延期或是砍需求,文件中哪些需求是你認為優先順序比較低或者可以砍掉的等等,這才是老闆做決策所需要的資訊,而不是跟他講你有多牛逼或者你用的技術有多牛逼。想要帶領團隊,就不太可能凡事都深入細節親力親為,你需要在巨集觀和微觀之間找到那個恰當的平衡。我在剛開始帶團隊的時候,總是不習慣把事情完全交給別人來做,以至於同事覺得工作太輕鬆,而我自己疲憊不堪,幸好Mentor及時在溝通中向我指出問題所在,很多事情對自己而言親力親為幾乎是沒什麼意義的,但對別人而言卻可能是很好的鍛鍊機會,我們不應該剝奪別人接受挑戰的機會,成長是每個人自己的事情,你不能替別人完成他該走的路,你要做的是授權、信任和兜底,然後專注於屬於你這個Level的複雜度更高的事情,有心的人自己會效仿,有問題他會主動問你,如果你不能信任他,面試的時候就不該讓他通過。
曾經的自己很抗拒帶團隊做事情,因為相比於寫程式碼而言,管理工作很繁瑣而且擁有更高的不確定性,這種不確定性也會帶來更多的不安,但當我真正努力到極致後,發現即使自己能夠產出普通人10倍的程式碼量對於專案進度而言仍然是杯水車薪時,我的認知終於開始發生變化,入行三年來我第一次發自心底感受到團隊的必要性,如何利用自己的能力來提高團隊整體的能力,這才是更值得探索的。也許成為一個技術管理人員並不比編碼更有趣,但如果以結果為導向,我願意去做這種嘗試,因為在我的認知裡,這是正確的事,是在巨集觀層面更有價值的事。
第四次認知升級——關於取捨
你能創造更多價值嗎?
如果你和團隊所有的產能都已經佔滿,你還能創造出更多價值嗎?答案肯定是可以的,它依賴於一項軟技能,就是取捨。當你能夠帶領一個小隊一起作戰後,雖然相比只有自己的時候戰鬥力確實得到了提升,但在一個具體的時間節點上產能的上限仍然是確定的數字,除非有更多的人加入進來,否則在團隊產能固定的情況下想要創造出更多的價值,你就需要做選擇,放棄相對價值較低的事務,把精力花在真正有價值的事情上,對個人來說也是一樣,只是每個人對價值的理解不同,做出的選擇也會不同。做更多的事情需要責任心,做更少的事情需要眼光和魄力。
當我在上一個專案中完成攻堅任務後,接下來要做的事情更多,至少包括重讀產品文件提升對業務的理解、安排後續的特性迭代、深入學習理解React技術棧、搞團隊基建等等,靠我自己顯然是忙不過來的,如果換做是你,會如何來安排呢?我是這樣想的,直接參與特性迭代的工作對我個人而言成長有限,但對於團隊新人而言是很好的鍛鍊機會,我需要把開發任務拆成模組,分派給其他人來做,並在必要的時候提供支援;基建的任務最終受益的是整個團隊,每個人都有責任參與共建,我需要做的是前期技術調研,搭好基礎工程,寫好示例程式碼,定好基建的規範,然後推動大家一起落地,而不是試圖自己搞定;讀產品文件的事只能自己做,這件事長期和短期價值明顯,但中期價值不明顯,因為對市場和行業認知的積累是需要時間的,所以我應該先拿出時間集中消化一部分資料,理清整體脈絡,再減小時間投入,在未來的工作中逐步積累;最後是專項技術提升,大廠的好處就在於你不用什麼東西都自己花時間研究,同事們技術水平都不錯,大家分別研究不同的東西然後通過技術分享來共同進步就可以了。是不是覺得這樣的思路是理所當然的?那我們來換一個格局比較小的思路對比一下。
同樣是上面的事情,我也可能做出如下的判斷和計劃:首先是業務開發,輕車熟路幾乎毫無壓力,而且看起來工作量也很飽滿,留給自己做吧;基建的事情可以算作技術產出,是能夠讓自己和別人有區別的東西,得自己做,不能讓別人摻和進來蹭產出;對業務的理解嘛,那本來就是產品和運營的事情,我專注於技術做好落地和實現就行了,不用操那麼多閒心;至於專業技術,團隊裡其他人也是才開始接觸,理解不夠深,我還是自己鑽研吧,反正自己喜歡技術,自學能力也不錯,比別人更厲害也能讓自己在團隊中的地位更高。
兩者之間的差別不需要我過多解讀,相信你會有自己的判斷。做出選擇本質上就是一種取捨,很多人都說“選擇大於努力”,聽起來沒毛病,但選擇不是賭博,選擇的底氣是來自閱歷和認知的,沒有過極致的努力,你憑什麼擁有面對選擇時的果斷和魄力呢?最後換個角度來講,即便沒有到達個人的極限,你也應該提醒自己保持獨立的判斷,勇敢地拒絕或放棄低價值的事情,留給自己更多休養生息的時間,你不需要贏得每一場戰鬥,但是一旦出手,就要贏得漂亮。
你能創造更多價值嗎?
還記得那個古老的故事嗎,老師用石頭、砂礫、細土和水一次次填滿杯子,並不斷問同學們【杯子被裝滿了嗎?】。你能創造更多價值嗎?經歷了這幾次認知迭代,哪怕毫無思路,我也會笑著說【肯定可以】,因為我知道,認為【可以】和認為【不可以】的人,最終往往都是對的。希望你也能常問問自己這個問題,畢竟大多數時候一個人的收益是和他能夠創造的價值直接相關的。
最後推薦一部我非常喜歡的影片《爆裂鼓手》,希望心中有火的你,在新的一年裡,不辜負自己,不辜負生命。