GTD实践流程思考
这里给出一套完整的GTD流程的思考与实践,按照这个流程来执行和完善自己的GTD体系的同时,也保证一切能有条不紊的进行与完善。
体系并非一下子形成而是逐渐进化出来的,这里按照间次序给出,而非直接整理出最近的策略,也反映了本人应用GTD过程的进化过程。
注:此文只专注对GTD实践流程思考的讲述,其中涉及到的一些GTD的术语、属性、更多的实现以及其它内容,在其它GTD资料中可以了解到,篇幅原因,这里对影响理解不大的部分,不过多叙述。
[2019-09-26 四 17:01] 初步的思路
策略
能够捕捉到所有内容后,为确保体系无所遗漏,需要做到以下事情:
- 保证捕获的内容性质明确、有进一步被组织整理的机会:通过
处理阶段
- 保证处理过的内容条理清晰、属性正确、能有被再次回顾到的机会:通过
组织整理
- 保证组织过的内容与当前境况同步、不被遗忘、并有重新调整的机会,以致最终被合理地安排计划:通过
回顾阶段
- 保证被处理、组织、回顾过的、合理得到安排计划的内容能够得到执行:通过
活动列表
方法
为实现完整无遗的处理,遵循如下过程:
- 处理阶段(处理源:inbox;首先确定任务的状态(行动、日程、提醒、其它);其次大致确定项目/范围;如有更多精力处理情景、优先级;输出:孤立任务和无回顾任务、或者活动列表)
- 组织整理(处理源:孤立任务和无回顾任务;主要确定项目/范围(比如任务分解等期间会新建)、情景标签的细化(非提醒项)、日程和提醒、回顾周期的添加、优先级等其它细节属性的处理;输出:具有回顾属性的任务、或者活动列表)
- 回顾阶段(处理源:具有回顾属性的定期回顾行动(非日程/提醒);活动后期,状态同步(为保持与最新一致)、周期性属性的浏览调整;活动前期更新优先级(找出青蛙)、日计划,如有更多精力补充优化组织整理阶段的处理(提升成高优先级则去掉回顾);输出:活动列表)
- 活动列表(处理源:行动(高优先级)/日程/提醒;如果来得及的化更新状态/安排下次执行,不想做的话降低优先级添加回顾。输出:完成的任务、回顾属性任务文档等)
其它
- 时间的预估、实际完成统计
- 更高层次的回顾(前面是行动层次可能有少量项目)、思考(六个高度)
对于GTD各个步骤的更多理解,参考:GTD流程中的各个步骤
[2020-01-04 六 13:36] 进化的过程
直接对GTD流程进行详尽的规划设计,由于GTD方法涉及因素太多,又因其本身具有动态、进化的特性,导致难免有所遗漏。
这也是本人在按照一定流程(即前面给出的流程),实践了GTD一段时间后,发现的现象,因此:不可能一次性得出“永久不变的”、“完美的”GTD流程策略(显然,这也是不现实的)。
自然界对生物选择的规则是:物竟天择、适者生存,生命需要在进化中适应,而真正包含灵魂的GTD方法,显然也继承了其中的某些本质:“最完美的方法并不存在,或者最完美的方法是能不断改进的方法。”
为确保GTD处理流程完整,避免遗漏,以及可随时间进化,这里,将流程分成几个阶段(后面将会看到,这里所说的“阶段”,并不是GTD流程本身中包含的各个处理阶段,而是采用GTD流程策略的不同时期),随着使用与进化,流程会更完善。
基本阶段-通过时间信息保证无遗漏
首先,建立基本的过滤条件,确保整个GTD体系能够按照处理、组织整理、回顾、活动阶段运转起来。
注:按照2W1H的思路,what(内容), why(用途), how(动作)。
处理视图
- 内容: 所有捕捉阶段捕获到的内容,包括行动、提示、提醒、记录、备忘等任何未经处理的内容。
- 用途: 用于处理阶段。
- 动作: 粗略分辨所有条目,为其添加对应类别属性(项目任务、日程、下一步、等待委派、稍后、将来也许、取消、完成、参考)
组织整理视图
- 内容: 组织整理所有没有时间信息、但具有合适状态的条目(日程、下一步、等待委派、稍后、将来也许、取消、完成、参考)
- 用途: 用于组织整理阶段。
- 动作: 为这里所有条目添加时间信息,包括为日程分配开始/结束时间,为行动分配回顾时间,并若有可能,大致设置合适的提醒、优先级、情景、项目、范围等。
回顾视图
- 内容: 回顾视图中只有无日程信息但是有回顾时间的行动,它们会根据回顾时间适时自动出现在回顾视图中。
- 用途: 用于回顾阶段。
- 动作: 主要根据回顾时间重新审查、调整,只要行动未完成,回顾之后便根据境况再次设置下次重新审查的回顾时间,或者转为日程设置日程时间。
活动列表
- 内容: 活动列表只包含具有日程信息的行动,它们会随时间自然出现于对应活动列表中。
- 用途: 用于日程活动。
- 动作: 按照日程信息中的开始/结束时间、以及提醒,对行动日程进行处理、调整,若行动未完成,根据情况设置其下一次日程,或者转为非日程行动设置回顾。
总结
- 经过处理阶段,所有条目都具备基本属性,可以在组织整理中顾及到:包括具有时间属性的日程、和无时间属性的各状态行动与提示(下一步、等待委派、稍后、将来也许、取消、完成、参考)
- 通过组织整理,保证所有条目都具备时间信息,可以在回顾和活动列表中顾及到:日程是通过本身的时间属性出现在活动列表中,而无时间属性的各状态行动与提示是通过回顾时间出现于回顾列表中。
- 通过回顾和活动列表,所有条目都按照时间信息适时出现,保证不被遗漏地调整计划安排。
- 最后,在回顾视图和活动列表中,挑取任务执行。
-
MLO工具中的实现
-
概况
MLO中对行动的状态(日程、下一步、等待委派、稍后、将来也许、取消、完成、参考),使用标旗来表示,在其它的GTD文章中会有提及,这里不具体叙述。
在MLO工具中,为实现基本的GTD框架,对前面各阶段所用到视图的实现如后面。
-
处理视图
收集任务默认的
工作蓝
包含了所有已被捕捉、待处理的条目。 -
组织整理视图
IsProject="假“ 和 IsFolder="假" 和 { NextReview=”不存在“ 和 StartDataTime="不存在” 和 截止=“不存在” } 和 Complete=“假”
注:
- 将Folder做为领域,领域是相对固定的,所以组织整理的时候,不会对已有Folder做调整。
- 仅对尚未确定为Project的内容进行组织整理,确定为Project的可能因不同状况将来逐渐加入。
-
回顾视图
NextReview="不晚于Today" 和 StartDateTime="不存在“ 和 截止=”不存在“ 和 Complete="假”
-
活动列表
IsProject="假“ 和 { StartDateTime="早于Today+1" 或 截止=”早于Today+1“ } 和 Complete=”假“
-
-
Orgmode工具中的实现
-
概况
1.Orgmode中对行动的状态配置。如下:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; TODO settings of org-mode. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;set status for TODO. (setq org-todo-keywords '((sequence ;;Used for action "INBOX(i!)" "AGENDA(a!)" "NEXT(n!)" "WAIT/FORWARD(w@/!)" "LATER(l!)" "MAYBE/FUTURE(m!)" "REFERENCE(r!)" "|" "CANCEL(C@/!)" "DONE(d!)") (sequence ;;Used for project "PROJECT(p!)" "TODO(t!)" "|" "STOP(S@/!)" "FINISHED(f!)")))
具体对应的意思,不言而喻,这里就不细说了,会有专门的文章对行动状态进行讲解。
2.整体视图配置的框架。下面框架列出了需要具体关注的视图
;;custom view (defun my-custom-view (searchstr) ;;(org-tags-view nil "PRIORITY=\"B\"") (org-tags-view nil searchstr)) (setq org-agenda-custom-commands nil) ;;Setup Gtd views (setq gtd-views '("G" . ">GTD process(p-process, o-organize, r-review, a-active, x-others)")) (setq gtd-views-process '("Gp" "GTD process view." (my-custom-view ""))) (setq gtd-views-organize '("Go" "GTD organize view." (my-custom-view ""))) (setq gtd-views-review '("Gr" "GTD review view." (my-custom-view ""))) (setq gtd-views-action '("Ga" "GTD active view." (my-custom-view ""))) (setq gtd-views-others '("Gx" "GTD others." (my-custom-view ""))) (add-to-list 'org-agenda-custom-commands gtd-views t) (add-to-list 'org-agenda-custom-commands gtd-views-process t) (add-to-list 'org-agenda-custom-commands gtd-views-organize t) (add-to-list 'org-agenda-custom-commands gtd-views-review t) (add-to-list 'org-agenda-custom-commands gtd-views-active t) (add-to-list 'org-agenda-custom-commands gtd-views-others t)
Orgmode对日程过滤视图的配置也有专门的文章讲述(
GTD实践
) 一文这里只给出最核心的部分,然后基于此,我们对每个视图进行配置,如下。 -
处理视图
处理视图就是
INBOX
状态的内容,有专门的快捷键实现迅速捕捉,这里也不进行具体讲述。。(setq gtd-views-process '("Gp" "GTD处理阶段:两分钟任务(执行),分配 *状态*、*类别*、*优先级*,其它。 " (;;条件:INBOX/不符合规则内容 (todo "INBOX" ))))
-
组织整理视图
(setq gtd-views-organize '("Go" "GTD组织整理:确认 行动的 *情景/提醒*、*项目/范围*、*回顾周期*、合理的 *优先级*,其它." (;;条件:所有无SCHEDULED时间属性的非项目原子行动 (tags-todo "SCHEDULED=\"\"" ((org-agenda-sorting-strategy '(todo-state-up priority-down)))))))
-
回顾视图
(setq gtd-views-review '("Gr" "GTD回顾:确认日计划、更新活动列表、以及非活动列表(低优先级)" (;;条件:当天及以前所有具有SCHEDULED时间属性的非日程条目 (agenda "" ((org-agenda-span 1) (org-agenda-skip-function '(org-agenda-skip-entry-if 'todo '("AGENDA"))) (org-agenda-sorting-strategy '(habit-down time-up todo-state-up priority-down)))))))
-
活动列表
(setq gtd-views-action '("Ga" "GTD活动列表:待安排任务(回顾前期)、待执行任务(执行)、待更新任务(回顾后期)" (;;条件:所有两天内的日程 (agenda "" ((org-agenda-span 2) (org-agenda-skip-function '(org-agenda-skip-entry-if 'nottodo '("AGENDA"))) ;;(org-agenda-sorting-strategy '(priority-down)) (org-agenda-log-mode-items '(closed clock state)) )))))
-
初步优化-通过添加额外条件优化显示、应保证容错
经过基本的过滤,GTD体系框架能够建立起来并开始工作,但是实践过程中还是有些不够方便的地方。所以对上述各视图添加额外的过滤条件进行初步优化,提高GTD的运行效率。
这里主要包括如下问题的优化:
-
问题1:
执行阶段的任务
需要在活动列表和回顾视图两处挑取待执行的日程行动(比如属于日程
行动的 “XXX日期还信用卡”应在活动列表中,属于下一步
行动的 “最近要买XXX东西” 应在回顾列表中)。 -
问题2: 特定
紧急重要任务
,无法集中在一处方便地显示和查找到并处理(比如每日计划或者临时出现的重要、需要明显标注、防止忘记的事项,可能是活动列表中的日程
,或回顾列表中的条目,甚至是临时收集
的紧急事件)。 -
问题3: 对于
只有提醒的临时事项
,可能会分散多处无法直接看到(比如回顾列表中属于等待委派
的“明天几点XXX购物到货确认”应在回顾列表中,或者属于日程
的“几点XXX抢高铁票”应该在活动列表中),易造成突发状况。 -
问题4: 有时会有些
不合理的条目
,比如:日程无开始结束却有回顾时间,行动无回顾属性却有日程安排等,虽然前面能保证所有条目因时间信息不被遗漏,但却难免平时误操作造成的异状,且随时间可能会有更多“不合理”的矛盾条目。
注:关于什么条目是合理、什么是不合理,这里不做深究,在GTD相关的其它文章中,会有更多介绍。这里提到的不合理,只是众多矛盾现象的一个,随着GTD认真执行,这些不合理会自然呈现消失,并不会影响什么。
随着时间和执行人的状况、思路的不同,也很难全面给出所有的可能,而这里只给出针对前面列出的问题,来进化GTD框架的思路,随着应用相信每个人都有更适合自己的不同的GTD体系。
处理视图
仍满足前面 基本阶段-通过时间信息保证无遗漏 (参见第1.2.1节) 中回顾视图的原则。
组织整理视图
仍满足前面 基本阶段-通过时间信息保证无遗漏 (参见第1.2.1节) 中回顾视图的原则。
针对 问题4
, 增设两个条件: 除了原有的无任何时间信息条目过滤出来之外,将有回顾却是日程或有起始/结束却不是日程的行动也过滤出来,减少了后续处理的凌乱。
回顾视图
仍满足前面 基本阶段-通过时间信息保证无遗漏 (参见第1.2.1节) 中回顾视图的原则。
针对 问题1
, 即 执行阶段的任务
需要在活动列表和回顾列表分散挑选的问题,在回顾视图中增设一个过滤条件: 将高优先级的行动过滤掉,执行阶段首先可以不关注回顾列表。
针对 问题2
, 在回顾视图中增设一个过滤条件: 将这类特定的 紧急重要任务
过滤掉,不在回顾列表中多余关注这类内容。
活动列表
仍满足前面 基本阶段-通过时间信息保证无遗漏 (参见第1.2.1节) 中回顾视图的原则。
针对 问题1
, 活动列表除了已有日程之外,在这里增设一个过滤条件,将回顾视图中过滤出来的“高优先级的行动”添加至活动列表,这样执行阶段主要先关注活动列表即可。
针对 问题2
, 一般软件都具有“标星”、高亮、特殊优先级等功能将 紧急重要任务
标注出来,在这里增设一个过滤条件,将这类特定的 紧急重要任务
也在活动列表中显示出来。
针对 问题3
, 在这里增设一个过滤条件,将所有最近具有提醒的所有事项也在活动列表中显示出来,亦包含了 只有提醒的临时事项
。
针对 问题4
, 这里增设一个条件,增强过滤显示所有是 日程
条目(即日程,并且有起始时间才被显示,而回顾中对此不关注), 减少不合理条目对执行效率的干扰。
总结
-
问题1
的解决: 根据日程优先处理,高优先级行动优于低优先级行动原则,通过回顾视图和活动列表中增设条件,集中在活动列表中优先处理。 -
问题2
的解决: 特殊优先级任务优先显示在集中处理的活动列表中并在回顾列表中去掉,减少了分散冗余导致遗忘的情况。 -
问题3
的解决: 类似问题2
, 对于提醒
这类时间异常严格的条目,也集中于活动列表优先显示,更万无一失。 -
问题4
的解决: 出现不合理的条目,在组织整理视图中会自动显示出来,以待处理成合理。
注:我们在具体实现中,可能因具体情况有少许优化与区别,
比如:活动列表中除了日程,并不是所有的高优先级任务,而只对“下一步”、“等待委派”、“参考信息”进行列出,其它的仍旧留在回顾视图,等等。
这里只给出基本的框架和改进的思路,随着实际应用和现状,会适当添加对应的过滤条件,因人因情况而异,这里就不做介绍了。
-
MLO工具中的实现
在MLO工具中,为实现这里改进的GTD框架,对前面各阶段所用到视图的实现如下:
-
处理视图
收集任务默认的
工作蓝
包含了所有已被捕捉、待处理的条目。 -
组织整理视图
IsProject="假“ 和 IsFolder="假" 和 { { NextReview=”不存在“ 和 StartDataTime="不存在” 和 截止=“不存在” } 或 { Flag="非日程” 和 { StartDateTime=“存在” 或 截止=“存在” } } 或 { Flag="日程” 和 NextReview="存在" } } 和 Complete=“假”
注:
- 前面
问题4
的解决,在后面Flag
为非日程
和日程
的增设子条件中体现。
- 前面
-
回顾视图
NextReview="不晚于Today" 和 StartDateTime="不存在“ 和 截止=”不存在“ 和 Starred="假“ 和 { Importance<="150" 或 Urgency<="150" } 和 Complete="假”
注:
-
问题2
在Starred
条件和后面的Importance
与Urgency
增设子条件中体现。
-
-
活动列表
IsProject="假“ 和{ Starred="真” 或 NextAlertTime="早于Now+0.05" 或 { Flag="日程“ 和 { StartDateTime="早于Today+1" 或 截止=”早于Today+1“ } } 或 { Flag="下一步" 和 Ugency>="150" 和 { NextReview<"Today+1" 或 NextReview="不存在" } } 或 { Flag="等待委派" 和 Ugency>="150" 和 { NextReview<"Today+1" 或 NextReview="不存在" } } 或 { Flag="参考" 和 Importance>="150" 和 { NextReview<"Today+1" 或 NextReview="不存在" } } } 和 Complete=”假“
注:
-
问题1
在后面的Flag
为下一步
,等待委派
,参考
的子条件组中体现。 -
问题2
和问题3
在前面的Starred
和NextAlertTime
子条件中体现。 - 高优先级行动如果没有回顾属性则一定都显示(保证可以一直关注的高优先级),如果有回顾属性则只显示今天以前的(谨慎设置高优先级的回顾属性因为可能导致没有及时回顾到)。
-
-
-
Orgmode工具中的实现
在Orgmode工具中,为实现这里改进的GTD框架,对前面各阶段所用到视图的实现如下:
-
处理视图
(setq gtd-views-process '("Gp" "GTD处理阶段:两分钟任务(执行),分配 *状态*、*类别*、*优先级*,其它。 " (;;条件:INBOX内容 (todo "INBOX"))))
-
组织整理视图
(setq gtd-views-organize '("Go" "GTD组织整理:确认 行动的 *情景/提醒*、*项目/范围*、*回顾周期*、合理的 *优先级*,其它." ( ;;不在任何领域的待办事项 (tags-todo "LEVEL<=2" (;;(org-use-property-inheritance nil) (org-agenda-files (list (concat org-directory "gtd/_life.org") (concat org-directory "gtd/_study.org") (concat org-directory "gtd/_work.org") (concat org-directory "gtd/_others.org"))) (org-agenda-sorting-strategy '(todo-state-up priority-down)))) ;;条件:所有无SCHEDULED时间属性的非项目原子行动 (tags-todo "SCHEDULED=\"\"" ((org-agenda-sorting-strategy '(todo-state-up priority-down)))))))
注:
-
问题4
中,日程和其它状态待办共用SCHEDULED
属性,所以不存在起止时间
与回顾时间
导致的区别。 - 另外,为优化后面的处理,额外添加了一项,
_life.org
,_study.org
_work.org
中的3级标题以上,才允许具有状态的待办,小于3级的标题留作领域,无状态,相当于MLO中的Folder。
-
-
回顾视图
(setq gtd-views-review '("Gr" "GTD回顾:确认日计划、更新活动列表、以及非活动列表(低优先级)" ( ;;条件:所有非日程待回顾行动。 (agenda "" ((org-agenda-span 1) (org-agenda-skip-function '(org-agenda-skip-entry-if 'nottodo '("NEXT" "WAIT/FORWARD" "LATER" "MAYBE/FUTURE" "CANCEL"))) (org-agenda-sorting-strategy '(habit-down time-up todo-state-up priority-down)))) ;;条件:所有非原子待回顾条目项目 (agenda "" ((org-agenda-span 1) (org-agenda-skip-function '(org-agenda-skip-entry-if 'nottodo '("PROJECT" "TODO" "STOP"))) (org-agenda-sorting-strategy '(habit-down time-up todo-state-up priority-down)))) ;;条件:所有待归档、回顾的已完成、参考 (agenda "" ( (org-agenda-skip-function '(org-agenda-skip-entry-if 'nottodo '("REFERENCE" "DONE" "FINISHED"))))))))
注:
- 与MLO不同,共用SCHEDULE的非日程行动与日程的区别在于:日程进行后要转换状态(重复日程Orgmode会自动设置下一次的日程状态);非日程行动回顾之后不切换状态,而是重新修改SCHEDULE属性。
- 对于
REFERENCE
,DONE
,FINISHED
的回顾,大多数是用于归档。 - 对于
问题3
, 为简化Orgmode配置描述,这里并未在回顾列表中将高优先级的具有SCHEDULE属性行动过滤掉。
-
活动列表
(setq gtd-views-action '("Ga" "GTD活动列表:待安排任务(回顾前期)、待执行任务(执行)、待更新任务(回顾后期)" ( ;;条件:两天以内的,所有日程。 (agenda "" ((org-agenda-span 2) (org-agenda-skip-function '(org-agenda-skip-entry-if 'nottodo '("AGENDA"))) (org-agenda-log-mode-items '(closed clock state)) )) ;;条件:所有高优先级除了SCHEDULED在今天之后的NEXT/WAIT*/REFERENCE行动 (tags-todo "PRIORITY<\"C\"-SCHEDULED>\"<today>\"/!+NEXT|+{WAIT.*}|+REFERENCE"))))
注:
- 对于
问题1
, 为简化Orgmode配置描述,这里暂无提供提醒相关功能配置。 - 高优先级行动如果没有SCHEDULE则一定都显示(保证可以一直关注的高优先级),如果有SCHEDULE则只显示今天以前的(谨慎设置高优先级的SCHEDULE因为可能导致没有及时回顾到)。
- 对于
-
网友评论