开车是开销(没有人为你堵在红灯前买单),大多数糟糕的路线之所以出现,是因为项目是按电话打进来的顺序排的,地理位置从没有发言权。把一天的安排按地理顺序而不是按时间顺序排:把彼此靠近的停靠点分到一组,让这一天像个环线一样跑,而不是横穿全城两次。这套方法要奏效,前提是每个项目都带着真实的地址和一个诚实的时长估计,而如果客户能在你真正上路时收到一条提醒,价值还会更大。

老老实实回顾一下上周二。

五个上门服务。第一个在东北方,因为那位客户周一上午打的电话。第二个在河对岸的西南方,因为那位客户周一下午打来,“明天大概十点”这句话在你反应过来之前就已经脱口而出。第三个又回到东北方,离第一个只有四个街区。第四个在市中心。第五个又回到西南方,离第二站只有十二分钟车程。

你把整座城市穿越了两遍,路过了一个项目现场却要开去另一个,最后到家的时间,比这些活儿本身应该占用的时间晚了四十分钟。没有人规划过这条路线。它是自己规划出来的,一通电话接一通电话,全凭电话恰好响起的顺序。

大多数小型施工队的一天,就是这么拼出来的,而这值得算一笔精确的账,因为解决它的成本,几乎为零。

行车时间为什么会花掉你的钱?

你工作日里的每一个小时,只属于三类之一:计费的工作、能带来计费工作的工作(报价、跟进),或者开销。开车属于开销。是必要的开销——活儿在客户的地盘上,不在你自己的地盘上。但终究还是开销。没有人为你堵在红灯前的这段时间买单。

给它算个数字。如果你的工时费率是每小时 95 美元,那么一小时的开车,就是 95 美元的产能被花在了挪动一辆车上。再加上油钱——比如说,一天路线安排糟糕多出来的那段距离,油费大概 18 美元——还有里程数悄悄给你记的磨损账。一支两人的施工队,人工那部分成本直接翻倍,因为你们两个都坐在车里。

更让人不舒服的是,行车时间会隐身。材料延迟送达是看得见、也让人恼火的。而四十分钟本可避免的行车时间,被拆成一天里七分钟一段的碎片,感觉起来还像是在工作:你在移动,你处在两个项目之间,你“在路上”。它从来没被算进账,所以也从来没被解决。

还有一个更隐蔽但确实存在的代价:这一天最后一位客户,见到的是你最疲惫的状态,而本该用来吸收意外状况的缓冲时间(一个卡死的阀门、一位健谈的客户、一次供应商的临时补货),全花在了柏油路上。

每项工作的驾车成本计算器能算出去一个项目的行车成本,按单次和按全年分别呈现。

为什么一天的安排总是排错顺序?

没有哪个承包商会坐下来主动选一条糟糕的路线。糟糕的路线,是一套合理流程的默认产物:

项目是按客户来电的顺序被预约的。 日历按打进来的电话顺序被填满,地理位置从来没有发言权。周一上午打来的那位,无论住哪儿,都会拿到早上八点这个时段。

时间是在电话里随口承诺的。 “大概十点”说起来容易,事后想反悔却很难。一旦有三位客户各自拿到了一个松散的时间承诺,顺序就在任何人打开地图之前,先被冻结了。

整个计划都装在你脑子里。 五个停靠点,就有 120 种可能的排列方式。没有人会在早上 6 点 40 分泡咖啡的时候,在脑子里比较这 120 种顺序。你挑一个看着说得过去的方案,然后就出发了。

开工之后,这一天还会变。 一次取消、一通紧急来电、一样需要临时去取的零件。你原本半规划好的顺序此刻已经过时,而你正在一个红灯前重新规划。

这些都不是自律出了问题,而是当路线顺序变成一个副产品,而不是一个主动决定时,必然会发生的事。

路线顺序到底能省下多少时间?

以一座中等规模城市里一个说得过去的服务日为例:五个停靠点,按真实来电的分布方式散开。

按来电顺序排列,这一天的行程是:公司 → 东北(14 公里)→ 西南(19 公里)→ 再回东北(17 公里)→ 市中心(8 公里)→ 再回西南(12 公里)→ 公司(11 公里)。总计81 公里,算上市区交通,方向盘后大约要1 小时 50 分钟

重新排成一个环线(两个东北方的停靠点合并到一起,然后市中心,然后两个西南方的停靠点顺路回家),同样这五个活儿,行程大约是52 公里,行车时间约1 小时 10 分钟

同样的客户,同样的活儿,同样的车。大约 29 公里、40 分钟被拿了回来,而这还只是一个并不算特别糟糕的普通日子。把这套逻辑用在一整周高强度的服务型工作上,差距会累积到两到三个小时的量级。这足够多接一单小活儿,或者让你每天准时回家吃晚饭,而不是一周只能做到两次。

这个例子的重点不在于具体数字,你所在的城市、你的停靠点、你的路况,都会算出不一样的结果。重点是,这些节省完全来自于顺序本身。没有人开得更快,没有哪个活儿被缩短,没有哪位客户被放鸽子。浪费纯粹是结构性的,而这恰恰是软件最擅长清除的那种浪费。

一名技师正把工具装进停在住宅街道上的维修车后厢

当日看板:一键就能重排的停靠点

这正是 Zeus 的工作看板里“当日”标签页要做的事。工作看板有三种视图:一个用于分配人手的派工看板、一个用于查看整周项目排布的多日甘特计划表,以及当日视图。当日视图会拿今天的所有停靠点,做你早上 6 点 40 分本该在脑子里做的那件事:把它们放到地图上,一个按钮就完成排序。一点实在话,这里就说明白:工作看板是 Pro 功能。工作排期本身在 Free 套餐里就有,付费套餐多出来的正是这三块看板。

背后的机制不重要,重要的是它替代了什么,坦白说是这样的:

每一个停靠点,都来自你已经排好的工作安排。 没有单独的“路线规划”数据录入。项目本身带着现场地址;当日视图读取今天已排的工作,直接排布出来。只要地址填在项目上,这一站就会出现在地图上。

顺序是被优化出来的,不是按时间排的。 一个按钮,就能把今天的停靠点围绕地理位置重新排列,而不是围绕谁先打来的电话——排出的是这一天的环线版本,而不是来回跳的版本。你既能看到一份有序的停靠点列表,也能在地图上看到对应的图钉,所以一个感觉不对的顺序,在你发动引擎之前就已经显现出来,而不是等到第二次跨河的时候。

预计到达时间是现实的,而不是乐观的。 每一站都会显示,按照当前顺序和各站之间的行车距离,你大概什么时候能到。这个数字,就是“大概十点”和一个你真能兑现的承诺之间的差别。它也会同步修正你自己的预期,这正是你不再往一个只能装下五站的日子里塞进第六站的原因。

这一天能扛住现实的冲击。 客户在 8 点 15 分取消,或者中午来了一通紧急电话,你不用在一个红灯前用手机键盘重新解这道题。删掉这一站,加上新的一站,重新跑一次排序,剩下的行程会以合理的顺序重新排好。

这在实际中带来的改变,微小但恒常:你彻底不再需要自己做路线决策。早上 6 点 40 分盯着日历的仪式,变成了打开当日视图、检查一下顺序是否合理,然后出发。

“在路上”,不用打电话

一个安排妥当的服务日,另一半是客户的体验,而客户对施工队最大的抱怨,从来不是价格,甚至不是质量,而是沉默。“他们说上午到”,到了 11 点 15 分就会发酵成一星差评的心情,哪怕你其实 11 点 20 分就到了、什么都没做错。

传统的解决办法是提前打电话,这是个好习惯,但一忙起来就会消失:你正在开车,双手都占着,那个号码不知道存在哪条短信记录里了。

Zeus 把这个习惯直接嵌进了路线里,同时并不假装自己是一款消息应用,这个区别值得说清楚。从你即将驶向的那一站开始,“通知客户”会替你写好这条消息(对方的名字、你的预计到达时间、你正前往哪里),并把它交到你自己的短信应用或邮件里,地址已填好,随时可发。你按下发送键。没有任何内容会经 Zeus 发出,也没有任何内容会自动发出。它去掉的,是真正扼杀这个习惯的那部分:在急着出发的时候,还要组词、还要翻找号码。原本盯着窗外的客户放松下来;原本溜出去买东西的客户赶回了家。你把这一天里最让人焦虑的部分——不确定的等待——变成了一种能亲眼看着“快递正在移动”的安心感。

如果你更愿意亲自发短信或打电话,具体说什么其实无所谓,只要你做了就行:

“您好,我是水管公司的 Sam。我这边正在收尾手头的活儿,马上就往您那边走,大概 11 点 20 分到。跟我们通话之后有什么情况变化吗?”

最后那句话值得问。大约十次里有一次,它会问出点什么(一个门禁密码、一条狗、一句“其实既然你来了……”)——而这种事,在车里发现,远比在门口发现要好得多。

让路线诚实的那些输入项

一条经过优化的路线,好坏取决于它掌握的信息有多准确。三个习惯能保证它说的是实话,而且这三件事,你本来就该做:

给项目填上真实的现场地址。 不是“亨德森家”,也不是客户在城市另一头出租房产的账单地址。项目的地址,就是车要开去的地方;如果这个地址是对的,下游的一切(地图上的图钉、排序、到达时间)都能免费跟着对。

给项目一个诚实的时长估计。 一个“快速换个滤芯”的活儿,实际算上爬上爬下梯子要花九十分钟,这会带偏它之后每一站的到达时间估计。你不需要精确,你需要的只是停止用愿望来排日程。

只把真正固定不变的事情当作锚点。 有些停靠点确实受时间约束:一栋只允许 9 点到 11 点施工的公寓楼,一位必须在换班前放你进门的客户。这些才是锚点,这一天剩下的部分应该围绕它们灵活调整。常见的错误,是把每一个随口说的“大概十点”都当成锚点;那样一来,什么都动不了,你又变相回到了之字形路线。

而由于当日视图是一款离线优先应用的一部分,你早上加载好的路线,到了地下车库没有信号的地方,依然留在你的手机上。这个话题,本站另有文章讲得更详细;在这里只需要说一句:信号消失时,计划不会跟着消失。

路线算不出来的事

一份实用指南应该对自己的局限坦诚,所以:路线优化能把你的停靠点排得很好,它读不懂人心。

它不知道科瓦尔斯基太太每次都要聊上二十分钟,不知道市中心那一站下午三点后没地方停车,也不知道你总喜欢在东边供应商附近吃午饭。它不知道刚刚发生的、封了那座桥的事故。它是按直线距离、而不是按道路里程来测算距离的,所以一条河或者一段铁路穿在两个相邻的图钉之间,可能会让一个看起来整齐的顺序,实际上比看上去要糟。一个它没法在地图上定位的地址,根本不会被纳入排序,它会一直排在列表最后,直到你把地址改对。而它偶尔也会提出一个几何上正确、但人情上不对的顺序:比如把凌乱的拆除项目排在一位会注意到脏兮兮施工队走过自家精装房子的客户之前。

这正是需要你的判断力发挥作用的地方,也正是为什么这份排好的列表是一个可以推翻的起点,而不是一份盖棺定论的判决。软件不能规划出完美的一天。它的价值在于,你从一个不错的方案出发去调整,而不是从一个随机的方案出发去救火。每天早上花十秒钟检查一下,胜过花十分钟在脑子里排路线,永远如此。

常见问题

如果我一天只有两三站,这套东西值得用吗?

停靠点越少,排序带来的收益就越小。只有两站的话,可能的顺序也只有两种。但当日视图的其他部分依然有价值:现实的到达时间预估、“在路上”提醒,以及把地址和项目细节集中在一个地方,而不是散落在日历、短信和你的记忆里。这个习惯也会随着你的规模一起成长:将来发展成六站一天的施工队,不用等到真正需要那天才临时搭建一套新系统。

跨多天的项目呢?会不会把路线搞乱?

跨多天的工作,正是甘特计划表视图存在的意义;它展示的是这些项目在一整周里如何占用时间。当日视图最擅长的是服务型的一天(若干个较短的停靠点),以及一个长期项目和几个顺路活儿共享同一天日历的那种日子——这恰恰是路线安排出错代价最高的时候。

我的客户要的是精确的预约时间,而不是一个时间段,优化后的顺序会不会打破这一点?

不会。它反而让你承诺的时间更可能兑现。顺序是在前一天晚上或当天一开始就定下的,每一站的到达时间都是从这个顺序推算出来的。真正改变的是你什么时候做出承诺:等这一天有了顺序之后再报时间,或者在电话里给一个时间段,再用“在路上”提醒把它坐实。在预约当下、提前好几天就承诺精确时间,本来就是最脆弱的那一环。

路线顺序有没有考虑路况?

把预计到达时间当成规划用的数字,而不是实时导航。当日视图关心的是停靠点的顺序,以及对每一站到达时间的合理判断;具体的逐路口导航和前往下一个图钉路上的实时路况,仍然交给你惯用的地图应用处理。这两者是互补关系:一个规划这一天,另一个负责这一段路。