用计算机科学的方法优化个人任务管理
2024-5-25 17:36:42 Author: sspai.com(查看原文) 阅读量:8 收藏

关于任务/个人/时间管理的文章,少数派已经有很多了,再多一篇也无妨。

我参考了很多文章来优化自己的工作流,始终没能找到最优解。作为一个学生,时间是自由的,于是就陷入时间多,事也很多,却不知道应该先做哪件事的境地。每天清晨骑车到实验室的路上干劲满满,脑子里盘算着今天要做什么事。坐上工位,一打开 ToDo 应用,满屏都是待办,立刻陷入了选择困难症,还是先打开少数派刷一下日报吧。

最终还是探索出了一套任务管理方案。虽然不是最优解(不然这篇文章也不会拖了半年之久才完成),但是也能够应付现在的工作和生活,勉强达到一些平衡。

在探索过程中,我不知不觉地运用了很多计算机专业知识,每个人的生活工作节奏各不相同,但是这些优化思路也许可供参考。

为什么需要任务管理?

这是一个老生常谈的问题,少数派也有很多文章论述,在此不赘述。完全区分任务/个人/时间管理是不现实的,也不需要,因此这篇文章都以任务管理指代。

每个人对任务管理的需求程度肯定各不相同,可以参考这篇文章确定自己的工作模式,再决定是否需要任务管理。

不过我还是想先展示一下任务管理流程。

「平平无奇」的工作流

我的工作流程围绕着 Microsoft ToDo(下称 ToDo)搭建,它很简单,仅提供「我的一天」,任务清单、截止日期、星标任务等功能。

稍微介绍一下「我的一天」,它是一个特殊的任务清单。可以将一个待办任务添加到「我的一天」中,当天结束后 ToDo 会自动清空该列表,意味着第二天又是一个新的「我的一天」。

  • 初始化:我会在每天工作前添加一些任务至「我的一天」,意味着今天的工作内容
  • 当日定期更新:午饭和晚饭后,我会检查「我的一天」中任务完成情况,并决定下一个任务
  • 不定期更新:在需要的时候添加一个新任务,设置任务优先级、截止日期等

这个工作流程「平平无奇」,怎么好意思展示的。

但这恰恰是我努力后的结果。

在此之前,我沉迷于分类和反思,热衷于整理任务。享受在 Notion 中搭建任务看板,拖拽任务的过程。为了和他人协作,还会将相同的任务同步到飞书文档中,享受 at 同学的过程。每天晚上工作结束后花半个小时的时间整理、分类任务,觉得一天过得特别充实,特别有意义。

但是这类复杂系统就像空中楼阁,时间一紧迫,就迅速崩塌。忙起来的时候,根本没心思去想这个任务是一般重要还是特别重要,应该如何归类这个任务,只知道微信里不断有消息提醒我快点交材料,赶紧结束了事。

复杂的系统并不代表是好的系统。复杂系统本身就会带来很大的维护负担,再加上外界干扰(比如导师的夺命连环call),自然导致系统难以持久维护。

KISS:Keep It Simple and Stupid.

Eric S. Raymond 在《The Art of Unix Programming》 中基于 KISS 原则设计 Unix 操作系统,我也想打造出一个「简单愚蠢」的任务管理系统,以应对这个「草台班子」一样的世界。

为什么任务管理这么难?

任务管理,简单说就是决定什么时候应该做什么事。这么一个看似简单的问题,却难以找到最优解。我决定运用专业知识,从计算机科学的角度去解决这个问题,所以首要任务就是——证明这个问题不存在最优解

这个证明其实也挺难的,虽然我不会证。退而求其次,我可以证明任务管理需要很久的时间才能找到最优解,这个时间可能会久到离谱。

证明的关键就是将它类比成一个计算机科学中的难题——背包问题。

背包问题

给定一个物品集合(多个物品),每个物品都有各自的重量和价格。存在一个背包,具有一定容量。我们应该将哪几个物品放进背包,使得物品总重量不超过背包的容量,并且背包中的物品总价格最高。

背包问题看上去简单,其实早就被证明是个「难题1」。你可能觉得这有啥难的,为什么不挨个尝试,把物品一一放进去,背包装不下了就再换几个物品,总能试出一个价格最高的方案。计算机也是这么做的,并且做得比人快。但是随着物品数量的增加,将所有方案尝试一遍会消耗大量时间。即使以计算机的速度,还是可能以上千年的时间来遍历,这就是背包问题很「难」的原因。

如果将任务看成物品,一天的时间看成背包,那么任务所需时间就对应物品的重量,任务完成收益就对应物品的价格,任务管理其实就是决定将哪些任务放进一天这个背包中,从而使一天内完成的任务价格最高。任务所需时间这个概念相对具体,但是任务完成收益就见仁见智了。每个人对于任务的完成收益看法不同,比如我认为写完一篇论文的收益要比帮导师做一页PPT的收益大(反过来设置收益也显得合理)。

既然任务管理可以无缝地替换成背包问题,那么我无法找到最优解也就合理了,因为这个问题太难了。所以就为任务管理找一个「可行解」吧——不一定最好用,但是能用。

如何优化任务管理?

剪枝优化

对于每个任务,我需要决策是否将该任务列入「我的一天」。将这个决策过程具像化,就是一棵树(决策树)。每一个选项(是或者否)都像树枝一样,引出不同的结果,剪枝优化就是将决策树的枝桠剪去。

用人话来说就是,不是所有任务都值得被放进 ToDo 中。与其不断寻找一个能够满足所有需求的APP,不如简化自己的需求。

那如何保证剪枝的正确性呢?如何保证简化后的需求能够满足我的工作需要呢?

首先明确任务管理的目的是提高工作效率,所以我将所有生活类的任务从 ToDo 中移除。有一段时间,我企图在 ToDo 里管理我的全部生活和工作,比如将一些任务分类至「想玩的游戏」、「想看的电影」、「愿望单」等清单,看上去 ToDo 承载的功能增加了,更有用了,但是反而将我的注意力分散了,没办法快速地确定当日工作内容,反而想着今天应该看什么电影。

移除生活清单后,我还有意识地控制 ToDo 中添加的任务,不再贪婪地将所有想到的可能的任务都添加到 ToDo 中,确保一个任务足够重要才会进入我的决策树。我还定期删除 ToDo 中的任务,因为如果一项任务一直存在,那就意味着它不重要,否则早就应该被完成了。

最终,ToDo 中的所有任务通常不超过五个,我只需要选 2-3 个任务添加到「我的一天」,很快速,也很简单。

局部性原理

计算机虽然很快,但是也很健忘,因此在设计程序时,通常倾向于重复利用邻近的数据,这就是系统设计中的「局部性原理」。

人脑也很健忘,很多事情转头就忘掉,所以我也尽量将任务放在临近解决的地方

以前写论文的时候,我每天会留一些任务在「论文写作」清单中,第二天解决,例如“XXX部分可参考XXX论文”。第二天,我打开了写作软件,结果对着大段文字干瞪眼,费尽力气重新回到昨天晚上的思路。可能写着写着我才想起来:哦,我好像昨天记录了一些任务在清单中。然后打开 ToDo 寻找对应的任务,再对照着写作软件开始接着写论文。

依照局部性原理,「论文写作」中的任务,都应该放在写作软件本身,因为这是我在写论文时才需要解决的任务,在 ToDo 中只需要提醒自己写论文。因此我在写论文的时候会在相应地点用括号或者加粗记号标注“此处可参考XXX论文”,第二天写论文就可以直接开始按照对应标注完成任务。这种方式也被用在写代码、笔记、少数派文章中。

局部性原理保证了大脑注意力集中,不会因为频繁地上下文切换,忘记需要做什么,使跨天的工作更加流畅。

任务完成时间期望

背包问题中一个重要约束是背包的容量,对应任务管理:如何保证任务管理时,规划的任务能在当天完成。一天的工作时间很容易确定,但是没有完成任务的情况下,怎么知道任务所需时间呢?

优秀的时间管理者也许能够熟练地推测出相对准确的任务完成时间,这样每天安排的任务量就会很合理。但是普通人想要准确地推测任务完成时间就比较难了——通常也不需要推测,因为总会有人帮你确定任务完成时间。

导师:这篇论文多久能给个版本?

我:嗯……不知道

导师:那你今天下午给个版本可以不?

我:(只能)可以。

开个玩笑,评估任务所需时间是很有价值的,也是经常被忽视的。如果不去考虑任务所需时间,我就想为每一个任务留整块时间去完成,一上午只解决一个任务。当我被临时安排一些活,我的时间就变得支离破碎,不想再去解决规划的任务了。结果我发现一项任务并不需要一整个上午才能完成,如果能够按照小时为粒度进行规划,就可以在一个上午安排好几项任务。

一上午听起来很短,但是四个小时就很长了。除了睡觉,一天能有几个四小时呢?

我有意识地去评估每个任务的所需时间,也会利用数学方法去锻炼评估能力。期望值,是经常用于算法分析的数学工具,代表了多次实验后,可能出现状态的平均结果。

如果记录下每次任务「评估完成时间」和「真实完成时间」,就可以知道每次推测是否准确,这个差值可以被称为「推测偏差」。在《黑客与画家》中,作者通过计算所有历史任务推测偏差的数学期望,来规划每天的任务安排。

根据历史数据,如果推测偏差的期望为15%,那么我现在评估一项任务需要120分钟完成,实际完成时间很可能是 120+120*0.15=138 分钟。

根据偏差值的数学期望,我就能够有一个大概印象,每一项任务大概需要多久时间才能完成,这样也方便我更高效地规划「我的一天」。

任务管理的本质和愚蠢的系统

任务管理的本质是个人管理。如果人足够自律,就像一个精密的机器,那完全不需要各种花里胡哨的工具或方法论,只需要将任务列出来,一个接一个地完成。但是我没那么自律,执行力也不够强,时间表不断被打乱。我还贪心地想用尽可能短的时间完成尽可能多的任务。这些想法促使我不断改变任务管理思路,优化自己的工作流程,不断向理性靠拢。

现在的任务管理系统依旧没有达到最优,我还是会某一天,不知道自己要做什么。但是不能将这种迷茫怪罪于系统。它是一个愚蠢的系统,只能等待我的输入。现在有很多聪明的 AI 助手,能够提前想人之所想,智能地规划每日任务,它做不到,我也不想它做到。在改进它的过程中,我才能够发现自己的真实需求。

计算机科学是一门人造的科学,很多理论脱胎于人类社会,反过来,被我用于自己。在这个过程中,我完成了任务,但是更重要的是,改变了自己,以在未来能够优雅地登上「草台班子」。

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

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


文章来源: https://sspai.com/post/87071
如有侵权请联系:admin#unsafe.sh