FogBugz 4½與主觀幸福感 FogBugz 4½ and Subjective Well-Being

作者:周思博 (Joel Spolsky)
Tuesday, May 16, 2006
屬於 Joel on Software, https://www.joelonsoftware.com/2006/05/16/fogbugz-412-and-subjective-well-being/

讓我告訴你一個故事,說說我們如何提早六個月推出 FogBugz 5.0。

這算是個蠻長的故事。

加拿大的學生喜歡籌辦他們自己的研討會,幾年前他們辦了一個研討會請我去演講。

MarvinTheMartian.PNG

大學生是很好的聽眾。他們聽到什麼都能笑。我蒐集了很多隨性想法以及由 Internet 下載的有趣投影片(包括上面證明火星有生命的那張圖),學生們笑到在走道上打滾。

那場演講的主題之一是基於我在心理課號 110 的課堂所學到最重要的東西,也就是說當人們能成功控制環境時會比較快樂,而當他們不能控制其環境時就會暴躁難耐。

(實際上像「快樂」和「暴躁」這種字不利於拿教職終生俸,所以真正的心理學家會用「反覆的失敗會抑制行為者的體驗,減少主觀幸福感」這種講法。)

讓人們能直接控制周遭事物,他們在整體上或多或少都會比較快樂。這解釋了為什麼有些人喜歡排檔桿這類東西,這也說明了為什麼遲鈍的使用介面會讓你受挫而沮喪,另外它也解釋了,當新力公司決定在只想聽 CD 的用戶電腦上安裝病毒時,人們為什麼會如此的憤怒。

如果你是個軟體設計者,這就是關鍵。這是你做大事改善世界的大好機會。設計出能讓使用者主控的軟體,你就能增加快樂,即使你的產品是個最最最無聊的會計軟體也都一樣。你可以在最微觀的層次做到:

  • 我持續用了六年的記帳軟體每記錄一筆交易就會嗶一聲。
  • 蘋果的 iPod 內建了一個小喇叭,所以當你轉動滾輪時就會有滴答聲。
  • Sonos 數位音樂系統有個內建傳動感應的遙控器。畫面會在你拿起搖控器的瞬間點亮。
sonos.jpg

你也可以把事情搞砸:

  • 現在手機的開關機鍵大多觸感含糊,開機時間久到不可思議。很難知道是否按得太輕,因為手機的動作像是完全無視你。
  • 製作 DVD 電影的人似乎認為,在播放廣告和荒謬的FBI警告時,禁用選單和快轉鍵是正常的。
  • 有些 Web 瀏覽器在處理安全問題時,會顯示一連串無窮無盡的獨佔式突現對話盒,一直要你確認你是真的想讓三個 NFL 防守線後衛到你家,把一顆美式足球強塞給你(force-feed you a football)。
  • 同一台 Sonos 遙控器有一個滾輪,不過太敏感了,選選單時都沒有什麼感覺(without a lot of futzing around)。不過也可能是因為我的大拇指太肥了。

差不多去年有很多 web 開發者,運用現在名為 Ajax 的技術,努力改進他們的應用程式。這些應用程式運用JavaScript程式碼,讓你在點選某些東西時能獲得即時的回饋,不必等待web伺服器以其緩慢的步調傳送新的網頁。真的需要由伺服器取得更多資訊時,他們通常只會下載所要的小塊資料,而不是等待伺服器建立整個新網頁。結果就是更快速俐落的反應,讓你感覺掌控一切並且創造出「主觀幸福感」(也就是快樂),一種在生物化學上與吃大量巧克力無異的感覺。

等一下...我得暫停去查清楚幾件事...

...好了,我回來了。簡而言之,Ajax = 巧克力 = 快樂,所以當我們開始規劃 FogBugz 5.0 時,就知道Ajax 功能會是這一版的重頭戲。

FogBugz 使用者會在兩個地方花最多時間,分別是單一案例(single case)頁(檢視及編輯案例)和表列頁(瀏覽、排序、切割審視(slice and dice)案例)。基本上我們希望在做 5.0 版時,徹底重整這兩個頁面,儘我們所能用 JavaScript 和 Ajax 進行所有改善。

FB5Drag.PNG

舉例來說,Ben 在表列頁加了拖放欄位的功能和直覺地選取多個問題的新方法,以及改變欄位大小和增加任意資料欄位的能力。這些功能全都在用戶端完成,反應也都非常快。

在檢視單一問題或電子郵件的單一案例頁中,Brett 把編輯或回覆等命令都在用戶端溜覽器上即使進行,完全不需要到伺服器來回傳送。結果就是處理很多案例時,只需要約本來一半的伺服器來回溝通,使得整體反應快上許多。你覺得掌控一切,也因此比較快樂。它能動!

FB5Kbd.PNG

Brett 還偷偷加了他一直想要的功能:許多許多的快速鍵。不過真正要背的鍵只有一組:Ctrl + ; 會把 FogBugz 切成鍵盤模式,這時候上方會出現小字母提醒你螢幕上各個命令的快速鍵。完全不用碰滑鼠,就能夠對一堆案例進行指派、編輯還有改變優先度等操作,實在是非常地酷。再加上 Ajax 帶來的速度和反應,讓 FogBugz 幾乎達到我古早 DOS 2.0 字元模式下資料庫程式那種速度和流暢層次。這種反應對於一個 web 應用程式來說已經是很不得了了。

無論如何,由於 FogBugz 並不是一個主機服務(hosted)產品,我們把軟體賣給客戶讓他們把軟體安裝在自己的伺服器上,所以我們試著不要發行多版本,另外我們也試著讓每個發行的版本非常穩定。不過我們自己倒是有用於公司運行的 FogBugz 伺服器,它會將進來的信件分類,追蹤問題和開發中的功能,充當人力招募資料庫和履歷歸檔,轉送傳真還管理採購訂單;我甚至還用 FogBugz 來編輯下一冊的最佳軟體文選。

以一種相當極端型式的「吃自己狗食」作法,開發者每天就會把他們最新的版本放上來,讓我們大家都來狠狠的操。

新的 Ajax 功能讓我們愈用愈愛,也愈來愈明白這是長久以來,我們在 FogBugz 上所完成最偉大的一件事。所以我們決定要儘快推出這個新功能。我們用了幾個月進行完整的 beta 循環,然後把這個東西立刻交給客戶,不再等待其他計畫中的 5.0 版功能。

而這就是今天的狀況。我們今天發行的其實是 FogBugz 4½ 之類的東西,不過反正我們稱之為 5.0 版,因為沒有分數的生活已經夠混亂了。以「偉大的軟體要做十年」的慣例來說我們才只到達第六年,不過我敢說我們的進度超過 60%。到 FogBugz 首頁看看吧,在 try.fogbugz.com 有線上展示。

這些網頁的內容為表達個人意見。
All contents Copyright © 1999-2006 by Joel Spolsky. All Rights Reserved.