Things3 + IDP Topic Backlog

从2018年三月至今,我一直采用Things3来帮助我管理日常任务,在今年3月,我又采用了IDP Topic Backlog的方法来管理我的日常任务。同时,Things3又扮演着备忘录的角色,我会把日常看到的感兴趣的文章或音视频资源地址快速记录到Things3中,方便以后统一安排消化。Things3是一款我认为相当好用的常规的任务管理软件,对于它的功能在这里就不一一赘述了,感兴趣的朋友可以去官网了解一下。

IDP Topic Backlog

这里稍微对我采用的IDP Topic Backlog(IDP-TB)这个方法做一个简单介绍。IDP-TB是一个叫Dan Draper的技术管理者在他的一篇题为 How to prioritize what you learn by creating a topic backlog的文章中提出来的。之所以我把它简称为IDP-TB是因为IDP-TB的核心理念是通过I(identification)-D(Discovery)-P(Practice)的归类法则来管理与我们中长期目标相关的学习任务。用一句话概括,就是:

通过“了解 -> 进一步了解 -> 实践”的方式去学习。

那么究竟什么是I-D-P分类法则呢?我们如何来利用它更经济有效地规划学习呢?我用一个自己的应用例子来告诉大家:

1. 在实施IDP-TB之前,我花了几天时间去思考和编写我的3年目标。这很重要,因为没有这个目标,我就无法在去判别一个我感兴趣的知识点或话题是否应该安排时间去了解和学习。

2. 建一个空的topic backlog(如图1所示)。

图1 – 共IDP-TB示例

3. 某天,我在一个技术媒体上看到了一篇关于docker可以实现微服务架构,让系统更具可扩展性和可维护性的文章。在我的目标中,有一个与工作相关的目标:持续提升服务管理平台的可扩展性、可维护性及性能。由此,我可以迅速判定这篇文章与实现目标相关。但由于白天有很多工作事务要处理,并没有时间阅读文章,而docker和微服务又都是我比较陌生的新知识点,我决定在backlog的I(identification)板块下安排两个任务:“了解什么是微服务”和“了解什么是docker”。因为docker是用来实现微服务架构的一种技术,而微服务是更高层面的概念,我把“了解什么是微服务”放到了“了解什么是docker“的上面,表明其优先级较高 (如图2所示)。在每一个板块中,我们通过自然排序就可以设置任务的优先级。

图2 – 创建两个新的知识点(即话题)

4. 当天晚上,我花了2个小时左右的时间搜索并阅读了几篇关于微服务的介绍。这让我对微服务的概念及微服务架构的设计理念有了一个基本的了解。这个过程让我了解到微服务架构的确可以为我们的平台带来更好的弹性和可维护性。于是我打算进一步了解微服务的适用场景、实施方法及实施难点等。为此,我在backlog的D(Discovery)板块中创建了“进一步了解微服务架构”这个任务,同时我将“了解微服务架构”这个任务从I板块中勾除(表示完成了)(如图3所示)。

图3 – 进一步了解

5. 在这之后,我陆续花了几个晚上的时间查阅了更多关于微服务实践及微服务与其他架构分析比较的文章和视频。这让我有了一个基本的判定:在我们当前的业务架构上去实践微服务架构是可行并有可能受益的。我决定尝试搭建一个预研性质的微服务平台来(模拟)实现一小部分业务功能。为此,我在P(practice)板块中创建了“搭建一个微服务架构预研平台”的任务,并同时将“进一步了解微服务架构”这个任务勾除。由于在进一步了解微服务的过程中,我又接触到了其他的重要的新知识点,如”一种叫gRPC的服务间的通讯协议“, ”一种叫Consul可以用来实现服务注册和服务发现的软件工具“。我将了解他们的任务在I板块中做了相应的创建(如图4所示)。

图4 – 开始实践

通过IDP-TB,我的确可以更好地规划我的学习。但IDP-TB并没有解决我遇到的两个重要的问题:

  • 有时候,我们并不需要完全了解每一个技术点再去做实践,完全可以先去实践,再去学习。IDP-TB并没有办法告诉我应该先去解决I中的任务,还是P中的任务。
  • 我的中期目标中还包括一些于工作无关的目标(比如成为一个好爸爸,撰写我的第一本漫画小说),因为个人价值的实现并不都来自工作。当我加入了非工作类目标任务后,在一个板块内如何设置优先级,变得困难起来,因为一个人可以支配的时间是有限的,如果你在这个方面付出多一些,那在另一个方面能付出的就会变少。而结果往往和付出是成正比的。这样以来,不同目标的学习任务就出现了争夺实践资源的情况。

改进学习规划中的优先级设置方法

要解决上一面提到的第一个问题,就需要回答:

我们到底需要了解多少才能去实践?

在我看来,我们并不需要深入了解发动机的工作原理后才开车上路,但我们的确需要了解发动机是否稳定可靠,并且需要了解我们如何确保它稳定可靠(比如定期检查和保养、使用优质的机油和汽油)。同样来讲,我们并不需要完全了解Consul是如何设计和工作的才去使用它来做服务注册和服务发现,但我们需要知道它是否安全可靠(比如收集同行的使用体验,做一些安全性和性能测试),以及如何确保它的运行是安全可靠的(比如了解如何debug, 如何查看日志)。

于我而言,如果我可以有把握判定一个技术或工具:

  • 是安全的(没有严重的安全漏洞,设计缺陷)
  • 性能是稳定可靠的(不会出现计算资源消耗上的巨大波动)
  • 易于维护(文档齐全、日志,易于扩展)
  • 能给公司带来价值(提升用户服务体验,降低运维成本)

我就认为我当前的学习已经足够了,并可以开始安排实践。所以,对于不同事务的判定会有不同的维度和标准。很显然,IDP-TB没法回答也不该去回答我们如何判定的问题。我们需要自己去思考。

第二个问题之所以出现,是因为工作相关和非工作相关的学习任务之间出现了时间资源的竞争。而这种竞争主要出现在业余时间(因为工作时间是不会去做非工作相关的学习的)。如果我们将业余时间先做好划分,让非工作相关目标任务拥有其“独享”的时间块,那问题是不是能得到解决呢?为了实践这个想法,我借鉴了安排力量训练的must-rest原则(训练几天休息几天),设定了一个基本规则:周一、二、四工作优先(WF);周三、周末非工作优先(NWF)

MONTUEWEDTHUFRISATSUN
WF WFNWF WFWFNWFNWF

为此,我在T3中为每一个目标构建一个项目板块,构建了两套IDP-TB:一个用于工作相关学习规划(TB-W),一个用于非工作相关学习规划(TB-NW)。这样在周一、二、四,我会在优先在TB-W中选择学习任务,而在周三和周末,我会优先在TB-NW中选择学习任务,当然,如果有临时且重要的其他任务被安排进来,无论什么类型的学习任务都需要为它们腾出时间。

有效减少备忘中的负债

在任务管理中,还有一个突出问题:

在备忘“稍后查看”的资源(感兴趣的文章、音视频)的过程中, “负债”不断增多。“负债”就是消化资料的速度赶不上添加资料的速度。

我们先来分析负债为什么产生。拿一周为例,所谓负债就是消化资源的速度赶不上添加资源的速度导致的。其实我们并不需要完全消灭负债,有一定量的负债是正常的,毕竟“看完一本书要比选购一本书所花的实践大得多”。在下一周开始的时候,我们可以对上一周的负债进行review,选出与目标相关的资源,添加到任务的note里,同时删除与任务不相关的资源。如果每周都有负债,那么在接下来的周期里,review所需的时间就会越来越多。但很遗憾,我每周可以拿出来review负债的时间是有限且相对固定的。这样以来,可以减少负债的对策只有:

  1. 减缓增加资源的速度
  2. 减少增加资源的数量
  3. 提升资源消化的速度

现在来具体分析一下各种对策的可行性:

减缓增加资源的速度

减缓增加资源的速度可以通过减少访问技术媒体和博客的访问频次来达成。尽管减少访问频次会使我错过一些高相关性的优质文章,但这其实并不会影响我学习和掌握知识点。毕竟我还是可以在我需要时,前往这些资源站点去搜索相关的文章。所以减少访问频次看起来是一个可以接受的方法。

减少增加资源的数量

减缓增加资源的速度可以减少增加资源的数量,但还是无法阻止资源负债的累加,特别是日常访问的技术媒体和博客本身就拥有大量与目标相关的资源。由于许多资源存在高度相似性,我们其实可以通过”优选保留“的策略来削减负债:对于一个类目的知识点(比如,docker的介绍, 如何为数据访问层编写测试代码),只留一个最相关的。如果都很相关,就选择其作者更具权威性或专业性的那一个。尽管我有可能错过那些名不见经传的作者的优秀文章,但这也并不会影响我学习和掌握知识点。所以,”优选保留“看起来是也一个可以接受的方法。

提升资源消化的速度

提升资源消化的速度看起来只能通过两种方法去实现:提高单位资源消化的速度或者挪用更多时间去消化。后者显然并不可行,因为工作之外可以自由支配的时间本来就不多。所以只能提高单位资源消化的速度来实现。这种提升主要指的是提升文章阅读速度或倍速收听收看音视频。但比起利用更多时间review,我认为这种方式能带来的消化速度的提升是很有限的,也容易一知半解。

总结

现在我来总结一下我对现有任务管理方法的改进策略:

  • 为不同的知识点设立不同的good enough的标准,并利用它们来指导我在I-D-P中优先选择任务或中止任务。
  • 设置两个topic backlog(TB):一个用于工作相关学习规划,一个用于非工作相关学习规划。在周一、二、四,优先在工作相关的TB中选择学习任务;而在周三和周末,优先在非工作相关的TB中选择学习任务。这样就消除了不同类型学习目标竞争时间资源的情况。当然在工作相关或非工作相关TB中,还是存在内部的时间资源竞争,这就需要我们优化自己的目标,不要让目标太多。这很重要,因为时间是有限的,太多目标只会让我们更分心,实现每个目标的时间资源也会更少。
  • 通过三个方法来减少备忘资源的负债:
    • 减少资源站点的周访问频次。
    • 实行“优选保留”策略:对于一个知识点,只留一个最相关的。如果都很相关,就选择作者更具权威性或专业性的那位。
    • 提升文章阅读速度或使用倍速收听收看音视频。

改进后的Things3 + IDP-TB已经实施快一周,尽管实验数据比较有限,但效果是显见的:

  • 遵循“优选保留”原则,我对历史负债先做了清理,这让我的负债一下子减少了近40%
  • 由于降低了资源站点访问的频次(从每天一次调整到每周一次),这周新增资源的数量明显减少了,负债增长的速度明显减缓。
  • 由于对时间资源的利用有了优先权的规划,如何选择目标任务执行变得不再困难。周末的学习安排也因此变得更专注。

我希望继续实行这个改进策略,收集更多实验数据,三个月后,再进行一次客观的评价,看看它到底给我的任务管理效率能带来多大的提升。

发表评论

电子邮件地址不会被公开。 必填项已用*标注