FogBugz 4½与主观幸福感

作者:周思博(Joel Spolsky)
Tuesday, May 16, 2006
属于Joel on Software, http://www.joelonsoftware.com

让我告诉你一个故事,说说我们如何提早六个月推出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版功能。

而这就是今天的状况。我们今天发行的其实是FogBugz4½之类的东西,不过反正我们称之为5.0版,因为没有分数的生活已经够混乱了。以「伟大的软体要做十年」的惯例来说我们才只到达第六年,不过我敢说我们的进度超过60%。到FogBugz首页看看吧,在try.fogbugz.com有线上展示。

这些网页的内容为表达个人意见。
All contents Copyright © 1999-2006 by Joel Spolsky. All Rights Reserved.