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