提升软件开发者效率的10个提示
Ilias Tsagklis 是电信领域的一位资深软件工程师,以软件开发者的身份参与了多个应用与服务的开发工作。目前,Ilias 是 PCRF 解决方案的技术领导者。他感兴趣的领域包括多层架构、中间件服务及移动开发。近日,Ilias 撰文谈到了提升软件开发者效率的 10 个提示,这些提示很具有普遍意义,希望能为各位软件工程师工作效率的提升带来帮助。
在参加过几次关于效率与时间管理主题的研讨会并阅读过一些关于这方面主题的图书之后,我理解了一些意义深刻的概念,并对日常的工作方式有了更清 醒的认识。通过这些学到的知识,我对日常的工作方式进行了完全的改造,并取得了极大的效率提升。我希望能与大家一同分享这些可以极大提升效率的重要提示, 从而增进你的整体输出。也许最重要的是,能够让你抽出时间做些别的事情。值得注意的是,下面这些提示既可以用在个人管理方面,也可以用在专业管理方面,这 些原则本质上是一样的。
1. 绝不要将阅读邮件作为早上的第一件事
请千万别将阅读邮件作为早上的第一件事。如果这么做了,那么你自然而然地就处于一种被动的状态之下,而不是你希望的那种积极、主动的状态。只在 每天预先设定好的时间窗内查看和回复邮件,可以在午饭前,比如说 12 点到 13 点之间,然后在 16 点左右再看一次,因为这个时候你的能量可能处于下降的趋势,查看邮件并不会导致效率的降低。别担心,那些所谓的“紧急”邮件在绝大多数时候并没有那么紧 急。
2. 如果可能就别去开会
在企业环境下,会议是头号效率杀手。其实道理每个人都知道,只是有人不愿意承认罢了。Dave Barry 曾说过“会议让人上瘾,导致人们过于放纵,很多公司与大型组织都是习惯性开会,否则有些人可能就无事可做了”。值得注意的是,会议会导致多人效率的同时下 降。如果不是那种非参加不可的会议,那就别参加了。你可以说手头还有很多事情要做(也许事实就是如此),然后在会议后问一下参会的同事,了解一下重要的内 容就行。
如果真的有必要参加某个会议(这种情况其实并不多),那么请记住下面这些原则:
- 在下午效率下滑时开会。
- 一定要设定好要讨论的主题,别随意发散。
- 设定严格的会议结束时间,时间到了就立刻散会。
- 会议结束时一定要确定好清晰的下一步行动计划。
3. 别分心
这个话题很大。在当今这个信息时代,导致我们分心的事情比比皆是,这些事情阻碍了我们正常地完成工作。我将分心划分为两类:一是我们自己造成的,二是别人造成的。
首先说说第一种。看起来很奇怪吧,但实际情况却是我们自己导致自己效率下降,甚至有时都是无意识的。这种情况比比皆是:邮件、社交媒体的“重要”通知,在不同任务间频频切换,看到 Hacker News 或是 Reddit 上的有趣新闻等等。
你应该创造这样一种工作环境,那就是在工作时没有任何东西能够令你分心。首先关掉所有通知,比如说手机上的短信、非死book 更新等等。接下来,退出邮件应用,如果开着的话,请确保禁用掉自动发送/接收选项。然后,不要访问任何不会提升你效率的网站。我们都是极客,我相信你应该 知道如何做到这一点。你可以通过比较底层的方式来编辑机器的 hosts 文件,将 非死book.com 指向 127.0.0.1,或是使用插件来临时禁用掉这些站点。我自己使用的是 Blocksite 插件。
下面谈谈第二种。你可以说上面这些令你分心的情况是由其他人造成的,不过真实情况却是你自己造成的,因为没有人强迫你访问 推ter 或是 非死book。第二种我称为“强迫”分心。这些情况是否出现在你身上呢?比如说,你收到经理发的一封邮件,然后他问你是否收到了,诸如此类。事实上, 这种分心是比较难抵御的。有些建议,比如说戴上耳机(不过有时这样也不管用)、让来电进入语音邮箱,然后再去查看,或是在 PC 上放一张纸,写上“请勿打扰,编码中”等等。你要看看哪种情况比较适合你的工作环境,然后采取相应的行动。总的目标就是让工作能够连贯下去。
4. 前一晚准备好任务清单
你应该在前一晚准备好一个第二天要完成的任务清单。我这里指的并不是那种巨大的清单,这样根本就没效果。相反,列出两三个重要任务即可,这应该是会对项目产生重要影响的任务。比如说:如果今天搞定这两个任务,那么我的效率就非常不错了。
5. 先做重要的事
如前所述,邮件绝不应该是一天当中首先要处理的事情。那什么是首先要处理的呢?当然是清单中最重要的任务了。你应该识别出最重要的任务,然后坐下来专心解决,而不要再去考虑别的事情。理想情况下,你应该一气搞定,然后休息一会,再来做第二重要的任务。
6. 批处理并不是数据库才有的
我相信很多人都应该很熟悉批量查询的概念。一言以蔽之,你将相似的数据库查询放在一起,然后在一个请求中发送出去,这样可以提升性能。你也可以 在自己的任务中应用这条原则。也就是说,将某个任务的代价、各种开销最小化。邮件、电话以及任何重复性的工作都是批处理的最佳应用场景。
7. 自动化
添加到效率工具箱中的另一个东西就是自动化。作为程序员,本质上我们生活在一个相当自动化的环境中,不过我曾看到不少开发者使用手工的方式来解 决本可以轻松自动化完成的事情。人类的可靠性不如机器,特别是在面对那些无聊和不太重要的事情时。请尽可能自动化你所面对的任务。比如说通过一键的方式来 执行完整的应用构建,使用一个脚本将应用部署到产品服务器上。严肃地说,请不要将你的精力浪费在机器能够更快、更可靠完成的事情上。
8. 调整工作与休息,实现效果最大化
现在来谈谈如何创建良好的工作框架这个问题。我的建议是为工作分配特定的时间,同时为休息,或是娱乐分配特定的时间。比如说,你可以使用 45 分钟的时间进行持续、集中的工作,然后花 15 分钟休息一下,看看社交媒体更新情况,阅读一些文章等。在休息时就别再盯着屏幕看了。久坐是非常不好的习惯,适当地站起身,走一走。
9. 将事情记录下来
将一切都记录下来。无论是新想法,还是新的做事方式,要知道,大脑有时是不可靠的,你需要将这一切记录下来才行。你可以将大脑看作是一个 CPU,分配给它的东西就好比是在后台启动的进程。有时,进程会挂起,不能正常工作。将事情记录下来则会解放大脑,可以让其以更加优化的方式执行任务。
10. 利用心流,专心工作
这是个圣杯,正是我们通过恰当地设计工作框架而要实现的东西,也是前面那些提示所要实现的终极目标。我敢肯定你经历过“心流”的状态,这指的是 你的思维完全专注的一段时间,聚焦于特定的任务或是难题,甚至忘记了时间的流逝。头脑中除了编码,没有其他的东西存在。外部刺激也不会令你分心。你需要将 自己置身于能够实现心流的状态下,尽量保持更长的时间,这将极大提升你的生产率,我敢肯定你会非常喜欢这种状态,为什么不让自己尝试一下进入这种状态呢?