这篇博文源自我在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小时的无干扰工作时间。如果你有什么办法请告诉我。