项目例会要回答的问题,往往是同一句:到现在为止,活儿干得怎么样?甘特表把每项任务画成一条横条,又在横条里标出它的完成百分比------单看一条任务,进展一目了然。可当问题换成"全体任务相对今天,到底是超前还是落后",画面就有些吃力了:只能在一排横条之间来回比对各条的进度刻度,心里替每条任务估算它此刻走到了哪儿。任务一多,这种逐条比对既慢,也容易漏。
如果把"此刻"当作一条竖线,把每条任务已经完成到的位置点成一点,再把这一串点连成一条线画在图上,全体任务的进度便成了一条可读的整体轮廓:线压在计划横条上,哪条落后、哪条超前,一眼便能对上。这正是项目管理软件里常见的一类分析图------进度线。SpreadJS 的甘特表(GanttSheet)在 V19.2 把它带了进来,连带补上了配套的"状态日期"。
一个要用来对照的时点
进度线要有参照,先得定一个"对照到哪一天"的时点。甘特表新增了项目级的"状态日期",与既有的"当前日期"并列,作为两个可用的参照。当前日期不必显式设置,未设时取系统当天;状态日期则是一个可以由使用者指定的日期,常用于把项目的进展固定在某个统计时点上看------周报的截止日、里程碑评审日、上月末,都适合作为状态日期。
两者的分工大致如此:想跟随真实时间,看"到今天为止"的动态进展,以当前日期为参照;想把全体任务冻结在某个口径一致的时点去复盘,以状态日期为参照。若指定了状态日期却未设置,产品会自动退回当前日期,参照不会落空。项目的数据结构里多存下这个日期,图上的进度线便多了一根可以随时扳动的指针。
状态日期于是成了项目复盘的常用道具。周报要按上周五的口径出,把状态日期设到上周五,全体任务的进展便齐刷刷地停在那个时点上;月末做阶段总结,再把它拨到月末那一天。同一个甘特图,不需要调整任何任务的起止,只要改这一个日期,就能反复回到过去的不同时点重看当时的进展。日期的取值越贴合实际的管理节奏,这条竖线能讲的故事就越完整。

一条线,穿过所有任务
进度线是一条叠加在甘特图上的分析线:以选定的参照日期为基准,把各条任务"已完成到的那个点"逐个取出来,再串成一条连续的折线。
每个任务的进度点,由它的开始日期、完成日期与完成百分比共同推出------可以理解为该任务此刻实际推进到了哪天。任务还没动工、完成百分比为零时,进度点落在开始日期上;干到一半,点便随百分比向完成日期一侧移动;做完之后,点则停在完成日期上。
这带来一个与直觉不同的细节:完成进度为百分之百的任务,反而不会贡献进度点。一条已经做完的任务,进度线并不需要替它留下痕迹;线的价值在于照出"还在途中的任务各自走到哪了",因此未完成的合格任务各出一个点,串起来就是整张图的实际进展轮廓。一张已经收尾、只剩零星任务的图,进度线会安静地淡出,而不是在已完成的区域画出一段没有意义的线段。
参照的竖线画在哪个位置也有讲究。日期对应的时间刻度格,其右缘被当作进度线的参照锚点。它是否在每个进度点之后折返回到这条基准线、点与点之间又走怎样的转折,合起来构成了进度线的几种走法。
走一条怎样的线
两点之间本可以直连,但进度线常被要求画成工整的折线,便于在图上读出"某任务相对参照日的提前或滞后"。产品因此提供了四种内置的路线形态,由两个维度组合而成:一是每过一个进度点之后,线是否折返回参照日期那条基准线;二是点与点之间的连接段,走直角折线还是走斜线。折返的画法把每个进度点都"挂"回基准线上,读起来像一列从基准日探向各任务的触手;不折返的画法则让线一路串过各点,更接近一条连贯的趋势。直角还是斜线,则是版式偏好的差别------直角整齐,斜线紧凑。
线的样式与它的几何分开配置。进度点的形状与颜色、连接线的线型与颜色、以及是否在基准点上方标注一个日期标签、标签用什么日期格式与字体,都能各自设定;日期标签的文字颜色不单设,跟随连接线的颜色,整套配色自洽。想让进度线醒目,把点色、线色调亮即可;想让它退居其次,淡化线色、点留小圆,分析层便安静地待在计划横条之后。
日期标签多数时候是有用的参照。横条密密麻麻排在一起时,单看一根进度线,未必能立刻读出它对照的是哪一天;标签把参照日期直接写在线旁,读图的人一眼就知道"这条线是按哪天的口径画的"。做周报、写评审材料时,带日期的进度线可以直接截进文档,不必再另行说明口径。

与状态日期线一起看
进度线之外,甘特表还为状态日期提供了一条可选的竖线:状态日期线。它与进度线各自独立显示------不开进度线,只标状态日期线也成立。线的样式沿用图内网格线的一套体系,与既有的当前日期线并列设置线型与颜色。一个细节是它的位置:普通网格线画在时间刻度格的左缘,状态日期线则画在右缘,与进度线参照锚点的位置对齐,让"日期本身"与"进度线的起点"落在同一处,读图时不至于错位。
画面之外,时间尺度的自动排布也会把进度线的参照日期算进去。当时间尺度按项目范围自适应、且存在一条有效的进度线时,可滚动的横向范围由项目起止与进度线参照日期共同决定:参照日早于项目起点,它就成为左边界;晚于项目终点,就成为右边界;落在项目范围内,边界保持不变。无论参照取在哪一天,进度线都不会被挤出可滚动视野之外。
例会桌上问"干得怎么样",如今可以把答案画在图上:一条线越过的每一条任务,落后还是超前,相对的就是"今天"或"那个时点"。甘特表从逐条的进度跟踪,往前多走了一步------把整盘进度,变成一眼能看的一根线。