1.
在我們小組,一個小版本開發(fā)結束之后,我們會抽一兩天的時間豪诲,大家坐在辦公室里輪流進行自己所負責的代碼的講解。
最初做這個的目的挂绰,是為了相互評估代碼的邏輯屎篱,找到漏洞或者可以優(yōu)化的coding方式,讓大家相互借鑒學習葵蒂,從而更好的coding交播。
后來我發(fā)現(xiàn),review code的作用還不僅僅是這樣践付。因為code本身是為了解決某個問題堪侯,所以code的背后還隱藏著一種解決方案。團隊成員的思想碰撞荔仁,就不僅僅限于code的層面伍宦,而是上升到了解決方案的層面。
什么樣的方案更好乏梁,有更好的擴展性和易用性次洼?別人又是如何分析問題,抓住重點遇骑,形成解決方案的卖毁?與他們相比,我的不足在哪里,應該如何提升亥啦?
在review的過程中炭剪,做個有心人,主動思考一些問題翔脱,或可以糾正自己錯誤的認知奴拦,或可以找到新的學習方向,或被人一語點破思維的障礙届吁。略有所得错妖,就如沐春風,會心一笑疚沐。
通過review暂氯,還可以讓大家相互了解各自的工作,從而對整個小組的工作有所了解亮蛔。讓每個人不局限于自己的一畝三分地痴施,而是能一窺全局的面貌。
2.
但是過程并非總是那么美好究流。因為review包含了一層“審查”的意思辣吃,一群人看你的代碼,提出各種問題梯嗽,或許讓人有種被針對的感覺。從一開始的略有爭執(zhí)沽损,稍不注意就會演變成面紅耳赤的針鋒相對灯节,整個會議的氣氛也會變得比較尷尬。
所以绵估,每一個人都應該首先擺正看待review的態(tài)度炎疆。
作為主講人應該將review看作一次別人幫助自己檢驗產品的機會,如果別人對自己的代碼提出了不同的觀點国裳,別馬上切換到防御狀態(tài)形入,認為別人是在攻擊自己。先問自己缝左,他們提到的點自己之前有沒有想到亿遂?
如果想到了,就解釋自己之所以這么選擇的原因渺杉;如果沒有想到蛇数,那就不妨想一下,是否確實有不當?shù)牡胤绞窃健H绻粫r間難以決斷耳舅,也可以說明會議之后再去研究下。
作為評審倚评,則應該將自己定位為建議者浦徊。我們只是對眼前的代碼提出自己的建議馏予,接受或者不接受,都由對方決定盔性。如果說服不了對方霞丧,那就放棄吧,畢竟如果自己確實提出了中肯的建議纯出,而對方卻置之不理蚯妇,那是別人的損失。
每一個會議都應該有一個人控場暂筝,他負責控制時間和主題箩言,把僵硬的氣氛緩和下來,或者起到拍板的作用來結束沖突和爭論焕襟。確保會議按照能按照計劃陨收,有序的進行下去。
比如大家在某個點討論的時間太久鸵赖,控場人需要提醒大家切換到下一個主題务漩;如果大家思路發(fā)散導致偏離主題太遠,控場人需要提醒大家回到最初的問題它褪;如果會議上有沖突發(fā)生饵骨,控場人需要重申這次會議的目的,讓大家冷靜一下茫打;如果會議上有問題難以決斷居触,控場人需要確定一個結論,或者是另外安排機會再深化討論老赤,而不是阻塞后面的話題轮洋。
3.
在review的過程中,能學到的不僅僅是主講人抬旺,因為整個review的過程弊予,雖然討論的對象是主講人的代碼,但是溝通卻是相互的开财。review的評審既可以看到優(yōu)秀的代碼然后偷一把師汉柒,也可以在溝通的過程中對自己的技術進行印證。
但是责鳍,如果評審只是把自己定位在“幫別人發(fā)現(xiàn)問題”的角色上竭翠,則沒有積極主動的心態(tài),也不會有多少收獲薇搁。
一群人走過一段相同的路斋扰,或有所得,或大或小,就看自己是不是一個有心人传货。
在review的過程中屎鳍,除了技術、思維上的收獲问裕,還可以得到表達和情商上的鍛煉逮壁。作為主講人,要清晰明白的把自己的代碼講清楚粮宛,還要能很好的回答隨時拋過來的問題窥淆。能做到從容淡定,見招拆招巍杈,那這個人的修養(yǎng)就已經很不錯了忧饭。
而作為評審,面對陌生的代碼筷畦,能快速抓住問題要點词裤;面對主講人強硬的態(tài)度,能及時擺正心態(tài)鳖宾,緩解氣氛吼砂,不被陷入沖突。知道哪些人“不愿意聽勸”鼎文,哪些人愿意接受不同的觀點渔肩,從而做到區(qū)別對待,確保會議能起到的效果雖不完美拇惋,但卻已經盡力最大化了周偎。
4.
在review中可能遇到下面的問題:
主講人認為評審員不理解代碼所解決問題的實際場景,所以提出的是雖然理想但是無用的建議蚤假。并以評審員不熟悉實際場景的情況栏饮,來攻擊評審員的觀點吧兔。
如:這個問題的實際情況是很復雜的磷仰,不是你想的那么簡單,你知道嗎境蔼?bla bla...
主講人若認為評審員提出的觀點確實不符合實際場景灶平,應該嘗試向大家闡述相關背景。事情是我們在推進箍土,別人不清楚很正常逢享,別人因為不清楚所以沒有發(fā)言的權力就不正常了。我們應該努力讓信息對等吴藻,然后再進一步討論問題瞒爬。
主講人是資格老高,舍不下臉被別人“教導”。
茶杯要從茶壺里接水侧但,就一定要擺在比茶壺低的位置矢空。如果一個人無法理解這一點,那就不要期望能從別人那里學到什么禀横。
另外屁药,面子這種東西,有的時候是大事柏锄,有的時候真是小事酿箭。該當成小事的時候卻當成了大事,往往不能成事趾娃。
主講人不是我缭嫡,評審員少我一個也不少,我還是刷手機吧茫舶。
雖然我希望每個人都能從review中有所收獲械巡,但前提還是自己要做個有心人。我也確實無法保證每個人都愿意做一個有心人饶氏,所以我一般會申明:review的會議大家可以根據(jù)自己的實際情況選擇參加讥耗。
一直開,一直講疹启,不讓人休息
不僅僅是review古程,所有的會議都可能會有這種問題,一直開啊開喊崖,中間沒有休息的時間挣磨,導致效率越來越低下。最后大家只想盡快結束會議荤懂,又如何能認真對待問題本身茁裙?
如果會議時間長,不妨設置幾個中場休息時間节仿,大家也有討論的機會晤锥。