有效復(fù)盤:程序員自我增強的殺手锏

?鏈接每一位開發(fā)者,讓編程更有趣兒!關(guān)注
轉(zhuǎn)載自Duing(ID:duyi-duing)

同樣都是敲代碼,為什么別人一個月工資五萬,你一個月卻只拿五千?是單純在找工作的時候運氣不佳?還是因為技術(shù)水平有差別?那些被大眾膜拜信仰的技術(shù)大神到底牛在哪里,現(xiàn)狀已定,普通程序員是否還有機會逆襲?看完今天的這篇文章,或許你能從中找到答案。
?作為優(yōu)秀的程序員,必須擁有一項非常重要的能力-復(fù)盤。?如果不經(jīng)過復(fù)盤,沒有能夠從經(jīng)驗中真正學(xué)到東西,用來指導(dǎo)自己以后的行動,那所謂成長,也就不過是無根之本。?不過,也經(jīng)常有人問:老是說要復(fù)盤,但究竟該怎樣去復(fù)盤呢?
圖片源自網(wǎng)絡(luò),僅做配文展示
01什么才是有效復(fù)盤
很多人對復(fù)盤有一個誤區(qū):認(rèn)為“復(fù)盤”就等于“我做了什么”。
?
比如:結(jié)束了一天的工作,臨睡前,總結(jié):今天做了哪些事情?有什么收獲?給自己這一天打個分;周末,回顧自己這一周做的事情,發(fā)現(xiàn)沒有達到預(yù)期,反思一下。
是不是時間管理做得不好,沒有能夠騰出足夠的時間?又或者:終于做完了一個項目,開一場總結(jié)大會吧。會上,大家憑著回憶和直覺,講一講在項目中做得好的經(jīng)驗、做得不好的地方,然后把內(nèi)容整理下來,封存起來,當(dāng)成對這個項目的復(fù)盤……
這也許是很多人習(xí)慣的模式。有用嗎?有。但如果只停留在這樣的程度,是遠遠不夠的。
為什么呢?

圖片源自網(wǎng)絡(luò),僅做配文展示
復(fù)盤的真正目的,是讓自己把過去的每一天、每一次行動、每一個任務(wù),都變成自己的養(yǎng)分,把它們吸收,化為己用,讓自己比起過去的自己,再多邁出哪怕一步的距離。關(guān)鍵的是:我能夠從中獲得什么?永遠從過去獲得力量,來幫助我們更好地面對未來——這才是復(fù)盤的意義。

在整個思考和行動的過程中,你都要始終跳出自己的角度,從第三方的視角審視自己,把自己的所思所想所做記錄下來,并加以審視,從中找出自己能夠成長的空間和可能性。
在這種情況下,你關(guān)注的是什么呢?是成長。也就是“我可以如何變得更好”。
這才是真正有效的復(fù)盤。復(fù)盤真正的意義,不是關(guān)注已經(jīng)成為過去的過去,而是著眼于未來。
?02怎樣做好復(fù)盤
什么時候做復(fù)盤
可以用一句話來概括:切勿操之過急,又要趁熱打鐵。
切勿操之過急。在問題沒有解決影響還在持續(xù)時,一切都應(yīng)以盡快解決故障為中心,這時候不應(yīng)過多思考復(fù)盤的事情,也不要去打斷在解決問題的人讓他停下來去做復(fù)盤相關(guān)的討論。

又要趁熱打鐵。在故障解決后,就需要立刻啟動復(fù)盤流程,并盡量在1-2天內(nèi)完成整個復(fù)盤。時間過久熱度衰減會導(dǎo)致大家對問題真相探究的興趣減少,從而降低對細節(jié)的記憶和對故障的重視,影響復(fù)盤的質(zhì)量。甚至有時,在沒找到真相的空窗期,有些問題還會持續(xù)發(fā)生,讓你手忙腳亂、焦頭爛額。
一方面是復(fù)盤內(nèi)容的整理記錄。建議使用在線文檔,如wiki 或Google doc 等。先由負責(zé)人整理文檔概要,再由相關(guān)人員進行所需信息的補充,必要時可以小范圍討論。盡可能將所有不確定的細節(jié)都梳理清晰,并在文檔中記錄好。
?
另外是文檔整理好之后的宣講。文檔就緒后,召集產(chǎn)品、技術(shù)、測試、運維等相關(guān)人員和主管,需要時邀請受影響的業(yè)務(wù)方(如運營、銷售等)一同參加,并確定好會議時間和地點。在會議中由負責(zé)人進行宣講,各方人員進行審查和答疑,并進一步調(diào)整和更新文檔內(nèi)容。

最后是復(fù)盤報告的周知。最終的故障原因、改進方案等結(jié)論,需要結(jié)合故障范圍和相關(guān)改進人,進行上報和周知,可以郵件的形式進行。讓管理者可以查閱整個復(fù)盤報告,同時讓改進計劃中涉及的各方明確知曉后續(xù)相關(guān)工作。
實踐
也就是說:當(dāng)你通過記錄和反思,對自己的工作和項目進行復(fù)盤之后,一定要記得把這些成果“用起來”。
當(dāng)你面臨新的挑戰(zhàn)和難題時,盡可能擺脫路徑依賴,不要完全照搬以前的做法,而是想一想:我能否嘗試一些“不同”的做法?
只有這樣,你才能夠真正把從過去總結(jié)提煉的東西,變成自己成長的養(yǎng)料。讓信息流動起來,讓它們?yōu)槟闼?。一切我所?jīng)歷的,必將使我更強大。
?03程序員需要code review
對于程序員來說,除了工作中的項目復(fù)盤,更常見的是代碼審查。
?
良好的代碼審查人員會查看代碼本身的變更,以及這些變更是否適合已有代碼。他們會仔細研究標(biāo)題和描述,以及代碼變更的“原因”。他們還會檢查代碼的正確性、測試覆蓋率、功能變更并確認(rèn)是否遵循了編程指南和最佳實踐。
同時,他們還會指出明顯有待改進的地方,例如難以理解的代碼、含混的名稱、注釋掉的代碼、未經(jīng)測試的代碼或未處理的邊緣情況。最后,他們還會注意,如果一次提交包含了太多代碼變更的話,則建議代碼的變更應(yīng)該保持單一目的性,并將代碼變更分解成目標(biāo)更為集中的幾部分。

更優(yōu)秀的代碼審查人員還會從系統(tǒng)整體的角度查看代碼變更,并檢查這些變更是否易于維護。他們可能會詢問代碼變更的必要性,或?qū)ο到y(tǒng)其他部分造成的影響。他們會研究代碼中引入的抽象以及與現(xiàn)有的軟件架構(gòu)的適應(yīng)性。
此外,他們還會觀察可維護性,例如是否可以簡化的復(fù)雜邏輯、測試結(jié)構(gòu)、重復(fù)和其他可能的改進。
?
發(fā)生問題并不可怕,可怕的是停留于問題表面,治標(biāo)不治本,從而導(dǎo)致同類問題反復(fù)出現(xiàn),給業(yè)務(wù)持續(xù)造成損失。問題既是風(fēng)險,也是機會。

另外,復(fù)盤絕不是以復(fù)盤會的結(jié)束為終點,光有思考和計劃還不行,若不能確保計劃執(zhí)行和完成,那也就失去了復(fù)盤的意義。?最后,希望復(fù)盤思維能被你積極使用并幫助你持續(xù)提升。其實不限于程序員,也不限于工作中,我們每個人在生活中與他人相處時,做每一件事時,多加運用復(fù)盤思維將帶給我們諸多收益,共勉。
?? 好了, 以上就是我的分享,小伙伴們點個贊再走吧 ?? 支持一下哦~ ??,
