时区不确定性

2007 年 9 月 6 日

我当时在波士顿,准备飞往我们位于卡尔加里的办公室。我查看日历,看看是否有会议。第一个会议是上午 10:30 - 很酷,不用早上急着起床。

我到了那里,却迟到了两个小时。发生的事情是,我被邀请参加了卡尔加里时间上午 8:30 开始的会议。Lotus Notes 看到我的电脑设置为波士顿时间,并很乐意地将时间区转换为两个小时的时差。

你可以说这是我的错,因为我没有注意。毕竟我知道 Notes 的工作原理,当我阅读我的日记时,我粗心大意了。我不相信这一点,唐纳德·诺曼很久以前就指出,我们倾向于将由于可用性差而导致的错误归咎于自己 - 就像一个带有把手但应该推开的门。

尽管我现在避免使用 Notes 日历,但我仍然在 Mac 的 iCal、Google 日历和我的手机上遇到同样的基本问题。我在波士顿,安排了在伦敦上午 10 点的会议。我去伦敦。我的倾向是将我的笔记本电脑时区更改为我所在的位置 - 这样时钟就有意义了。但如果我这样做,这个约会时间就会改变。所有这些设备都试图在时区方面变得聪明 - 而我最终不确定我在看什么。

时区特别容易出现这种问题。它最明显地体现在日历应用程序中,但你也会在企业软件中看到这个问题。人们倾向于尝试在处理时区方面变得聪明,但如果软件不够聪明,这种倾向会导致麻烦,就像在这种情况下发生的那样。

我更希望 Notes 完全忽略时区。你为会议发生的地点设置时间,这就是它应该向你展示的内容。谁关心时区?通常只有地面上的时间才重要。当我查看卡尔加里一天的日历时,我希望看到那天卡尔加里的时间 - 无论我在哪里查看它。

当然,例外情况是跨越时区的电话会议。但在这里,你应该为电话会议做一些特殊的事情,而不是让处理物理会议变得复杂。它可以是允许你为电话会议设置一个标志的东西,然后你会得到不同的时间显示。或者它可以像在时间显示上添加时区一样简单,并将转换留给读者。在电话会议中,你比在物理会议中更多地考虑时区(或者至少我这样做)。

这里重要的教训是使最常见的情况(物理会议)变得简单,并且只对不太常见的情况(很可能是手动例外)进行复杂的操作。日历时区之所以陷入困境,是因为它们使常见且简单的情况变得更加复杂。问题出现是因为设计人员希望对简单情况和电话情况使用相同的数据 - 但这只会让简单情况陷入困境。

通常,当我颁发最差用户体验奖时,Lotus Notes 总是排在首位。(事实上,我发现承认 Thoughtworks 使用这该死的东西很尴尬。)但最糟糕的时区体验奖颁给了 Microsoft Office,尽管公平地说,这是很多年前的事了。我最近买了一个 PDA(运行 Windows CE 版本 2)。我在日历中添加了一些全天会议,飞往芝加哥,为了让 PDA 提醒我会议,我将 PDA 的时区更改为提前一个小时。

突然,我所有的全天会议都提前了一天。这是由于一系列错误造成的。首先,他们将全天会议存储为从午夜到午夜的会议 - 这是对 TimePoint 的那种表示错误,经常会让人们陷入困境。然后,当我更改时区时,它通过更改会议时间而加剧了 - 所以所有全天会议现在都是晚上 11 点到晚上 11 点。当然,这是因为将时区放入会议中,所以当我更改 PDA 上的时区时,它看起来像是移动了。然后,为了盖棺定论,该软件足够聪明,知道全天会议应该只显示会议日期,但它选择的日期是会议开始的日期 - 现在提前了一天。这是糟糕的时间点表示带来的反噬。