在持续性混吃等死的生活中,每个人或多或少都有一些踌躇满志的时刻。比如看了某部励志影片后,你发誓要贯彻马斯克精神,疯狂地学习进步,直到打破生活的桎梏;或者是看了某减肥 vlog 之后,你赌咒要每天锻炼,半年后获得魔鬼身材,发朋友圈惊艳众人。然而现实总是像一个漏气的轮胎,大多数毒誓最后都随着三分钟热度的消散没有了后文。短暂的热情掀起的涟漪平静之后,生活又回到了老样子。

所以是什么导致我们的尝试一次又一次地搁浅?如何让一份事业更加持久地进行下去?

我想,答案可能是项目化。我们需要将模糊的愿望用项目作为载体带到现实中来,才能让它不受三分钟热度的影响持续产生动力。在这篇文章里,我将以我自己的研究学习项目为例,带你走一遍我的项目管理进化之路,教你用 Obsidian 搭建自己的项目管理系统,从此把愿望落到实处。

缘起

每个人都有自己的愿望,如果把实现愿望的的过程则可以看作一个项目,就产生了如何做这个项目的问题:

  1. 这个项目要达到什么目标?
  2. 实现这个目标需要做些什么?
  3. 如何安排需要完成的任务?
  4. 如何持续监督项目的进行,保证及时完成?
  5. ……

要做好这些事情,就需要项目管理

像我这样的研究生最大愿望是能够早点发论文顺利毕业。然而这对科研新手来说并不是个简单的任务。通常来说,大多数人入学的时候被问起怎么发论文是两眼一抹黑的,只知道大致的努力方向,而没有清晰的路径可以遵循(尤其是导师放养的情况下)。这让「读研」这个项目做起来困难重重。

面对这样的问题,许多个人以及开发团队都提出过许多项目/进度管理的方法,也开发了许多产品。比如大名鼎鼎的 Notion 就推出了 Timeline 这一功能实现高效的任务管理以及进度管理(参见《Notion 2.10:Timeline 终于来了》)。使用这些工具可以做出非常漂亮的读研规划,足够让周围人都将你称作 J 人。

image.png
image.png

在我看来,这些系统都很完美,但问题在于……过于完美了

这些工具无不假设你的项目有明确的计划可以遵循,可是很多探索学习意味浓厚的个人项目,就比如读研,是做不到明确规划的。我们往往是在项目进行的过程中不断地学习,然后不断地修改路线。经常出现的一个情况是:我昨天才刚刚确立的规划,今天马上就会被推翻。而这些系统其诞生更多是为了有序地组织大家执行已知的一批已知工期的任务,并且尽可能地压缩总工期,其往往不能很好满足这类项目的需求。

比如甘特图就是这一精神的代表:

image.png

后来,在付出来大量学习成本却还得不到一个可以落到实处的方案后,我终于决定自己用手头的 Obsidian 为自己量身定制一套项目管理方案,于是就有了你看到的这篇文章。

而我的探索,可以看作是一部「项目看板迭代史」。介绍我的最终方案之前,我需要先谈谈「项目看板」的问题。

项目看板

Linux 界有一个著名的 KISS 原则:Keep It Simple, Stupid! 大意是解决一个问题时务必首选最简单的方案,哪怕这个方案看起来很蠢。这个原则在折腾成风的个人知识管理领域是必须记住的箴言。秉持这个精神,我一开始就是采用了一个简单到有点蠢的方案:一个包打方方面面的项目看板。即把有关这个项目的一切信息都塞进一个文档中,待需要的时候查阅

以我的研究学习项目为例,我在项目看板中加入了:

  • 研究方向、研究创新点
  • 会议纪要
  • 零碎的灵感和日志
  • 近期以及远期的各种目标计划
  • 各种待办
  • ……

如此多的内容,就这样无序地混杂在一个文档之中。这样虽然难免带来混乱,但是却让我们的项目管理有了 0 到 1 的飞跃:这意味着我们的项目正式立项了

不要小看立项的意义。项目一经立项,就相当于在现实世界中存在了,从此以后它就不再是你能随意忘掉的一个想法。在之后的日子里,它的存在本身会不断提示你对它负有责任,提醒你给它一个交代。就凭此,我们的心愿打破「三分钟」的寿数的可能性就大大增加了。

此外,项目看板记录的各种信息能够让你对项目的情况有一个基本的掌控。尽管一团乱麻般的记录会让你查询的时候费一些力气,但只要有据可查,我们就有办法监督项目运行的情况,就能持续推进整个事业。

因此,如果你是一个秉持「能用就行」精神的实干主义者,不妨就从一个简单的项目看板开始。事实上,很多优秀的人也就是靠这样一个简单的方法做好了很多事情。Stupid 的东西总是能发挥意想不到的效果。

但是就像 Linux 的很多 Simple, Stupid 的设计在几十年后成为了其发展的制约一样。随着材料的积累,我逐渐意识到了这套体系固有的局限性:

  • 个人项目往往没有经验可以借鉴,需要不断试错,制定的计划被不断修改;正在进行的方向和已经放弃的方向冗杂在一起容易产生误导;
  • 很多待办和需要思考的问题被淹没在茫茫文字中彻底丢失;
  • 我希望在推进这个项目的过程中学到的东西可以被纳入到知识管理体系中,混杂在项目看板中很难进行查找以及复用。

但是与此同时,我又希望保留单一项目看板那种简单、灵活、无压力记录的优点。在此需求下,项目看板 2.0 诞生了。

项目看板 2.0

项目看板 2.0 相较于原始思路最大的改变,是将原本混杂在一起的各种东西分离了开来,但是又通过标签以及 Dataview 作为纽带将它们联系在一起。以我的研究项目为例,它的项目面板是这样的:

image.png

项目模板包含一个 canvas 图,这是项目计划以及修订历史版本。在这里面我们用红色表示当前活跃的路径,其在项目面板中会以缩略图形式显示。点击缩略图则会跳转到 canvas 内部。这个 canvas 图的设计意义以及用法会在后面的章节中详述。

image.png
image.png

项目面板会使用 Dataview 自动汇总相关的项目笔记、日志、任务以及研究综述。和之前一样,只需要一个项目面板,就能掌握项目的方方面面。

image.png

周报,或者说日志则用于记录项目中的各种零散的信息以及思考内容,没有任何形式要求,保持了简单以及灵活性。周报文件是供所有项目共用的,周报顶部会显示当前正在进行的项目。各个项目的日志用大标题区分开即可。比如「我的研究」项目的日志就记在 # 我的研究 之下。

待办任务(task)也记在日志之中。各个任务会被 dataview 自动汇总到项目面板里面,并且按照周数分组归类显示:

image.png

此外,项目中产生的知识都以卡片的形式存储于知识库中,并且会被 dataview 汇总到项目面板。

image.png

接下来,我会逐个部分介绍项目看板 2.0 的用法以及其实现原理。

项目规划:里程碑式规划

凡事预则立,不预则废。不论做什么事都总归得有个计划。我们认知中的项目计划是一张时间表,把目标清晰拆解为一组任务,并且明确规划每个时间需要做什么任务。甘特图(gantt)就淋漓尽致地体现了这种思想:

image.png

但是现实中,我们不一定有做这种计划的条件,也不一定有这样的必要。比如:

  • 我只知道达成目标所需要努力的方向,不知道如何拆解成具体的任务,很多东西还需要探索;首次尝试做的事情都有这样的特点;
  • 我的生活总是频繁受打扰,以至于我做的任何时间规划都很难按照期望进行;做副业经常出现这种情况;
  • 工期对我来说没有那么重要,我更看重持续的进步;读书、健身等个人进步事业常常都是这样。

这些项目就不适合用传统的计划思路去推进,而是更适合用里程碑(milestones)来做规划。

里程碑也就是过去会放在马路边的路牌,用来告诉你已经抵达了哪个地方。里程碑引申出来的含义是达成的成就,项目看板 2.0 的做法就是用成就系统代替分步计划

仍然以科研项目为例。科研计划的里程碑终点往往是做出某项成果,比如发表某级别的论文。然后我们为其拆解出一些子目标:

  1. 确定研究方向
  2. 提出创新点假设
  3. 实验验证假设
  4. 撰写文章
  5. 投稿/修订

这些子目标都是一个个小里程碑,其和之前提到的任务区别在于任务可以估算工期,而这些不能。在这些子目标之下必然还需要拆解出更加细分的步骤,拆解完成之后,就形成了一条路径

image.png

然而现实中,我们很难按照一开始的设想走完所有的里程碑抵达终点,项目过程中总少不了挫折。比如一个很可能发生的情况就是创新点假设被证明走不通,此时就需要基于之前的错误提出新的假设。即从出错的地方长出一个新的枝桠。从此旧的路径我们就只做参考用途,以后项目将按照新的分支进行。

image.png

这就是里程碑式规划的主要思想,实际操作上还可以更加灵活。比如我不仅会用箭头表示里程碑顺序关系,还会用箭头标记不同方案之间的思想承继关系,或者将笔记链接到图中。

以上绘图均是用 Obsidian 内置的 canvas 插件完成的。Canvas 提供了足够的自由度供我们去自定义自己的路线图。到最后,我在只需要像引用图片那样项目看板中引用 canvas 文件,就可以方便地从项目看板跳转到路径规划了:
 

image.png

项目知识:PARA 标签

项目推进过程中总会产生很多有用的经验以及学习的机会。而我们希望将这些知识记录到知识库中,供以后随时取用。项目看板 1.0 时期,项目中学到的知识总是堆在看板中,这既不方便整理,又不方便需要的时候查找。

为了解决这个问题,我们可以为每个项目分配一个标签,然后将其单独写成知识卡片,并且打上项目标签来标识来源项目。这样我们就可以保持知识卡片和项目之间的联系。这种思路正是源于著名的 PARA 标签法。

image.png

PARA 标签法是基于 PARA 分类法衍生出来的一个概念。传统的 PARA 分类法主张将所有的笔记分为四类,存入四个文件夹中:

  1. P(Projects):项目
  2. A(Areas):领域
  3. R(Resources):资源
  4. A(Archives):归档

PARA 标签法则主张将文件夹换成标签。即每个笔记都打上:

  • 项目标签:标记笔记来自哪个项目;
  • 一个或者多个领域与资源标签:标记笔记的内容分类;
  • 归档标签代表笔记已经不再有用,搜索时避开归档标签。

通过标签,PARA 解决了笔记分类的难题。我们不再需要思考某个项目到底属于哪个领域,大大提升了实用性。

为项目知识卡片打标签之后,我们可以在阅读卡片的时候点击标签跳转回到项目看板(这需要 Tag Wrangler 插件的帮助,将项目看板绑定到项目标签作为 Tag Page):

image.png

在项目看板中,我们可以通过 Dataview 筛选标签的方式,汇总该项目所有的项目笔记:

image.png

就这样,我们在卡片和项目看板之间建立了联系,使得我们既避免了冗杂,又没有增加麻烦,还方便了知识管理方法对卡片进行服用。可谓一举多得。

项目零碎信息:日志

除了需要被整理为卡片的严肃知识类内容,项目还会产生很多零碎信息。比如某个时刻的灵感、明天需要完成的任务、以及某个地方的注意事项等。这些内容十分混乱,写出来不能整理为漂亮的文档,用户往往不愿意去记录它们,哪怕它们很重要。

Apple Note 以及 Flomo 这类记录软件之所以好用,很大程度上是因为其治好了用户的强迫症,让用户想写什么就写什么,不论多乱也没关系,从而让用户能够去记录这些零碎信息,保持记录的习惯。而 Obsidian 的文档总是会给用户传递一种「我必须写一篇完整文章」的暗示,在无形之中给用户带来了压力。事实上,项目看板 1.0 好用也就好用在这一点:拥抱混乱的做法降低了心理期望,反而让用户能够保持记录

项目看板 2.0 仍然希望保持这样的优点。于是我给混乱划了一片保留区:日志

image.png


项目日志虽然称之为日志,但是不需要每天都新建一篇。其实日志完全可以每周甚至每个月用一篇,期间所有的碎碎念、思考、灵感、实验记录、以及各种能想到的内容都塞在里面。项目复盘也在其中进行。在项目看板 2.0 下,日常工作的大多数时候我们其实都是在对着日志发呆,而非盯着我们装修好的项目看板。

点击右侧 Periodic Notes 的按键,或是 Calendar 插件的周数栏就可以在任意位置迅速打开最新的日志文件,实现快速、无压记录。

image.png

系统每周会新建一个日志文件,建好的日志文件以年份+周数命名(比如 2025-W18 表示 25 年的第 18 周),放置在特定文件夹中供我们记录各种未经整理的材料。这些都是由 Periodic Notes 这一插件完成的,完全不需要我操心。

image.png

由于我们每时每刻肩负的项目可能不止一个,有时候需要将自己在各个项目之间切换。为了避免频繁切换日志,我让所有项目都共用一套日志系统,即所有项目的日志都写在同一个文件中,用不同的一级标题区分。比如「我的研究」这个项目的日志就会写在 # 我的研究 之下。此外,为了快速跳转回到项目面板,我在日志顶部加入了一个 Dataview查询块,会汇总所有的现行项目。

现行项目和归档项目用属性中的 finished 字段区分。finished 字段打勾☑️的项目看板是归档项目,不会出现在相关查询里面。

在日志里面,可以写有意义或者无意义的任何内容。这些碎片化信息有的可能会被整理成为知识卡片,有的则再也没有用处。不过不论如何,只要记下来就有价值——至少帮助你坚持推进了项目。

日志的另外一大用途是用于记录任务,而这也是项目看板 2.0 最具特色的一点:其允许你随意记录任务的同时对每个任务保持追踪,保障任务有始有终

项目任务管理:随心记录+汇总

项目看板 2.0 的的项目规划只规划了路线和里程碑,没有规定具体任务。这是因为我认为具体的任务很难在开始的时候一次性全部确定好。大多数时候,具体任务是我们是在项目执行过程中不断依据已有的经验生成的,因此任务设置最好要足够灵活。为了满足这样的灵活性要求,我选择在把具体任务全部记录在日志内部,再用 Dataview 汇总到项目看板中。这样既不需要专门找个机会思考「最近需要做什么」,也不必担心任务丢失或者是被忘掉。

Markdown 有自己的任务列表,即:

- [ ] task1
- [x] task2
- [ ] task3

只需要在日志中对应项目的标题下的任意位置插入任务,对应的项目看板就可以追踪到这些任务,并且将其按周归类,汇总到项目看板。比如我在「我的研究」日志中设置了这些任务:

image.png

回到项目看板,就可以发现任务已经被汇总、归类并且按时间排序:

image.png


如果你希望可以追踪任务的开始日期、工期以及设置周期重复任务,则可以安装 Tasks 插件。Tasks 插件支持快速为任务设定开始、结束以及优先级等信息,并且可供很方便地查询。只需要在已有任务处敲下空格即可弹出弹窗:

image.png


加入了开始、结束时间以及优先级等信息之后,任务就开始形成一个紧密的体系了。你可以用 Tasks 对任务进行查询,或是将其转换为一张实时更新的甘特图来时刻追踪任务完成进度。不过这是另一个复杂的问题,等以后有机会我会在后面专门介绍任务管理的文章中详细介绍。

汇总:完整的 Obsidian 项目工作流

最后对我们的体系进行一个汇总,得到我的 Obsidian 项目工作流:

  1. 每天一早打开 Obsidian,从首页点击一个感兴趣的项目看板;
  2. 进入看板,在任务界面查看当前尚未完成的任务,并且完成;
  3. 点击任务,跳转到日志内。完成任务过程中不断将各种信息记录到日志中,必要的时候整理为知识卡片并且加上项目标签;
  4. 完成任务后,回到任务看板的项目规划图,考察当前规划是否合理,以及根据规划确定下一批任务;如果不合理,就必须修改规划;
  5. 每周结束时整理日志,从中整理出关键问题以及相关知识;不断重复这些步骤;
  6. 项目完成的时候,在项目看板的 finished 处打勾,将项目归档,然后庆祝一下🎉;最后检查一下这个项目产生的卡片笔记数量,将汇总的笔记截个图发朋友圈炫耀

欢迎一起交流。

> 关注 少数派小红书,感受精彩数字生活 🍃

> 实用、好用的 正版软件,少数派为你呈现 🚀