GTD - The First Impression

January 27, 2014

Preface

最近读了David Allen所著的<Getting Things Done, The Art of Stress-Free Productivity>,其中提到的GTD理论,我个人感觉受到了相当的启发。在网上一看,才发现已经有了相当大量的人在研究和按照自己的节奏部署和执行这样一套理论。

想到自己现阶段的处境,感觉离工作也不远了,正好也是寒假,了解一下也不是坏事儿( (╯‵□′)╯︵┻━┻你丫又忘了你的GRE了吗? )。退一步说,以一个大学生的角度来说,尤其是我这种整天不知道在干什么的人,了解一下GTD对提高自己的效率也可能会有些帮助。

由于内容很大,再加上我自己也是一知半解,因此我决定按照学习的进度,大概写4篇关于GTD的Post,这是第一篇,主要总结一下GTD理论及其目的。后面的Post可能会包含部署和实践的方法,具体工具的使用体会,根据自身不同的情况做出不同的调节等等。不过要看学习的进度了。

嘛,╮(╯▽╰)╭,以下内容均为个人意见,欢迎留言拍脸。

Why GTD

首先要说的是GTD存在的理由,为什么我们需要这样一个理论来引导我们完成事务?简单来说就是:

我们需要做的事情太多了,以至于影响到了我们正在做的事情。

说的有些笼统,我们不妨举一个例子。

试想我正在读一个英文文档,原因是我在写一个小项目的时候忘记了一个特定的API。我一边翻阅文档,一边google这个api的典型用法。我在google的结果中找到了一段十分经典的代码,它虽然没有解决我当下的问题,但是对提升我之前一个项目的性能至关重要,我打开把该页加入书签目录中,并写下一大段描述性文字来提醒自己;翻阅文档的过程中,我看到了一个陌生的单词,考虑到不久后的GRE考试,我打开online entomology,搜索了这个词,了解了它与同源词的关系,并将其加入我的单词本中;文档中提到了一个未修复的Bug,我似乎用到了这一段代码,我需要回头去看看是否踩中了这个陷阱;哎呀好累,刷一下微博吧,赞赞赞蜡烛蜡烛蜡烛……

这看起来像是开小差,但不仅仅是开小差。所谓的开小差是自知的,你可能就在当时就已经意识到自己没有在工作,比如刷微博;而对于上述的其他动作,我可能会否认自己在开小差,因为我的确完成了某些事情(增加了一大堆“需要完成的事情”),即使对我正在进行的工作没有任何帮助。这样的行为使得我的整个行动极其低效。

反观当下严峻的情况,工作不再有清楚的界限,几乎每一件事情都可能处理得更加完善。人们对自己做出的承诺或者承诺的义务不明确,导致了他们承受着种种压力的折磨。随着大脑再处理问题和管理问题上的不断切换,效率不知不觉间变得极其低下。引用书中的一句话稍作总结吧:

人们的生活质量得到了显著的提高,但是同时又承担着自己理所不能及的工作,结果导致他们承受了越来越大的压力。这似乎是眼高手低造成的,而且绝大多数人都对怎样改善这种局面感到茫然。我们所工作的机构似乎处于一种永恒的变化之中,而我们自身还没有具备相应的能力来承担和调整来自于我们内心和外界环境的一切。

看到这里,刚刚过去的几分钟里,你是不是已经走神了?脑子里冒出一些与你现在阅读的内容毫不相干的事情了呢?

What is GTD

GTD,简单来说就是为了将我们从上述困境中解放出来而存在的一种行为管理的方法。其理论依据是理解自己的大脑是如何工作,并对症下药。

大脑中盘踞问题的多少与其解决的效率成反比。

很多研究都表明,多线程的思考方式不适合人类,想起和忘掉的过程异常浪费精力。然而事务往往并不是线性的,这就导致了上述冲突,也就间接导致了效率底下。GTD所希望提供这样一种手段,使得所有的事务在我们的管理下,尽可能的线性化。(我觉得我跑偏了╮(╯▽╰)╭)

GTD的主要途径如下:

  • 抓住所有一切需要处理的事情(现在的、以后的、将来某时的;大的、小的、或者不大不小的)把它们统统置入一个脱离大脑的逻辑系统中。

  • 训练自己在接受一切“输入信息”的前期作出决定。

第一点的意思就是将执行事务和管理事务分离。(我想起了,策略与机制相分离,喂,又跑题了!)这是一个很直观的概念,即是保证我们的工作效率不因为突如其来的事务而降低,这一点,作为程序员,我又很深刻的体会。简单来说,需要长时间集中精力的工作都有一个预热期,过了这个时间之后,才能保持高效率;无端的打断则会导致重新花费时间度过预热期,这是十分难以接受的。

第二点的意思即是,虽说执行与管理分离,但是没有这样一个全知全能的辅助来帮我们管理,因此我们需要在突发事件来临的前期,用最少的精力对其进行最有利的管理。比如说我正在写项目,老板突然叫我去开会,这就是“输入信息”,我瞟了一眼就没理他,这就是前期决定。当然,很多时候这不是一个好的决定。

同样引用书中很精辟的话作为总结:

任何没有找到应有的位置和恰当的存在方式的事务,都会盘踞在我们的脑海中称为悬而未决的问题。

事情极少由于时间匮乏而受阻。他们陷入困境往往是由于未能判定行动而造成的。

综上就是GTD最直白的描述了,比较空泛,毕竟我也接触不久。随着更深的了解,我也跟进更详细的体会的。

From my perspective

这一部分,我想以我一个大学生的态度来谈谈看法。

正好我是计算机专业的学生,很多术语恰好能够比较形象的描述这个问题。简单来说,就像单进程和多进程一样。多进程的上下文切换如同我们的预热期,多进程对性能的提升并不是随着进程数量的增加而无限放大的,因为到最后进程切换占据了绝大部分的时间。我们的计算能力远逊于电脑,头脑也没有寄存器一般精确,因此稍有上下文切换,就会耗费大量的精力,这也就是大量程序员反感突然开会的原因。

再来看javascript怎么工作的。javascript是严格单线程执行的语言,使用异步调用来模拟并发的任务。具体来说即是一个耗时的工作(如图片下载)并不马上执行,而是等密集的CPU工作结束后在执行,执行完毕后调用特定的函数通知用户。这样,会给人一种错觉,即浏览器在请求资源的同时仍然在跑其他代码。这与我们通常的工作模式有出入,毕竟我们不能随意推迟工作,然而这样的工作模式可以给我们一些启发。

还有另一个现象我想提一提,大学之前,我很少碰日历软件,甚至没有理解其存在的理由。现在想起来,真是之前的工作环境太理想了,不仅再教室里很少有其他事情干扰,说实话,除了刷刷题之外也没有什么值得操心的事情。现在,即便是随意的一个念头,比如一个js库是否有更好的替代品,在寻找答案的过程中,往往因为看到其他关键词而产生无数个其他的念头,引发一系列连锁效应。如同一只深搜的指针,明明答案就在隔壁,却一意孤行的跑向深处。因此,类似的工具确实非常有必要的。Mac自带的日历我用了大概半个学期左右,现在再学习使用OmniFocus,这是一个十分强大的工具,我还没有使用熟练。

当然,践行GTD的确需要工具的支持,这些细节我以后会仔细讨论。

嘛,总之第一篇读后感到此结束,这是一个很有意思的主题,希望更多的人能够了解它。

Reference

David Allen. Getting Things Done, The Art of Stress-Free Productivity

Keyboard Stroke Frequency Analysis

Count and show keyboard strokes.

Koans Games

Published on May 12, 2014

About VIM and It’s Philosophy

Published on May 01, 2014