I2.10.4elapsed time when ETA has no basis设计

缺乏可靠依据时,宁可只显示已耗时而非编造剩余时间

别名: 没有依据不编剩余 · 只显示已用时 · withhold remaining

概念解释

外推要有原料:可测的完成量、非零的时间窗口、对剩余工作量的某种计量。三样缺一样,吐出的「还剩 N 分钟」是编的。编比沉默更糟,因为它占用了剩余时间这条信道。依据不够时,诚实的显示是已耗时(「已用 2 分 10 秒」)加阶段,而不是一个没有分母的终点。已耗时是观测,不是预言,不依赖平稳速率。

机制

剩余时间是剩余量除以速率。剩余量不知道(不确定进度、生成式任务、排队位置未告知),除法没有被除数。速率不知道(还没开始动、主线程冻住、窗口里全是零),除法没有除数。仍然显示剩余,只能塞进默认值、拍脑袋的「大约一分钟」、或从别的用户平均里借一个与这次无关的数。这些数看起来和真外推长得一样,人无法分辨,于是会按预言去计划。已耗时不进入除法:它只报告时钟已经走了多少,让人用自己的耐心模型去决定还要不要等,而不假装系统已经算到了终点。

只给已耗时还有一个副作用:它不会在速率抖动时乱跳,因为它不外推。跳动被从根上拿掉了。代价是人少了一个决策用的终点,必须用阶段和可取消来补决策,而不是用假终点来补。

边界

总量已知、速率窗口已经够长,还只给已耗时,是在该外推时偷懒,把决策负担推给人。平均历史若与这次任务同质(同一类导出、同一机房),可以作为弱依据出宽区间,并标明是「同类任务通常」,不是这次的外推;不标明就是编。排队系统若能给位置,位置可以代替剩余量来做一种终点,不必退回纯已耗时。已耗时自己变成一种压力(「你已经等了 20 分钟」)时,要配取消,不要用已耗时催人继续等一个没有终点的过程。

怎么落地

  • 在「剩余量未知或速率窗口无效」时关掉剩余时间,改显示已耗时 + 当前阶段。
  • 不要用产品级默认「大约 1 分钟」去填空;那是编。
  • 一旦窗口和总量变得有效,再升级到区间或点,并让人看得出从已耗时切到了估计。
  • 验证:对一个不确定进度、不知总量的生成任务,界面若仍出现「还剩 3 分钟」,问这个 3 从哪来。说来自默认值或与本次无关的平均值,就是在编。关掉它,只留已耗时,看人是否仍能决定取消或切走——能,这条降级就够用。

延伸

  • 同组I2.10.1 剩余时间的估算基于历史速率外推,速率突变会导致估计大幅跳动 · I2.10.2 区间估计比单一精确数值更诚实地反映不确定性 · I2.10.3 估计值应随进度推进持续修正而非一次性给出后固定不变
  • 相邻I2.02 进度的可预期 · E6.09 确定与不确定进度 · I2.01 骨架屏与转圈的选用
  • 站内检索elapsed time only · no basis for ETA · withhold remaining time

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/I2.10.4