這篇博文源自我在twitter上發的一條推。這條推被很多開發者、系統管理員和數據庫管理員轉發,到我寫這篇博文的時候已經轉發了超過170次,哇哦,這可是我個人最佳成績。很明顯,這條推在很多開發者中產生了共鳴。
“開發人員每天應當有 4-6 小時的無中斷時間。每次 3-5 分鐘的中斷,其成本遠超過你的想象。”
(編注:@程序員的那些事 昨日編譯發布的微博,轉發也不少,320+。)
為什么這條微博能在這么多人中引發共鳴?
我在這條推中所表達的并不是什么新鮮的觀點 – 之前沒有幾百人起碼也有幾十個人在推特上發表過類似的觀點,他們也得到了很多轉發。見鬼,這類觀點在博客和雜志上已經流傳多年了,無論是作為一個龐大的話題還是常常作為教導他人如何組建開發者團隊的指南。
我覺得這是因為開發者、工程師以及從事創造性工作的人(還有優秀的經理)都知道哪怕只是小小的干擾,對于一個“正在狀態”的開發人員來說,失去的絕不只是那3-5分鐘的提問和回答時間。另外,因為你的大腦正在高速運轉因此你不會把全部的注意力都放在提問者身上,而這又會引發更多的干擾。(不停的問…)
這些我們都知道,好的經理也懂這個道理,優秀的公司更是以此為生。但是這對于我們來說仍然是個大問題,因為干擾仍然持續存在。也許是因為你的經理不懂這個道理,或者是你的某位組員能自由的切換他的工作狀態,又或者是你愚蠢的將聊天工具/IRC/手機都打開了而你剛好被@到了。
我們該如何解決?
我們沒法解決。
我知道這聽起來挺令人沮喪的,但我是個現實主義者。這里有一些原因:
0)除非你足夠幸運可以獨自工作于某個項目,否則你都要同其他的開發者/工程師一起工作。如果他們不能問你問題或者告訴你一些重要的事項,那么你和他們都會浪費很多時間。
1)會議,各種長會、短會、線上線下會議都是任何項目中不可缺少的。不是和你的老板或者同事,就是和客戶或用戶開會。
2)你的老板、同事、朋友、小孩、寵物、父母并不知道工作時間你是不能被打斷的。
3)作為一名自由職業者,你絕不能讓現有的或潛在的客戶聯系不上你。
不,說真的,我們該如何解決這個問題?
無論你問多少次這樣的問題,我都不相信它能真正得到解決。但是,這里有一些方法能減輕它帶來的影響:
0. 開發者日
我的朋友Craig Kerstiens介紹了Heroku每周都會給工程師們一整天時間(周三)用來專注于完成工作。沒有會議,沒有站會,完完全全100%的無干擾時間用來專注于工作。向你所在的公司建議施行一下看看效果如何。
1. 把時間分塊
2010年時,Eldarion將他們的工作日分解成至少兩塊中間無中斷的時間塊。在時間塊之間你可以和同事溝通交流。這種方式的優點在于如果你遇到了麻煩或者某人有一個很緊急的問題,時間塊之間的空隙就能解決這個問題。理論上這也是大多數地方都在采用的方法(午飯時間就是空隙)。事實上干擾常常會蜂涌而至。對于Eldarion來說這種方法很奏效,因為大家都是遠程工作。
2. 新的工位
如果在辦公室內工作,要求把自己搬到一個人少的位置。這招的缺點是你可能會在一個噪音大,陰冷黑暗的地方工作了。
3. 新工作
換一個可以承諾你較少干擾的新工作。
也許我是錯的
如果能證明我是錯的,我會更加高興。也許真的有方法可以在每個工作日得到4-6小時的無干擾工作時間。如果你有什么辦法請告訴我。