下面是一幅在網上廣為流傳、關於程式設計師工作效率的圖片:
辛普森爸爸也許會說:這很有趣,因為事實正是如此。
我還沒有搞清楚保持高效的訣竅,主要是因為我從沒有一貫的高效。周思博(Joel Spolsky)曾在他的一篇部落格中說過:
有時我什麼事都幹不了。
當然,我走進辦公室,到處閒逛,十秒鐘就檢查一次電郵,看網頁,甚至幹些不用腦子的事,比如支付美國運通的賬單。但就是不會回到寫程式碼的流程上來。
這樣的低效症一發作一般都要持續一兩天。但在我的職業生涯裡,作為程式設計師,曾經好幾次一連幾個星期什麼事都幹不了。就像他們說的,我心不在焉,我狀態不好,我根本不在狀態。
這篇文章我讀了五六遍,仍然深感震動,因為這樣一個程式設計師界的標誌性人物也會有這樣菜鳥的問題。
還好,不只是我有這樣的問題。
這裡我沒有保持高效的祕訣分享,但是我可以告訴你們什麼讓我的效率低下:
- 開放式房間佈局
- 程式設計師爭論Django與.NET哪個好
- 程式設計師籠統的爭論
- 同事過來問:“嘿,我的郵件你收到沒?”
- 嚼東西的聲音。很明顯我有恐音症
- 對於我手上的問題還不理解
- 懷疑這個專案
- 手上有多個任務要完成,它們都是十萬火急的
- 有十萬火急的事,其他事都別幹了
- 手機微博訊息提示音
- 電郵提示彈窗
- 任何彈出視窗
- 即時通訊軟體
- 老婆問:“嘿,可以拿一分鐘來幫我做件事嗎?”
- build時間很長
- 噪音
- 辦公桌前老有人走來走去
- 公司集體活動
- 維基百科(我是說真的,不要點任何連結)
- Hacker News
- 總體來說,網際網路都會影響效率
過去這些事讓我工作效率不錯:
- 安靜的環境
- 安靜的辦公室(個人專用辦公室太少見了)
- 理解專案下一步我該幹什麼
- 對於問題有透徹的認識
- 沒有打擾
- 我是認真的:沒有打擾
- 遠離微博
- 遠離Hacker News
- 硬體不出問題
- 熱愛正在工作的專案
- build和debug的時間不長
- 不要在網上爭論政治
很明顯,低效因素中有一半是我自找的,但是有些不是,例如開放式辦公室佈局。
根本上講,我們每個人都能控制造成我們低效的因素。我不會和平對抗。我要不就強硬表態,要不就坐著任由其他人在我身邊走動。對此我真不擅長應對。所以,我在處理外部低效因素方面沒有好建議,但是我知道這一條:控制我能控制的。意思是:
- 關閉我iPhone上的提示(還有個好處就增加了待機時間)
- 連續編碼3小時就給我自己一個獎勵(通常形式是“上網時間”,看看黑客新聞或是微博)
- 當真的真的有事要幹才在家工作
- 投資一個價效比高的抑噪耳機
- 在日曆上安排“無會”時間,向別人表明你在這些時間很忙,這是我的工作時間。
- 不要捲入辦公室程式設計師的爭論;人們有強烈的個人觀點,而程式設計師的特性就是喜歡爭論。如果真是有業務問題需要解決,讓我們去會議室去,把每種方法的優缺點都擺出來。用資料說話,別隻是爭吵。
- 把辦公桌擺在不會被過路人打擾的地方。
- 先看一遍問題,然後再請另一位程式設計師為我詳細的解釋一遍,這樣我可以對要乾的工作有更好的理解。這樣做實現了兩點:第一,這使我能掌握形勢,使得我至少能對工作的要點有個基本瞭解。第二,它讓我在求助時能問出更聰明的問題。
是什麼讓你效率低下,而你又是怎麼與之抗爭?