omnifocus文章

@用 Omnifocus 搭建任务管理系统

2019-04-03  本文已影响0人  seyvoue

笔者是一个自控力极差的拖延症患者,尝试了各种方式和工具都没能很好的解决这个问题,直到看到此文

根据该文的思路,可以解决笔者目前在执行计划时常碰到的几个问题:

什么是一个好的任务管理系统

首先,任务管理系统的目的是为了更好得完成任务,一切脱离这个基本条件的系统都是不可用的。如果你觉得一个最简单的 Todo List 就能很好地完成任务,那么这就是最适合你的任务管理系统。

在我看来,一个优秀的任务管理系统至少需要满足以下条件:

为什么需要至少满足这两个条件呢,或者说这两个条件对于任务管理系统来说,重要在哪里?

收集能力指的是这个任务系统要能够容纳(几乎)所有的内容,一个任务、一条想法、一封未读的邮件、一个笔记、一个链接、没有报销的发票等等。

如果有读过《Getting Things Done》或者了解过 GTD 理论的同学可能就知道,收集 是整个流程中最开始的一环。如果要做的任务散乱在各处,难免会有遗忘的时候,任务没有被收集到,也就没有后面的处理流程了。

具体实践起来并不是真的需要把所有的东西都塞进任务系统里面,例如我使用 Evernote 作为剪裁和笔记的工具,很显然把每条笔记都复制一份到 OmniFocus 中很不现实,但是我会在 OmniFocus 中添加一个「定期清理 Evernote Inbox」的任务,这样就相当于把 Evernote 作为 OmniFocus 的子 Inbox,来统一进行管理。对于一些支持 URL Schema 的应用,完全可以在 OmniFocus 中建立一个链接直接指定,这样在 OmniFocus 中也可以直接打开其他应用中的内容了。

收集能力决定了要处理的内容,第二个条件则决定了一个任务系统是否是稳定可用的。具体的情境来说,你要知道早上的时候该干哪些事,工作的时候该干哪些事,无聊的时候又该干哪些事等。这样,在某一情境下,可以直接进入状态,而不是要花时间思考现在到底要做什么。

一个任务系统如果做好了这两件事情,那么就不会让你身处「感觉有很多事情要做,却不知道要做什么」的尴尬境地了。

任务管理系统的三要素

到现在为止,我还没有讲到具体工具的使用。因为工具是次要的,了解了本质的思想,使用什么工具都没有问题。纵观各种任务管理的工具:OmniFocus、Todoist、Things、org-mode,它们支持的功能也各不相同,Project、无限层级、Defer、Due、Repeat、Context、Label、Tag、Filter、Perspective 等等,有没有被这些名词给吓到?难道我们每切换一种系统都需要再重新学习一遍?

抛开这些名词,我们来分析一下一个任务系统到底是由什么组成的。在我看来,一个任务系统最本质的东西只有三个:任务、附加元素和过滤器。

任务:一个 最小可执行 的单元即为一个任务。这个是最好理解的,所以不做过多解释。

附加元素:作用在任务上的不同维度的限制。这句话读起来有点拗口,举个简单例子,「去 XXX 取快递(截止今天 10:00)」,其中,「截止今天 10:00」就是在时间维度上对这个任务的一个限制。同样的,「项目」、「标签」等等这些都是作用在某个任务上的附加元素。

过滤器:组合不同附加元素的过滤规则。只有附加元素并没有什么实际的作用,但是有了过滤器之后,就可以编写不同的过滤规则来过滤指定规则的任务。例如,我想知道「最近 10 天内重要的事情」,那么过滤规则可能就是「Due date < 10 and flagged」。

了解了上面三个基本的概念,那么再重新审视各种任务管理工具,就可以从一个比较宏观的角度来看待了,这也可以避免切换工具造成的重新学习成本。

这三个概念和 Hum 在《用更现代的方式做任务管理》提出的「LTF(列表、标签、过滤)」理论十分类似,并且 Hum 用了更大的篇幅来叙事这个概念,有兴趣的可以订阅这个栏目阅读。

OmniFocus 3 实践

把上面任务系统的基本三要素运用到 OmniFocus 上,任务就是一个个的单独 Todo item,附加元素就是 Todo item 所属的项目、Due Date、Defer Date、Tags、Flag、Repeat rule 等,过滤器就是透视(Perspective)。

接下来的内容我会通过 OmniFocus 3 为载体,来具体介绍如何实现一个可靠的任务管理系统,并介绍一些实际实践过的 Workflow 流程。

项目的设定

如果想保证项目比较有序,分成三个层级即可:大的领域(Folder)- 子领域(Folder)- 项目(Project)

例如,我的项目分级如下:


OmniFocus 项目分类

主要分成了5个比较大的项目:系统、学习、工作、生活、兴趣,基本上可以涵盖涉及到所有的领域了。在每个大的项目中再细分出小的项目,这个可以根据自己的需要进行积分。OmniFocus 支持无限极的项目划分,但是个人建议不要超过3层,最后一层直接是任务就可以了,这样可以保证项目层级不会过于复杂。

可以看到很多项目下面都有用[]括起来的项目,这个是 Single List 项目,这样一些不属于某个项目里面的内容就可以放到这个列表里了。

一些项目设定的 Tips:

标签的设定

例如,我的标签如下:


OmniFocus 标签策略

一个任务在时间维度上应该有有截止日期(Due)和安排日期(Schedule)两个元素,Due 表示在某一天之前必须被完成,Schedule 表示被安排到某一天做,所以可以设定如下标签来完成 Schedule 的功能:

这样在做计划的时候,打上对应的标签,就可以使用过滤器过滤出对应的任务了,比如我想看「这个月和工作相关的任务」,那么就可以指定 Project 为「Work」项目,标签为「ThisMonth」,这样对应的任务就可以使用这个过滤器过滤出来,具体的过滤器设定下面会讲到。若一项任务没有被打上 Schedule 标签,则该任务不该被认为为一项可执行的任务,因为一项未被安排的任务在未来很有可能会被你忽略,所以,对于要添加进 OmniFocus 的任务,一定要打上 Schedule 标签,否则就不要添加进去。

另外一个可以借鉴的设定就是精力值标签:

例如,我们工作了一整天之后,还剩一段时间才下班,精力已经下降到一个很低的值,这个时候已经不适合完成一些需要非常专注的工作了,但是一些工作上的杂事,例如打印东西,提交报表等简单的工作可以利用这个时间来完成,这个时候我们就可以设定一个过滤器,过滤出 Project 为「Work」,标签为「LowEnergy」的任务。

我们可以看到,标签系统可以极大地扩展附加元素的内容,给过滤器添加更多的过滤维度。标签系统的设定应该根据自己的需求来,如果设定的标签却没有在过滤器中用到的话,那么也仅仅是个任务添加了一个没有用上的附加元素而已,意义不大。

过滤器设定

例如,我的过滤器如下:


OmniFocus 过滤器策略

过滤器的目的就是组合各种条件,过滤出所需要的任务来,之前所有的任务上的附加元素都是为了过滤器而设定的。

同标签系统一样,过滤器的设定依然需要结合自己的情况来。我主要设定了以下几个过滤器,这些过滤器都是在实践中经常使用到的。

Routine 过滤器

这个过滤器主要被用于制定计划。例如:由于我每天晚上睡得比较晚,所以我创建了一个 Evening Review,来规划明天需要做的任务。

过滤器的详细设定如下:


Routine 过滤器设置

其中,「Routines」Folder 中就是设定的具体内容:
[图片上传失败...(image-360d2a-1554275186267)]

这一个过滤器的设定是和我的 Workflow 紧密相连的,如果你没有做 Morning Review 之类的习惯,可以不需要设定这个过滤器。

Today 过滤器

这个过滤器被使用的次数最多,过滤器的详细设定如下:


Today 过滤器设置

这个过滤器将会把符合以下条件的任务过滤出来:

显示方式以 Project 为维度显示:


image

对比 Forecast Perspective,它只是把对应的任务都展示了出来,在任务的层级上没有自定义的那么清晰。


image

Work 过滤器

这个过滤器和 Today 类似,只不过指定了所属项目为「Work」文件夹下面的任务,这个主要是在工作中只想专注于和工作相关的任务。

过滤器的详细设定如下:


image

除了指定了特殊的项目目录,其他的设置和 Today 的设定没有区别。

To-Sth 过滤器

日常的使用中,我会把没有看的文章、需要写的东西、要读的书、要搜索的内容都存在 OmniFocus 中,所以需要一个过滤器能够快速过滤出这些内容。

首先使用这个过滤器需要先设置一套标签系统:


image

过滤器的详细设定如下:


image

实际的使用场景:比如我想阅读一些和 Python(一门编程语言)相关的内容,那么我只需要打开这个 Perspective,挑选标签为 To-Read,然后从搜索框中搜索 Python 关键字就可以了。

Future 过滤器

这个过滤器主要被用于制定计划,在 Weekly Review 和 Daily Review 中会被频繁地使用到。需要基于以下的标签设定:


image

过滤器的详细设定如下:


image

EasyDo 过滤器

这个过滤器会把一些简单的或者不需要太多精力的任务过滤出来。

过滤器的详细设定如下:


image

完成时间小于 15 分钟或者被标注为LowEnergy标签的任务会被过滤出来。

工作流

在整个 Workflow 中,主要分为三个部分:计划、执行、总结。

当按照上述思路完成以 OmniFocus 对任务管理系统的搭建后:

计划

很多人都不重视计划这个环节,想到什么做什么,这样不仅会做事没有条理,也会分不清任务的优先级。

一般来说,如果不知道怎么做计划的话,有一个长期计划和一个短期计划就可以了。长期计划主要是一个大体的方向,可以是年度计划或者月度计划;短期计划则需要明确具体要做哪些事情,可以是周计划或者日计划。

实践过程中使用最多的就是周计划和日计划,以及月计划和年计划。在 OmniFocus 中,我设定了几个项目,分别是 Morning ReviewEvening ReviewWeekly ReviewMonthly ReviewAnnual Review

由于我晚上睡得比较晚,所以我会在每天晚上通过 Future过滤器,从ThisWeekRecently标签中的任务挑出一些作为明天的任务,并将它们打上Today标签。

通过Today过滤器,知悉今天要完成的任务

通过 Future过滤器,从ThisMonth标签中挑选出本周的任务,并将它们打上ThisWeek标签

通过 Future过滤器,从ThisYear标签中挑选出本月的任务,并将它们打上ThisMonth标签

执行

执行应该是整个 Workflow 中最重要的一个环节,如果只是计划了,但是最后任务却没有被完成,那做计划也只是白费力气。

执行的关键就是要在对的时间内做对的事,这也是为什么要设置那么多过滤器的原因,在工作的时候就只展示工作相关要做的事,在没有精力的时候就只展示简单易做的事情。

如果你做事情的时候很容易分心,可以参考一下番茄工作法,一般我会设置为专注 50 分钟,然后休息 10 分钟。默认的 25 分钟时间过短,可能刚进入状态就要被打断。

另外可以尝试使用「结构化拖延法」(Structured Procrastination)。结构化拖延法就是忽略优先级高的事,而是从小的事,优先级比较低的事情开始做,这样慢慢地进入工作的状态,然后再去完成优先级高的事情。

总结

OmniFocus 3 提供了自带的 Review 透视,建立每个项目的时候可以选择多少天 Review 一次。实践上,一般工作上需要每天跟进的项目,会把 Review 的时间设置为每天一次,一般的项目设置为一周 Review 一次即可。为了防止忘记 Review,可以把这个 Review 的任务添加到 Morning Review 或者 Weekly Review 中。

常用的脚本

脚本的安装方法:
step1: 将后缀为scpt的脚本文件拷贝到 OmniFocus 的脚本目录 (可以使用 OmniFocus 的 Help->Open Scripts Folder 直接打开);
step2: OmniFocus 工具栏上右键, 在弹出的菜单上选择Customize Toolbar…, 找到新增脚本对应的 icon 拖到工具栏上即可。

任务执行时间统计脚本

如果能够直接在OmniFocus中记录任务的执行时间, 并统计出任务和项目的执行时间就更好了, 所以有了本文所描述的工作。
共三个AppleScript脚本文件: start.scpt, stop.scptreport.scpt.(下载地址

开始一个任务, 此脚本将在该任务的标题前添加#Ongoing:, 表示该任务正在进行, 并在该任务的备注 (note) 属性尾部增加一个记录时间的字符串(或修改这个记录时间的字符串, 如果该任务之前已经开始执行过).

如果开始任务时该任务的 Defer Until 没有填写, 那么将其设置为当前时间, 作为报告中的任务开始时间.

停止一个任务, 该脚本可以停止已经开始的任务 (标题前有”#Ongoing:” 文本的任务, 停止后删除任务标题中的”#Ongoing”文本), 并根据该任务备注 (note) 属性中的时间记录字符串计算该任务已执行时间.

注意: 任务的执行可以分为多次启动/停止, 一个任务的总执行时间是多次执行时间之和.

该脚本统计已完成的任务及其执行时间, 并累加各个项目中所有任务的执行时间作为项目执行时间.
对原脚本 (OmniFocus> Prepare Task Completion Report Version 2.0.0) 所做的修改如下:

如何使用

启动任务

停止任务

生成报告

注意事项

上一篇下一篇

猜你喜欢

热点阅读