程序员的生产效率:中断、会议和远程工作

zhizhixiaoxiao 2013-08-30

在上一篇《程序员追求的是什么?》里,我把在家工作放在了最后,有些人给在家工作的排名很高,网友 K 发了 Jason Fried 在 TED 的演讲《为什么不在工作办公时工作?》,讲述了我们为什么很难在上班时间搞定所有工作。

Jason 用他自己的观察开始,说程序员需要一个很长的不被打扰的时间来搞定工作,然后推荐我们避免会议,通过聊天工具和email减少被打扰,而不是直接交流。虽然我同意他会议那部分的说法,但关于打扰我们可以考虑更多,而且我觉得面对面交流也比较重要。

办公室里的相互交流

Jason描述的办公室工作画面不禁让我们会问:为什么要在办公室工作?老板、同事、会议不停地打扰,让我们的工作烦很难取得实质性的进展。为什么 不让大家远程工作呢?就我来说,主要的原因是软件开发需要大量的协作。头脑风暴、讨论和提炼想法这些方式得到的方案往往会比自己一个人想到方案要好。而 且,有白板的时候,我们可以画一些东西来讨论,这些交流在面对面的时候效率更高。虽然远程的写作尽量模拟面对面交流的场景,但是跟同一个房间里和一些人讨 论的场景还是有区别的。

Jason建议我们用被动交流(邮件或者即时通讯工具聊天)来替代主动交流(当面或者打电话)来避免打扰别人。这是一个避免打扰别人的很好的建议。 但是在初始阶段之后,面对面交谈越快越好。文字的交流对于简单的问题来说效果很好。但是如果问题有些不确定,谈话的效率会高一个数量级。举个例子,别人给 我发个邮件,问“你是不是支持XXX功能?”,大部分时候回答肯定不是简单的是或者不是。也许取决于已经有的功能,或者我们可以开发一个更好的YYY功能 来替代。写下这些会花掉很多时间和工作量。谈话(面对面或者电话)让我们可以即时交互而不用来回写一些文字。

好的打扰

虽然我完全同意Jason说法,程序员需要一个相对来说比较长的不被打扰的时间来提高生产效率,但是有些情况还是可以接受的。如果有人遇到一个问 题,而我恰好不假思索就可以知道答案,这样被打扰我没问题。当然我的效率会受影响,但是我们可以优化整个公司的生产效率。如果公司里有几个人被问题卡住 了,最好是来问我,而不是从代码或者文档里找答案。

当有故障报告的时候,这也是一个可以被打扰的例子。在我的团队里,我们基本上没有积压的故障报告。我们尽力尽快搞定这些故障。快速回复客户有几个好 处:客户们还记得是什么问题,这样就很容易得到我们需要的额外的信息,而且客户也会觉得我们在乎他们。快速的反应,意味着不会积压还没有处理的故障,故障 少的话,我们就很容易掌握尚未处理的故障的状态。

开会——低效使用时间

说道开会,我同意Jason的说法:越少越好。会议一般会很低效的使用时间。以前我在爱立信工作的时候,整个研发部门每个周二十点有个站立会议。那 个时间你肯定不会想做什么新的东西,因为你知道马上就会被打扰。知道接下来你马上会参加一个会议,你做的工作会少于平时。没有计划的打扰会好点,至少你事 先不知道。会议的另外一个问题是大部分的信息其实可以轻松用邮件发给所有人。

会议低效的另外一个原因,是有些人不用参加整个会议,所以一部分时间就浪费了。在Symsoft的时候,我几乎没有几个会,我会走过去跟相关的人讨论问题。没有会议,只有直接相关的人被打扰了。这种方式比会议的开销要少。

没有那么难

Jason说的那个地方真是相当的不爽,但是我们不一定要那样。从来没有经理很频繁地跑过来问我现在的工作状态,也许因为他们曾经也是程序员,知道尽量别打扰开发人员。我在Symsoft几乎没有会议,在Tilgin的时候也是一样的。

给软件开发人员创造一个好的环境并不是很困难,我也会被打扰,但是那都是有理由的。我一个人的效率降低了,但是团队的效率提高了。除了这些有理由的打扰,其他时间我都可以安静地不被打扰地开发新的功能,或者修改bug。你呢?

相关推荐