咱們是一個去年年初從 0 開始組建起來的新團隊,面臨的是一個極具技術挑戰的新產品,這一年,遇到過不少不少的問題,你們風雨同舟,共同應對和自我改進,逐步造成了很不錯的團隊氛圍和作事的風格,每一個人也在這裏成長了不少不少。面試
下面即將介紹的都是真實發生在咱們團隊的故事,我就從最近例會上你們關於 OKR 的討論聊起吧。算法
A:「回顧每一個雙月的 OKR,我發現一個問題,就是你們都喜歡寫不少內容,每一個人至少都有兩三個 O,而且每一個 O 下面還掛着三四個 KR,兩個月的時間實際上是很緊張的,那麼多的 O,那麼多的 KR,看似把本身包裝得很忙作了不少事,可是真的每一項都能落實麼 ?」微信
B:「不一樣意你的說法,公司的 OKR 文化不就是鼓勵你們制定有挑戰一點的目標麼? 」app
C:「@B,我以爲你的理解有誤差,我認爲公司的 OKR 所鼓勵的 「挑戰」 並非強調作的事情的數量,而是指望把完成每一件事的目標和標準能夠定得更高一點。」ide
A:「很是贊成小 C 的觀點,咱們應該追求的是把每個 KR 作到極致,若是雙月列的目標和事情太多,反而容易迷失目標,心態浮躁,不能沉下心來把每一件事情作到極致。」單元測試
最終,你們一致決定,從5、六雙月開始,嘗試改成每一個人儘可能只寫一個 O,最多隻列不超過三條對本身來講最重要的 KR,而且仔細思考和深挖,把 KR 的指標定得清晰和激進一些,雙月後看看最終的實施效果。測試
A:我以爲咱們採用的方案很差,網上人家都在討論和使用 XXX 方案。優化
B:基於咱們這個業務場景,你詳細給你們講講爲啥網上的方案比咱們的方案更適合 ?ui
A:額,只是以爲那個開源項目特別火,應該是趨勢。我再詳細對比一下,出個報告。spa
A:我看到 XXX 產品有這個優化,我下週也去作一下這個優化吧。
B:有思考清楚這個優化在咱們這個場景下帶來的收益預期麼?它解決了咱們當前的什麼問題、什麼瓶頸?
A:額,我再詳細研究研究…
A:「@B,幫忙看看這個 PR,解決了那個空指針致使的崩潰問題。」
B:「贊一個,怎麼解決的?」
A:「額,在崩潰的地方加了一個 NULL 指針判斷。」
B:「你都不去深刻研究代碼邏輯這裏爲何會出現空指針麼??不要 work around,要追根溯源,找到 root cause 呀!!」
A:「@all 這個優化效果很明顯,XXX 數據指標獲得了明顯的提高!!」
B:太棒了!具體改了什麼?
A:改了兩個參數。
B:這兩個參數的含義是什麼?會影響哪些內容?XXX 指標雖然提高了,有沒有觀察其餘指標的狀況?不少優化都是須要作取捨,有必定代價和付出的,這個優化背後的代價是什麼?
A:額……我再研究研究。
A:「@B,剛纔的測試過程當中發現,你的那個模塊的日誌輸出了不少 warning,你看看是否符合預期?」
B:「好像是不太正常,回頭看看。」
N 天后,B 忙其餘新功能開發沒有深刻跟進,線上出現崩潰事故……
B:@A,線上此次崩潰問題定位到了,XXX 緣由致使的,其實上次測試就有發現 warning ,要是跟下去就行了………
通過這一系列事情後,團隊內部開始強調 「科研精神」,什麼是 「科研精神」:
科研精神,是站在巨人的肩膀上,獨立思考、探索和創新,不要對開源的東⻄不屑,也不過於妄自菲薄。
科研精神,是遇到問題不靠 「猜」,不作 「work around」,而是打破砂鍋問到底,追根溯源。
科研精神,是大膽設想,當心求證,不靠運氣,不毫無根據地作出武斷的決策。
科研精神,是不放過觀察到的每個非預期的現象或者異常,⻅微知著。
A:@all 上次討論的技術方案我已經開發完畢,你們看看。
B:@A 能夠再講講你的方案和思路麼?感受這個接口設計徹底很差對接呢!
C:這個方案實現明顯有漏洞,XXX 這個地方不該該這樣設計,XXX 那個地方爲何採用這種模式而不是另外一種實現思路?
D:我也以爲 @B、@C 說得有道理……
A:大家早幹嗎去啦?技術評審討論的時候,都贊成了呀,好不容易開發完了怎麼如今都有問題了……
B:額,很差意思,當時方案評審時沒認真聽。
C:當時討論時我就提出來過建議,你沒承認我也沒堅持爭論下去……
D:我以爲這個事跟我沒啥關係,沒交集,因此也沒認真聽,沒及時提出 challenge…
通過這件過後,團隊開始推崇 「不當看客」,強調及時溝通,強調互相 「challenge」:
技術方案的 「評審會議」,不是 「技術講座」,每一個聽衆都是 「評委」,都要認真聽,帶着批判性思惟,及時提出挑戰性的問題。
對不合理的事情(好比:技術方案、代碼質量等),不要輕易妥協,要充分溝通,敢於 challenge 到底。
「君子不器」,雖然每一個人都要有所專長,但也不要設死邊界,不要作一顆 「螺絲釘」,保持好奇心,認真參與項目的技術評審討論是瞭解全局、擴充知識面的最佳手段之一。
A:怎麼又出現高頻崩潰了,咱們從第一次發出來體驗版到如今,咱們有真正 release 出一個足夠穩定的版本麼 ?
B:由於產品在快速開發和迭代中,不斷快速合入 PR 不免引入一些 BUG...
A:這不是一個好的藉口,質量是產品的生命線,咱們每天都在吹噓咱們用了多麼牛逼的算法,咱們作了多麼極致的優化,但若是連最基礎的穩定性都不能保障,還怎麼贏得客戶的信任 ?
A:本週的工做輸出是定位和修復了 XXX 問題(上上週完成的功能點引入的問題),下週的計劃是定位和修復 YYYY 問題(上週完成的另外一個功能點遺留的缺陷)
B:咱們應該反思一下咱們的 「交付質量」,爲何常常出現新功能的開發可能不到一週就宣佈搞定,但遺留的問題和引入的 BUG 問題卻又花費一週又一週的時間,這實際上是一種自欺欺人。
A:我這周計劃去作一個頗有賣點的新功能。
B:我記得還有幾個遺留的問題沒有解決吧 ?
A:那些問題有些很差復現,有些我懷疑是 @C 開發的模塊有些非預期的行爲,因此才致使了我這個模塊的問題
B:那些問題也纔跟進了一兩天,肯定已經有作過足夠的努力排查了麼?另外,不要輕易甩鍋到其餘人,你已經有確切的思路和數據證實是 @C 模塊的非預期行爲致使產生你這邊的問題麼 ?
A:額,新功能先緩一緩吧,這周我再跟一下那些問題。
A:昨天出現的異常問題定位到了,是上個月新增 XXX 功能的 PR 不當心覆蓋了 YYY 模塊原有的邏輯,致使 YYY 模塊的功能不能正常 work 了,從而觸發了這個問題
B:嗯,好的,不過這一類問題出現的次數很多了,值得覆盤和反思一下:爲何上個月的 PR 引入的問題,咱們直到昨天才發現,提 PR 以前爲何沒有認真自測到這個重要的模塊,模塊的單元測試爲何沒有覆蓋到,自動化集成測試和大盤指標監控爲何沒有及時發現問題 ?
通過這些過後,團隊在關於 「質量優先」 這件事,終於達成了共識,而且造成了一些明確的作事風格:
在咱們團隊,不是作新東西纔算有 「產出」,對每個任務,用心思考和設計、用心寫單元測試用例、提升代碼質量和交付質量、減小返工和引入的問題,是比作 「新功能」 更加值得鼓勵的行爲。
禁止簡單粗暴地給 「隊友」 拋問題,遇到 BUG,要趁熱打鐵,收集好現場的信息和證據,爭取復現,先簡單地及時跟進,逐步縮小範圍,再推進和協助相應模塊的負責人去解決它。
每一次 Bug 的修復,都要補充固化的測試 case,防止將來再次產生同類 Bug,同時也刻意去檢索一下其餘地方是否有相似的問題。
A:我想溝通一下關於我在團隊的定位,何時能夠帶人,何時能夠做爲 XXX 方向的負責人 ?
B:在咱們這樣的一個技術團隊裏,title 真的特別不重要,負責人也不是靠 「任命」 的。那些主動 「操心」 業務,主動 「own」 和推進一些關鍵事情,主動承擔產品中最艱難的技術挑戰和攻關任務,逐步在團隊中造成本身影響力的人,會天然而然地成爲所謂的 「負責人」。
A:數據清洗的事情我來跟進吧。
B:好呀,這個是數據埋點的文檔。
A:嗯,我們業務上有哪些數據指標,具體該怎麼定義?數據指標的清洗規則你也寫幫我寫到文檔吧 ?
B:這個作事的思路不太對,不要作文檔的 「翻譯官」,應該去主動理解業務,深度思考,去 「主導」 這樣一個數據指標的定義和清洗的工做,只有這樣,你才能真正收穫到業務經驗。咱們面試刷掉的不少候選人,說他們深度通常,有時候每每不是說有多麼難的算法沒寫出來,也不是說他掌握的技術黑科技不夠多,而是他們多年來一直重複着簡單的 CRUD 或者相似的文檔翻譯工做,沒有主動思考,沒有理解業務,說不上來爲何選擇這樣的技術方案,說不上來爲何 API 或者數據流應該這樣設計。
A:這個 UE 的交互好奇怪,你以爲合理麼,爲啥不主動去改進一下 ?
B:額,是有點怪,不過 PM 也沒有給出詳細的 PRD 文檔講清楚這個地方怎麼作呢。
A:嗯,那 XXX (另外一個地方)在 PRD 文檔裏面有詳細描述,爲啥也沒有按照文檔來 ?
B:我以爲那樣設計不合理啊,PM 有認真思考過麼,我看其餘家競品都沒有這樣的設計呢 !雖然我提了建議,可是 PM 也沒贊成。
A:感受這件事你們的溝通很不到位,你們拉個會再認真溝通一下吧。另外,這件事也引起了一個思考:爲何 PM 和研發互相都沒法說服對方 ?
通過這些事,你們逐步在造成一種 「owner」 意識,也理解了如何才能當好 「主角」:
「主角」 不是 「任命」 的,而是一種待人作事的心態,在任何事情上,只要足夠有 「心」,人人均可以是 「主角」。
「主角」 之因此可以成爲 「主角」,之因此說話的份量很重,之因此有足夠的影響力和說服力,靠的是他 「背後的功夫」。當你對面臨的問題思考足夠深入、看法足夠獨到,當你能拿出有理有據的證據和數據,你就天然而然地越有 「發言權」,說話就天然而然地越有 「說服力」。
最後再分享一個問題,有段時間,團隊成員都很沮喪,由於因爲產品還處於早期階段,沒能遇上潛在業務方的產品規劃節奏,於是暫時性地失去了這樣一個目標大客戶,給團隊帶來了不小的內心打擊。後來咱們在抖音上找到了一段很棒的視頻進行自我安慰,視頻的文字描述大概是這樣的:
「若是你喜歡一隻蝴蝶,千萬不要去追,由於你追不上她。你應該去種花、種草,等到春暖花開的時候,等到草長鶯飛的時候,蝴蝶天然會飛回來。若是你喜歡的那隻蝴蝶沒有飛回來,怎麼辦呢? 你有了花,有了草,有了陽光,有了雨露,有了獨特的魅力,那隻蝴蝶沒有飛回來,其餘的蝴蝶會飛回來,比她更好的會飛回來,這就叫作花開蝶自來,愛情如此,生活如此,事業也如此。」
現在你們依然激情滿滿,也信心滿滿,不斷默默提高着本身,耐心打磨產品,期待着 「花開蝶自來」 的那一天到來。
自從加入公司以來就一直很喜歡我們的文化,正是在這樣正能量的文化氛圍下,纔有了整個團隊不斷革新自我不斷改進的源動力。通過這一年的磨合,我相信整個團隊已經造成了很是不錯的文化價值觀和作事的風格,也相信這樣的團隊會擁有着很是強的戰鬥力和凝聚力。
目前團隊也很是缺人,歡迎你們多多內推優秀的人才給我,也歡迎你們關注個人新浪微博 @盧_俊 或者 微信公衆號 @Jhuster 獲取最新的文章和資訊。