写这篇文章,我不是要黑任何一个任务管理类的App或者方法论。相反,我是一个工具控,在试用各类任务管理类App上老是竭尽全力。常见的Things 3,Todoist,Teambition,Trello,Any.do,Doit.im我都试用过。最后,我选择了Todoist,在Todoist上,我已经完成了1292个任务。以下图所示。html
Things3,Todoist为首的任务管理App,核心功能就是记录未完成的任务,勾掉已完成的任务。至于分类,标签,天然语言识别之类的功能算是锦上添花。微信
他们有一个缺点,那就是你只知道一个任务没有作,或者已经作完了。可是你不知道在一群没有完成的任务中,哪些是正在作的。(固然,你能够建立一个分类,叫作“正在作”,而后把正在作的任务放进这个分类中。)网络
而Teambition与Trello稍微进步一点,引入了看板的概念,因而可以显示任务在各个阶段的状态,以下图所示。这张图是少数派的Trello看板,用来让做者选题。工具
在看板中,你能够知道哪些任务是计划中,哪些任务是准备作,哪些是正在作,哪些是已经完成。然而这样就够了吗?测试
看板比单纯的To do list类应用进了一步,可以关注任务的状态了。但它们的局限也在于次,由于他们关注的,只是每个任务。网站
作一个比喻,修汽车须要拧螺丝,组装宜家的家具也须要拧螺丝。你若是只关注拧螺丝这个动做,那么修汽车和组装家具对你来讲没有区别。组装宜家的家具,看一下说明书,通常人半个小时就搞定,可是你半个小时能学会修汽车吗?3d
若是只使用任务管理类的工具,你就会陷入一个怪圈:你作了不少任务,可是你不知道你作这些任务是为了什么。任务管理类App适合用来记录和追踪各类琐碎的任务和相关性不强的任务。就像是少数派的每一篇文章,文章与文章之间不是一个系列的关系,他们各自独立,谁均可以领选题写文章,哪一个选题先写哪一个选题后写,关系不大。调试
一旦要规划一个项目,对于规划项目的人和作项目的人,用任务管理类App都会让人以为使不上劲。对于作任务的人,看到每个独立的任务,对项目没有总体的概念;对于规划项目的人,不知道任务是否是已经切分得足够细,是否有遗漏。code
假设你把一个项目拆分红了100个子任务,两周之后,你作完了其中的八十个子任务,请问你真的完成了这个项目80%的工做吗?项目的完成度可以单纯用子任务的数量来衡量吗?cdn
若是你回答,项目的完成度,不能单纯用子任务的数量来衡量。那么继续思考下一个问题,是否是有一些子任务,就是比别的任务重要呢?
若是你回答,确实有一些子任务比别的任务都重要。那么继续思考下一个问题,是否是最重要的子任务必需优先完成呢?
若是你回答,确实最重要的子任务必需优先完成。那么继续思考下一个问题,最重要的子任务要优先多少呢?能单纯把最重要的子任务做为第一个完成的任务吗?它有前置任务吗?若是必需先把前置任务作完,才能作这个最重要的子任务,那么,是否是其实这个前置任务才是最重要的子任务呢?如此说来,可以单纯用时间前后顺序来标明任务的重要性吗?先作的老是比后作的重要吗?那若是这个先作的任务,它作完之后彻底看不到产出,必需等后面的任务作完了才能看到效果,那么究竟是先作的任务重要仍是后作的任务重要?
上面还只是一我的作多个任务的状况,如今若是把一个项目拆分红100个任务,分给ABCDE5我的作同时作。每一个人都有一些任务能够单独完成不依赖其余人。可是也有一些任务A依赖B的成果,B依赖C的成果,D能够帮B作一些工做,还有一些工做须要C和D要一块儿同时完成,还有一些工做,B和C能够先作一部分,剩下的一部分再一块儿完成……
好了,如今给你一个任务管理类的App,上面列了100个任务,其中有20个任务优先级最高,50个优先级通常,30个优先级低。大家五我的本身看着选任务作吧。两周之后项目上线。
13天后:
B:C你的后台接口怎么尚未写好,我等着跟你联合调试都等了三天了! D:糟糕,有一个任务忘记作了,如今这个代码不能运行,等我把那边的服务搭建好才能测试。 A:嘿嘿我完成了30个任务,奖金我拿定了。 C:D你早应该搭建服务的,你忘了我也要用吗! ……
因此,单纯用优先级来排任务,你以为靠谱吗?你不加班,谁来加班?
有项目经验的人,看到我上面举得例子,确定会不屑一顾——难道在规划项目的时候就拿一张白纸,拍着脑壳想,这个项目须要作哪些工做,想到一个写一个?这样凭脑壳空想确定会漏掉任务的。
用脑图来规划任务是一个不错的主意,首先把项目拆分红几个主要的组成模块。而后首先看第一个模块,又把它拆分红几个子模块。而后看第一个模块的第一个子模块,又拆分……第一个模块拆分好了,再来看第二个模块,把它又拆分红几个子模块……经过这样深度优先的方式把全部任务都拆分到能够完成的程度。以下图所示。
脑图解决了任务拆分的问题,使用脑图来拆分任务,理论上确实不容易漏掉任务。那么问题是,脑图如何肯定任务的依赖关系?如何肯定每一个任务的完成时间?项目进行了若干天之后,如何知道当前项目进度怎么样了?在某一天,如何让全部人都一眼就知道,哪些任务没有按时完成,哪些任务已经提早完成了?
如今回到任务管理的App中。若是把全部待完成的任务所有都用一个Excel写在第一列,而后在右侧用不一样的色块标记任务从开始到结束的时间。那么能够获得下面这一张图。
其中,不一样的颜色表示不一样的人。每一行表示一个任务。从第二列开始,每一列表示一天。若是一个任务一天能够作完,就涂一个格子,若是须要三天才能作完,就涂三个格子。
这样一来,经过这些色块,就能够清楚地看到每一个人须要作多少事情。例如B列,紫色这我的一天同时要作5个任务。可是这5个任务中有4个任务都是联系别的部门让他们提供接口。那么这四个任务应该能够很容易作完,因而能够放在一天完成。
又好比,红色这我的,他作的任务很困难,因此两个任务各要作三天。
又好比,绿色这我的,他先搭建ES系统。而后再搭建Kafka。任务的前后顺序也就有了。
若是在某一天,想知道按计划今天哪些人须要作哪些事,那么直接看这一天对应的这一列就能够了。
用时间轴来表示任务的进度,能够更加直观地让人看到任务的进度。但前提是先把全部子任务肯定好。也就是要先作一个脑图,而后根据脑图再作这个Excel。看任务的时候,要同时看两张图。
那有没有办法把这两张图合在一块儿呢?
实际上,脑图本质上就是一个层次结构,层次结构也能够写成大纲的形式,以下图所示。
这个结构就能够放到Excel中了。以下图所示。
到目前为止,你已经实现了一个简化版的甘特图了。
甘特图是一张二维的图表,它的横轴是时间,纵轴是任务。从甘特图上能够一目了然看到一个任务从何时开始何时结束,不一样任务之间是否有时间重叠,以及哪些任务能够同时作哪些任务必需有前后顺序。
我我的认为,在项目管理中,任务周期是很是重要的,任务的开始时间和结束时间必定要把控好。使用甘特图就能够实现这样一个目的。
对于规划任务的人,在用甘特图规划任务的时候,若是你发现一个任务时间太长,不管怎么调整都会和后面的任务有重叠,那么你就会发现这个任务可能须要拆分为更小的任务。并且因为甘特图立足于项目的总体,你也能够更容易发现是否有任务漏掉了。
对于作任务的人,甘特图也能够帮他们了解到他们所作的任务在整个项目中处于一个什么样的位置,从而让他们知道本身正在作的任务是否是很是重要必需按时完成。
若是你是要开发一个App,或者是要写一本书,或者是要作一个其余什么项目,只要它是由一系列不一样的任务构成的,那么你就能够考虑使用甘特图来帮你提升效率。
下面这张图就是甘特图。
经过这一张甘特图,我能一眼看出如下信息:
由于为了绘制出甘特图,你必需强迫本身完成如下几件事情:
当你根据以上的规则绘制好初版甘特图之后,你会发现有些地方是能够继续调整的,可是这种调整,在你没有画图以前是不能发现的。因而你会在调整甘特图的过程当中,让项目的规划愈来愈清晰。
甘特图是一种项目管理工具,你能够在纸上画甘特图,也能够在Excel中画甘特图,也可使用专门的甘特图软件来作甘特图。下面这张基于Excel的甘特图来自网络。
这是使用Excel作出来的效果,可是作起来稍显麻烦。
Omniplan和MS Project都是很是专业的甘特图制做软件,可是价格很是高。毕竟这是生产力软件,使用这个软件你是能够赚大钱的,天然软件自己就会比较贵。
开源的甘特图软件也有很多,不过不是功能不全就是界面丑陋。这里介绍一个相对比较完整的开源甘特图制做软件:GanttProject
GanttProject的官方网站为www.ganttproject.biz/,在这里你能够下载到macOS,Windows或者Linux版本的软件。
GanttProject运行之后的界面以下图所示。
在左侧任务面板右键或者按下键盘Command
+ T
就能够添加任务,Windows和Linux对应的快捷键为Ctrl
+ T
。以下图所示。
建立好了一个任务,它默认的开始时间和结束时间都是今天。在任务上面右键,选择任务属性
,能够打开任务属性设置界面,在这里能够设置任务的开始时间和任务时长。可是你不能设置任务结束时间。由于任务结束时间会根据开始时间和任务时长自动计算。以下图所示。
在这个界面,还能够设置任务的颜色,实现不一样人不一样颜色,或者不一样项目不一样颜色。也能够在这里更新任务进度。
建立多个任务,若是后面的任务依赖前面的任务,那么在右侧被依赖的任务色条上单击鼠标左键,按住并拖动到依赖它的任务上。依赖它的任务的起始时间自动就会变为被依赖任务的结束时间,以下图所示。此时,后一个任务只能设置任务的时长,不能修改任务的起始时间。
若是依赖关系设置错误,打开依赖任务的任务属性,定位到前置任务
选项卡,在这里能够删除被依赖的任务或者修改被依赖任务。以下图所示。
若是你须要移动任务的顺序,鼠标单击选中它,按下键盘上的Alt
+ 方向键上或下
便可移动任务。
我认为甘特图有一个很是重要的元素,就是竖直红线,它指向了今天的任务。要打开这跟红线,须要单击菜单栏的编辑
-设置
,定位到甘特图设定
,在将今天显示为红色
点选为是
,以下图所示。
天天打开甘特图,这根红线都会指向当天。
GanttProject能够把作好的甘特图导出为图片,CSV,HTML或者PDF文件。单击项目
-导出
,点选Raster图像文件
,并单击下一步
,以下图所示。
设置保存路径和甘特图的日期范围便可导出为PNG文件,以方便分享。
我很是喜欢使用甘特图来规划个人工做。个人第一本书 《Python爬虫开发 从入门到实战》已经在京东、当当、亚马逊在亚马逊上线。这本书的写做过程就是我用甘特图的最好实践。由于有了甘特图,我才能控制好写做过程当中的每个重要的时间节点,确保每一章都可以按时交付,让我可以兼顾工做,写书和自我成长。
甘特图并非为了取代任务管理工具而存在的。甘特图的目的是为了规划项目,而且让你在项目的进行过程当中知道本身处于什么位置。
你须要时刻记得,低头看任务管理工具,让你知道本身正在作什么。抬头看甘特图,让你知道你将可以作成什么。
我建立了一个微信群,用来交流各类效率工具和提升生产力的方法。有兴趣的同窗能够进来和你们一块儿探讨。扫码关注公众号 未闻Code
(或搜索ID:itskingname)回复:生产力
便可得到入群方式。