一. 5 分钟学会 GTD
1、GTD 是什么?
时间管理有很多种方法和系统,而Getting Things Done(GTD)就是其中一套行之有效,也是现在最受欢迎的系统。GTD通过帮助你更好的跟踪和管理你的思绪、需要做的和想做的事,从而使你能在合适的情境中静下心,集中精神完成最重要的任务。
GTD不是一蹴而就的。GTD是一套持续的系统,需要不断地实践才能让你更好的掌握,从而成为你信任的系统。
把所有事情都从你的脑袋里弄出来。在事情出现就做好相关行动的一系列决定,而不是在事情爆发的时候。以合适的类别组织好你的项目的各种提醒以及下一步行动。保持你的系统更新和完整,及时进行回顾,使你在任何时候都能信任你的系统和对任务的处理. GTD 是一种管理对自己和他人的承诺的方法。
2、GTD 用于解决什么问题?
用于解决以下问题::::
Millions long for immortality who don’t know what to do with themselves on a rainy Sunday afternoon.
无数人渴望长生不老,可是他们不知道在一个下雨的星期天下午做什么。
3、如何使用 GTD 方法?
- 随时将头脑中的想法记录下来;
- 想清楚任务的预期结果和可执行的“下一步行动”;
①预期结果:完成了会是什么样子(方向不要错);
②下一步行动:要怎么开始第一步; - 把想好的下一步行动放到行动清单中去;
- 定期查看和更新,保持任务是最新的;
- 选择此时此刻自己要做什么?(可以根据情景、有多少时间、有多少精力、重要性进行选择)
4、举例:
微信收到消息,转发到滴答清单,滴答清单的收集箱中便会创建新任务.
思考任务的结果和下一步行动:①预期结果:“一个开心的周末”,果断去做~
②下一步行动:“查下周末有什么新电影,买票”
把任务修改成下一步行动:
Before:
After:
把修改后的任务,从滴答的收集箱移动到对应的行动清单中,比如此条任务需要使用“手机”来进行下一步:
定时查看滴答清单中的收集箱,将任务及时拆分并移动到行动清单。
满足以下几个条件的时候,就开始执行:
①现在带着手机
②接下来有 5 分钟的时间
③接下来的 5 分钟没有更重要的事情要做
5、小贴士
最重要的一点是,“下一步行动”必须是不用额外思考步骤就执行的:
- 错误:“周末去看电影”
- 正确:“美团查下周末有什么新电影,买票”
二. 利用Github的issue来整理需求
首先呢,让我们从需求出发,从市面上来寻找一款符合敏捷的学习软件,别想了,当然是没有的。对于一名程序猿来说,最理想的答案其实就是 GitHub,作为全球最大的程序猿交友网站,GitHub 本身以及围绕 GitHub 的各种插件使得其项目管理能力其实远比你所能想象的厉害得多。
- 收集:需求无时无刻,无处不在,anywhere anytime
- 整理:as BA 即分析,Elaboration & Estimation & IPM => 确定 MVP & Efforts
- 执行:as Dev & QA,Developing & Testing & Review/Sign-Off
- 回顾:Retrospection,Introspection,持续反思,持续进步…
那么如何通过 GitHub Issues 收集需求
首先你可以给自己建一个 GitHub 仓库repo作为主页,比如我的 ovision.github.io: Agile Learning based on GitHub issues 其实最开始就是从个人博客的主仓库发展而来。那么,如何快速得收纳自己的想法呢?以解决问题为导向,当然就是有什么需求就直接给自己的 repo 建一个 issue 作为 Story Card,然后了却这个需求的最终形态就是 close 掉这个 Issue,即解决了这个问题。
新建 issue 还有更高级的用法,也就是通过 ISSUE_TEMPLATE 这样一个模板来新建某个 issue,从而更快地定位问题所在和解析自己的想法,最主要的是能够输出更具体的 TODOs,即下一步行动的具体内容,这个还会在后面详细解释的。为啥issue可以胜任呢, 主要是:
- issue 和 issue 之间是可以通过 # 相互连接的,甚至可以跨仓库,被 reference 的 issue 也会出现在另外一边的 issue 里面;
- 而通过 #! 符号是可以在 comments 里面直接新建一个 issue 的,这在思维爆炸的时候来得特别爽快;
- 你还可以随意艾特你的小伙伴们 @linesh-simplicity @Yaowenjie ,互相监督、互相学习或者给出 Constructive Feedback 之类的,😂;
- 更甚至于,若是在 Intellij 里面关联了 GitHub,就可以在 git commit 信息里面直接看到你所要关联的 issues 列表了。
这种方式仿佛学习中的大脑,神经网络被连通了的感觉。
这个issue方法适用于相对长期的Agile Learning 典型的比如一个月写一篇论文, 如果是短期的代办事项,推荐用手机端软件解决比如”滴答清单”app.
整理你的 GitHub Issues
大胆地把 issues 作为你的个人需求列表吧,需要解决的问题可以大到做一个开源项目,或者小到读一本书、写一篇文章。对于比较大的需求,你还可以将其转化为 Epic(浏览器需要安装zenhub 插件) 然后把拆分过后的小 issues 们加入到这个列表里面来。
计划与执行具体任务
制定迭代计划
首先呢,让我们来新建一个 Milestone 来制定计划,也就是决定在一个 Iteration 里面你需要完成哪些 issues。在这里我所制定的阶段性计划周期为一个月,当然你也可以勤快一点以 2 周作为一个 Iteration,享受一下自己的计划要完不成了这个 Milestone 就要废了,没法向「时间」这个一生的朋友交付所有需求的快感吧,🙂
当然咯,一般我会在月初做计划的时候给自己准备专门的时间来做 Elaboration,把 Backlog 里面的卡拖到 Rethink/Plan 这一列,然后经过分析和详细输出 TODOs 以及所对应的估点 points 之后便可以将其拖到 Ready For Todo 了,一般我给自己估的点数就是完成这件事情所需要的时间,一小时即对应一个 point。
进度的把控
GitHub 在 issues 里面直接集成了 Markdown 的 TODO 语法,甚至于可以在渲染过后直接拖动某个 item 进行排序,而且前面的勾选项可以直接打勾 ☑️ 标记为完成,而且完成之后这个 issue 还能直接显示完成进度;前面所提到的 Epic 也能直接显示子 issues 的完成情况即 closed 比例,两者结合起来简直不能再美好,😂
比如说拿来作为读书列表的记录就很不错,每本书作为一个 issue 还可以把章节划分为具体的 TODOs,结合估点可以追踪自己看书的进度和速度,顺便在 comments 底下做个笔记也不错啊!
而且 ZenHub 还提供了一个基于 GitHub Issues 的 Todo List,你可以只用关注 Today 这一个列表,专心于当前要完成的任务。而且更有趣的是这个 list 可以加入 GitHub 的任何 issues,也就是说是全局的,所以你就可以加入很多在 GitHub 上通过 issues 写的 blog,比如徐飞的这篇文章流动的数据——使用 RxJS 构造复杂单页应用的数据逻辑 · Issue #38 · xufei/blog,被我加入到了 Reading 的列表当中。
与此同时我还会使用 Toggl 来记录每个 issue 具体实施的时间,以便于在时间花费上能够获得及时的反馈。这样做会让你真切地感受到时间的流逝,而在回顾记录的时候也能够进行总结分析,从而在下一次的计划当中能够更精确地预估时间(点数)。比方说这篇文章我估了 5 个点现在已经写了 4.5 hours 了,不过这是另外一个大话题,可以参考 记录时间这件小事儿 这个 issue。
进度的把控迭代回顾与总结分析
ZenHub 也提供了 Burndown 和 Velocity tracking 图,可以得出这个迭代总体的完成情况,看看跟预期有何不同;也可以跟其他迭代进行对比,看看有何不同的地方,然后进行下一步的具体分析。