天天看點

開發者如何與幹擾作鬥争

作者:不秃頭程式員
開發者如何與幹擾作鬥争
導讀:這篇文章是分散你注意力的,你應該回去工作了!是不是?

有哪些事情幹擾你

在軟體工程中,人們通常将生産力殺手稱為“幹擾”。我面對它們,你也面對它們,每個人都面對它們。

我們的主要工作習慣是專注正在解決的問題,并将其轉化為代碼。保持專注至關重要,排除幹擾是值得關注和歡迎的。

那麼你能識别可能出現的全部類型的幹擾嗎?讓我們将它們分解。

明顯的幹擾

明顯的幹擾包括如下:

  • 私人通話/私信/面對面 交談
  • 群組通話/臨時通話/碰頭會

電話和社交軟體在讓你知道有人正在打電話給你,這是我們使用它們的原因。你可以将它們關閉或靜音,但可以對緊急呼叫做出快速反應。

這是我們應對幹擾的一種。

利用手機軟體可以将聯系人組織為優先組,為這些組标記免打擾時間,或者将來電簡化為各種信号級别。

  • 響鈴——你家人打來的電話,不能不接!
  • 振動——你的老闆稱之為“享受”的這種氛圍
  • 重定向至語音信箱、自動短信等,這是一些朋友、啤酒好友的來電

工作場所是人們分心的顯著來源。

我們以小組和團隊的形式工作,應該歡迎合作的各種尬啊。但你可以向同僚發出信号,表明自己處于免打擾模式。大耳機表明你正在取消環境并專注于某件事。是的,使用科技的新玩具比如降噪耳機非常有效,以至于吸引你的注意力意味着那個人需要進入你的視野。

有一個簡單的規則: 眼不見=心不煩。沒有聲音通知,隻有視覺通知。是以,在工作時間盡量減少那些該死的幹擾。

還有其它的事情 #thereIsAlwaysSomething*

在我作為軟體開發角色漫長而繁忙的生活中,我發現在基于團隊開發的環境中,日常工作量可以分為以下三個主要部分。

  • 編碼 ——你計劃的任務工作 ;
  • 團隊合作 ——代碼審查、頭腦風暴、互相幫助、會議、靈活儀式、公司和辦公室員工 ;
  • #thereIsAlwasSomething — 你也在編碼, (或其他工程)臨時任務、生産錯誤、救火、“我們可以幫助修電腦嗎……”等任務。

開發者在整個工作日都在編碼的想法是一廂情願的,其實大約三分之一的時間花在非編碼活動上。

主要差別在于公司的心态,包括如下:

  • 創業心态 — #thereIsAlwaysSomething 被認為是一項正常工作職責。就像 “年輕、靈活、充滿活力的團隊”。
  • 企業心态 — #thereIsAlwaysSomething 被認為是一種 異常情況 — 你擁有專門的維護團隊,可以從開發團隊中過濾掉這些任務。維護團隊僅在需要時尋求合作,并且主要以計劃任務的形式進行。

#thereIsAlwaysSomething 任務可能會被某些團隊或個人開發人員視為幹擾。PO/PM 需要掌握如何确定何時以及由誰來完成這些任務,以最大程度地減少幹擾。

在任何特定時刻将其扔到團隊頻道中并附上“我們可以幫忙嗎……”,這樣的話是一個壞主意,而且會分散其它人的注意力。

與團隊就何時以及如何在适當的位置宣布 #thereIsAlwaysSomething 任務達成一緻。

我的建議是進行每日站立會議。

灰色地帶

還有一個幹擾因素的灰色地帶。對于組織中的某些人來說,推動他們是自己的工作,但對于許多開發人員來說,這可能被視為分散注意力或者浪費時間。

  • 會議 ——管理者們會說服你他們是有益的,而開發者會認為浪費時間。如果有這樣的思想存在,請進行協商。
  • 靈活儀式 ——其中一些你可能會認為是幹擾,最令人讨厭的是定期回顧。在我們需要時達成一緻
  • 公司垃圾 ——電子郵件、民意調查、緻謝、時間表等。
  • 内部障礙 ——電源/網絡/伺服器中斷
  • 計算機/軟體更新 ——無法用言語解釋

幾乎所有這些幹擾都可以通過将其安排在非生産時間、推遲甚至避免來消除。至于電子郵件,可使用過濾和重定向到指定的檔案夾。

非明顯的幹擾

線上或内部文檔搜尋資訊

在編碼期間收集資訊或在文檔中搜尋某些内容會分散您編碼的注意力。這是一個滑坡,很容易讓你離開很長一段時間,并且你可能會失去焦點或編碼流程。在編碼之前嘗試識别這些内容 。提前收集盡可能多的資訊和文檔,并為它們添加書簽。

不使用有效或節省時間的工具

進行重複、枯燥的打字而不是使用鍵盤快捷鍵和代碼格式化工具,這樣可能會讓人筋疲力盡,并擾亂思路和編碼。

是的,我們必須學習它們并習慣使用它們,這些 生産力增強器是對抗意外幹擾的最佳工具。這同樣适用于您不經常使用的技術 - 一個典型的例子是正規表達式(regex)。

使用專門的正規表達式工具和生成器;人工智能在這裡也對我們很有幫助。

等待一些開發程序

  • 配置依賴項需要時間——你可能會被吸引走
  • 項目設計需要時間——你可能會被吸引走
  • 部署項目需要花費大量時間——你肯定會被引走

上述一些因素都會在編碼過程中影響你,特别是當你需要嘗試一些早期的代碼版本時。但這些都是可以預見的。提前計劃這些行動,最好是在工作周期結束時或休息之前。

當某些步驟失敗時,休息還可以幫助您思考和了解出了什麼問題。

糾正與優化的措施

習慣劃分優先級

你永遠不會有一個沒有幹擾的環境。

新任務總是會來的,學會優先考慮它們。一個優秀的圖表可劃分了可能認為分散注意力的任務(但在經理或同僚眼中可以被視為生死攸關的問題)。

我們可以從兩個角度來劃分:

  • 緊急/不緊急
  • 重要/不重要
開發者如何與幹擾作鬥争

我對此圖的兩個象限還添加了第五個動作——“什麼也不做”。

有時,什麼都不做是也是有效的(正如你所想,“讓它們腐爛”)。你會驚訝地發現有多少“問題”根本就不是問題,而是“自動”解決了。如果問題仍然存在,他們會再次向你“緻意”。

優先處理分散注意力的任務是一種社交技能。請記住,你并不是公司中唯一能夠解決這些問題的人。 如果對目前工作中出現的幹擾沒有信心,請進行談判并學會“說不”。另一方面,不要傲慢;嘗試了解為什麼其他人認為這項任務緊迫。

而且,令人驚訝的是,一項你乍一看會分散注意力的任務可能會變成一次愉快的旅程,讓你從目前的任務中得到休息。

日常生活

處理幹擾的最佳方法是有規律的日常(工作)。

找到最有生産力的時間

确定大腦工作最佳的時間,并将其與團隊日常工作和職責聯系起來。我效率最高的時間是上午 10 點至下午 1 點和下午 3 點至 6 點。設定您的環境以盡量減少可能的幹擾——耳機、通知靜音模式、Slack 中的離開/免打擾模式等。

計劃你的拖延

不要被随機的一些幹擾所引誘——計劃它們!

軟體工程師是永遠的學生;他們每天都在學習。在非工作時間閱讀推文和部落格,閱讀新聞和 Slack 頻道。我在上班時就這樣做,通常在每日例會開始時完成。然後,下一階段是午餐後放松一下并再次浏覽它們。你活着不僅僅是為了工作——它是一個平衡生活的工具,但要明智地使用它。

附加建議

休息一下

程式設計可能會讓人筋疲力盡,主要是因為軟體開發人員經常面臨長時間坐在電腦前編碼的情況。

這可能是不健康的。

我們需要在任務之間定期暫停。我每 30 分鐘休息 1-2 分鐘,每小時休息 5-7 分鐘。休息意味着站起來散步!廁所、零食、咖啡、查電話等。如果可能的話,歡迎在新鮮空氣中進行較長時間的休息。

開發者如何與幹擾作鬥争

你可以使用現在流行的“番茄工作法”,即工作 25 分鐘,休息 5 分鐘。

無事之日

有時,你知道那天你不會做任何有創意的事情。擁抱那些日子,用它們來做簡單的日常任務——清理桌面檔案、重新組織工作檔案夾、更新軟體、清理硬體、更新文檔、添加單元測試等。

不需要别人知道你在幹什麼。

心流天數

有時,你發現一天 24 小時太短,但你感覺自己有能力編寫比 8 小時更長的代碼。我們稱之為編碼心流。它通常發生在項目的新創意部分開始時,當你充滿想法并希望将它們轉化為代碼時。

再次強調,利用這個機會,打破所有規則和慣例——在晚上、周末編碼,并感受心流。

嗯,你現在已經是一名藝術家了。

編碼時的良好習慣

  • 首先編寫最令人興奮或最具挑戰性的部分
  • 将枯燥的部分簡化為 MVP 或模拟函數,将它們标記為 TODO,然後再傳回。
// @TODO - there are 3 places where to find it and 2 possible fallbacks...

function generateConversationTopic(/*conversationId: string*/): string {

      return 'Talking with ???';

}           
  • 複制和/或重構類似代碼,不要重新發明輪子;
  • 編寫單一用途且不太複雜的函數速度更快,并且不會帶來疲勞。三個單一用途函數比一個通用函數更好,即使它們占用更多代碼行。

結語

本文是一篇關于開發者如何識别和對抗幹擾的主觀文章。

可能隻有一些東西對你有用,而且顯然還有很多東西要說,是以歡迎在評論中添加你的更好技巧和想法。

祝大家編碼愉快!

繼續閱讀