時區不確定性

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 上變更時區時,它也跟著變更。最後,該軟體聰明到知道全天會議只應顯示會議當天,但它選擇的日期是會議開始的日期,現在提早了一天。這是 TimePoint 表示不佳的反撲。