- 快人一步:系统性能提高之道
- (美)卡里·米尔萨普
- 3618字
- 2024-11-28 16:17:52
第4章 南希
1994年,我在科罗拉多州丹佛市认识了南希(她的真名)。也是在一个周三,与我当时拜访过的许多公司一样,她所在的公司购买了Oracle的大型财务软件许可。
任务以典型的方式开始。周一早上,我飞抵斯泰普尔顿机场,驱车前往公司,一到那里,我们就召开了一场大型会议。十几个人在会议室里吃着甜甜圈,喝着咖啡,直到会议正式开始。数据库管理员和技术专家坐在长会议桌的左侧,用户和系统负责人坐在右侧,作为他们的客人,我坐在最前面。
在大家轮流讲述有关该系统的故事时,我会进行记录。用户首先发言。理查德(化名)在处理某个报告时遇到了问题。我不了解具体的报告,好像是会计方面的某种报表。朱莉(化名)在使用应用程序的其他功能时遇到了问题,我可能只对这个功能的名字略知一二。南希通过电话的免提功能加入了会议,说明了她在其他方面遇到的问题。会议就这样继续进行着,用户讲述他们遇到的问题,我将所有相关信息都记录下来。
当数据库管理员和系统管理员发言时,就轮到用户对谈话中涉及的字眼一知半解了。在会议的这一部分,我感觉舒服多了,因为现在我们使用的都是我词汇表中的单词,比如索引、回滚段和I/O。当然,我绝对可以检查所有这些东西。我把它们都记下来了。
大约一小时后,会议结束,该去工作了。我的引导员是一位数据库管理员,他把我带到我将要使用的办公桌前,告诉我如何登录,并告知我如何与大家联系。我坐下来开始工作。
在我职业生涯的这一阶段,我为Oracle公司财务网站所做的工作,基本上只是照本宣科地处理在到达客户现场之前就已经收集好的清单上的六个事项。在周一的会议上,任何人无论说什么其实都无关紧要。我总是礼貌地倾听并做好笔记,但我已经知道自己要做的大部分工作了。我拜访过的所有财务网站几乎都反复出现同样的问题。这个产品的设计确实会让人们犯某些配置错误。我知道这些错误是什么,也知道如何改正这些错误。
就这样,我周一和周二都在工作,到了周三上午,我已经准备好接受反馈了。我完成了清单上的所有事项,希望能够解决用户的一切问题。我检查了技术人员要求我查看的所有具体事项。我还把自己所做的一切都写了下来。现在该打电话了,看看用户们感觉怎么样。
我名单上的第一个人是理查德,他的问题是报告处理太慢。“你好,理查德,不知道你还记不记得我。我是卡里,Oracle公司的顾问,来这里是为了让你们的系统运行更快。我打电话是想知道你的……报表是否运行得更快了。你在周一早上提到,它的运行时间超过了20分钟,这的确是个问题。”“啊~太好啦,不管是什么报告,现在的运行时间都不到5分钟”他激动不已。我问他是否可以在我的报告中引用他的原话,他同意了。好极了!搞定一个,还剩6个。
我的下一个电话也是如此:朱莉很高兴,谢谢你。没错,我可以在报告中引用她的话。我又打了几个电话,结果都一样,多巴胺的冲击一个接一个地袭来。当我打电话给南希时,我的自我感觉相当良好。再打几个这样的电话,我也许就能提前一两天回家了。
但是在与南希的通话中,我并没有感受到其他电话里那种亲切、充满友爱的感觉。我试图得到肯定:“但自从我来了之后,账户代码验证弹窗的运行速度不是快了很多吗?”她说是的。
“好吧,那我可以引用你的话吗?”
“……嗯,可以,但我真的不太关心这个。我关心的是……表单中的……字段。”
哦,天哪……她还是不高兴呢,而我甚至不明白她描述原因时用的是什么词。但我其实知道该怎么做。鲍勃很久以前就教过我。于是我问她:“那么,你介意我来拜访你吗,这样我就可以确切地知道你在说什么了?”
她说:“好吧,你可以来……如果你真的想来的话,但是……”
“嗯,当然,我很愿意过来!”我告诉她。
“但是,”她说,“我不在你所在的大楼里。我在几英里之外。”
没问题,我告诉她我租了一辆车,可以马上过去。于是她告诉我她所在大楼的位置,并说她会在保安服务台等我。我请她在我开车过去的时候把她遇到的应用程序问题梳理好,这样等我到了那里,她就可以准确地告诉我到底是什么问题困扰着她。她说她会准备好的。
于是,我收拾好公文包,出门上车。我有点紧张,不知道到了那里后会发生什么。如果我给她添了这么多麻烦,却不知道该怎么帮她怎么办?但我相信最后问题一定能够解决。那个时候,我已经明白,说出“我不知道,但我可以帮你找到答案”并不是真正丢脸的事。她的办公桌上有电话。我认识很多人,如果需要帮助,可以给他们打电话求助。
车程并不长。南希遵守承诺在保安服务台等我。她帮我进行了登记,然后我们走楼梯上了二楼。在去她办公室的路上,她向我展示了我所见过的最大的复印机。她解释说,这台巨大的打印/复印一体机长度有9米多,在它的东端插入要打印资料的软盘,就可以在西端生成打印完毕、装订成册的书籍。我们向推着手推车、穿过走廊的邮递员点头问好。
来到南希的工作间,我看到了一个只通过电话永远无法了解的故事。在她工作间的墙上挂着一张证书,上面写着南希的打字速度可以达到每分钟100个单词以上。她的DEC VT320终端机右侧挂着一个塑料的写字夹板。她有两根带配重底座的尖钉[我后来才知道,这叫“锭子”(spindle),比如“请勿折叠、卷曲或损坏”],其中一个放在终端机右边的办公桌上,标着“进”(IN);另一个放在终端机左边的办公桌上,标着“出”(OUT)。
我可以想象她的工作流程。文件会堆积在她标着“进”的锭子上(我希望她当心,那些锭子看起来非常危险)。她会从“进”的锭子上抽出一页纸放到写字夹板上,再以每分钟100个单词的速度打字输入一小会儿。然后,她将这一页从写字夹板上移到标着“出”的锭子上。她可能不断重复这样的流程,直到“进”的锭子上的文件清空为止。之后,她可能会将所有文件都放在“出”的锭子上。
一切看起来都为了速度而进行了优化。这是我的第一印象。
然后南希解释说:“我负责付账单。你之前看到的那个邮递员每天都会把邮箱里的账单带给我。我最怕处理施乐公司(Xerox)的账单。今天我刚收到一张。还记得我刚才在外面给你看的那台巨大的复印机吗?我们每个月都要给施乐公司付款。我之所以讨厌施乐公司的账单,是因为我总是记不住在应用程序中必须调用的供应商名称。我从来记不清到底是‘施乐’(Xerox)还是‘施乐股份有限公司’(Xerox Inc.)抑或是‘施乐公司’(Xerox Corporation)……但我必须确认才能支付施乐公司的账单。”
接着她在座位上转过身来,把手放在键盘上。施乐公司的账单正好夹在写字夹板上。她的光标停留在供应商名称字段上。就像我在电话里要求的那样,她已经把问题梳理好了。然后,她输入字符\ Q R。反斜杠下拉一个应用程序菜单,用方框图字符模拟,如┌、─和┐。Q下拉一个查询菜单,R运行一个“盲”(意思是不受限制)查询。因此,\ Q R指示应用程序返回整个系统中的所有供应商名称。屏幕上显示的是该查询结果的第一页,包含了大约20个供应商名称,它们都以字母A开头。
之后,南希转向我,用右手食指开始点击“后续屏幕”键。她快速地数着:“一二三四五六七八……”在数到26时,她停了下来。“我必须按26次‘后续屏幕’键才能找到施乐公司的名字。”当然,她之所以知道需要26次,是因为我开车过来的时候她刚刚演练过。
这个应用程序跟不上南希按“后续屏幕”键的速度。屏幕会不断刷新。它会填满半个屏幕,暂停一秒钟,然后填充-暂停-填充-填充-暂停。就这样,它在数十秒的时间里持续填充和暂停,让人感觉就像要等一辈子。
最终,在翻阅了整个供应商名称表后,她的屏幕显示了最后几个供应商名称:
她按了几下↓键,选中了显示“Xerox”的那一行,接着她说:“好了。”
所以,显然这是“施乐公司”(Xerox Corp),末尾不带句点。
她想也许我需要坐在她的座位上操作,所以礼貌地站起来,然后抱臂等待。我心跳加速,因为我很清楚这个问题,而且很容易就能解决。我根本不需要坐下。不过,我确实需要谨慎地选择措辞,因为我不想在这个问题困扰了她这么久之后,脱口而出地说这个问题有多么“简单”,这听起来对她很不尊重。
我笑了笑,在看似只有一两秒之后,就找到了合适的表达方式。“南希,”我说,“再过两分钟,我想你会非常高兴。”她听后笑了,请我告诉她我的想法。我示意她坐回去。
“请回到我刚到这里时你所在的位置,回到你输入供应商名称的字段。”她回到了供应商名称字段。我对她说:“现在,请输入x。”她照做了。“现在按回车键。”然后,立即出现了以下名称:
她猛地转过身来,双手捂住脸颊。“哦,我的天哪,你在开玩笑吗?你是跟我开玩笑吧?”她开心地咧嘴笑了起来。
我告诉她,这个应用程序有这样一个功能:只输入想要查找的值的前几个字母,然后按回车键,软件就会自动显示出模式匹配的结果,并以输入的内容作为前缀。她不停地一边笑着一边摇头:“我要马上安排一次部门会议,因为整个楼层的每一个人都遇到了和我一样的问题。”
……整个楼层的每一个人。
我们又开心地庆祝了几分钟。我问她是否还有其他问题,她告诉我没有了。她说自己也很感谢我解决的其他问题(她已经注意到了),但对她而言,这是最大的问题。这就是她讨厌这个新系统的原因。
……讨厌这个新系统。