這篇博文源自我在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小時的無干擾工作時間。如果你有什麼辦法請告訴我。