导读:国外程序员艾德·韦斯曼(Ed Weissman )从业32年。某天老板告诉他产品有个问题,10分钟可以修复问题,谁知结果一干就是3个小时。本文就是艾德记录下的过程。 10:48 老板:嗨,艾德,苏在底特律说,“产品历史屏幕”上经常出现错误的发票号码(Invoice Part Number)。你能帮我们搞定这个问题么? 艾德: 我现在在忙其他事。你到我的任务队列中提交一个ticket吧。 老板: 这事10分钟就够了。 艾德: 你确信么? 老板: 嗯,确定。我一会开个网络会议。苏会演示给你看,然后你有空的时候再仔细看看。 艾德: 好的。 老板: 嗯。去你的 Outlook 中查收(会议)邀请吧。 11:05 收到 11:30 的网络会议的 Outlook 邀请,接受。 11:25 从我的IP电话呼叫了网络会议的800号码。拨了两次,都占线。从IP电话打我手机,同样是忙。哎,IP电话系统再次坏了。从我手机呼叫了网络会议的号码。我是第一个上线了,然后又挂掉了。在浏览器中点击链接进入了网络会议,还是第一个。 (艾德开始在浏览器的另一个选项卡中看 Hacker News。) 11:38 老板进入会议,问:苏在哪里? 艾德: 我不知道。 老板: 你能看到我的屏幕么? 艾德: 不能。 老板: 哦,等一下。我来做主(Let me be the host)。现在能看到了么? 艾德: ?嗯,可以了。但我想苏是不是去展示问题了。 老板: 对。我一会让她做主。 (艾德开始在浏览器的另一个选项卡中看 Hacker News。) 11:47 苏进入会议:我们怎么在这里呢? 老板: 来这儿的目的就是让你给艾德展示“产品历史屏幕”出什么问题了。 苏: 展示“产品历史屏幕”的问题? 老板: 你知道的,你不说发票部分号码有时候会出错么? 苏:你指 mil-spec 订单? 老板: 我真的不知道。你不发送了ticket么? 苏: ticket 号码是多少呢? 老板:稍等,我查一下。 (艾德开始在浏览器的另一个选项卡中看 Hacker News。) 11:53 老板: ticket 号码是 13827。记住了吧? 苏: 我怎么在我电脑上查看 ticket。 老板: 点击内网中的 IT 控制板。 苏: 我点不了啊。网络会议软件全屏了。 老板: ?那你在键盘敲击Alt+F4,然后去内网。 (艾德开始在浏览器的另一个选项卡中看 Hacker News。) 11:57 苏: 搞定,ticket 号码是多少呢? 老板: 我应该写下来了。我再找找…… 老板: 13827. 苏: 嗯,我看到了。 这个问题出现过几次。没人知道为什么。通常在 R27-83 这个号码时出问题了。 老板: 好,给艾德看吧。 苏: 我怎么回到网络会议界面呢? 老板: 你得重启了。刚才Alt+F4给关闭退出了。 (艾德开始在浏览器的另一个选项卡中看 Hacker News。) 12:04 苏: 好了,网络会议软件打开了。你能看到我么? 老板:不能,你得点击“Host”按钮。 苏:在哪里? 老板: 在右上角的小方框中。 苏:是“History”框么? 老板: 不是,是“Attendees”框。 苏: 好的。现在你能看到我了么? 老板:不能。再试。 苏: 我试了。好像你得退出主模式吧。 老板: 哦,我忘了。 (艾德开始在浏览器的另一个选项卡中看 Hacker News。) 12:14 老板: 我退出主模式了。你再试试。 苏: ?好的。现在你能看到我的屏幕了吧? 老板: 可以看到。 艾德: 我也可以。 苏: 好的,如果我进入主菜单,点击“Operations”,然后点击“Sales”,再点击“History”,我到了“Sales History”菜单。看到了吧? 老板:嗯。 艾德: 看到了。 苏: ?然后我按“Part”点击“Sales History Display”。输入”R27-93″,主屏幕弹出来了。然后我点击“Invoices”,我摁 F5,再 F3,再 F7,发票号码(Invoice Part Number)就变成了”GT548″。不应该这样的。 艾德:好,让我查看一下,再答复你。 老板: OK,再见。 苏: OK,拜拜。 艾德现在陷入了主模式,因为其他两位退出了。他不能退出。窗口锁定了。他重启电脑了。 12:38 艾德登录,进入开发系统。进入主屏幕,点击“Operations”,然后点击“Sales”,再点击“History”,到了“Sales History”菜单。然后按“Part”点击“Sales History Display”。他输入”R27-93″,主屏幕弹出。他然后点击“Invoices”,摁 F5,再 F3,再 F7,发票号码(Invoice Part Number)还是”R27-93″,本该就如此。在开发系统中工作正常。 12:46 艾德通过他的秘密后门登录产品。进入主屏幕,点击“Operations”,然后点击“Sales”,再点击“History”,到了“Sales History”菜单。然后按“Part”点击“Sales History Display”。他输入”R27-93″,主屏幕弹出。他然后点击“Invoices”,摁 F5,再 F3,再 F7,发票号码(Invoice Part Number)变成了”GT548″。苏没说错。 12:57 艾德查看了版本控制系统。这个问题弗瑞德(Fred)在11月11日已经 check out。艾德运行了一个 diff,看到弗瑞德已经发现他更改后的第425行的代码有问题,并修正了。 1:03 艾德呼叫弗瑞德,看他在忙啥。Voice mail。 1:07 艾德给弗瑞德发电子邮件,解释问题。 艾德继续看 Hacker News。 1:17 弗瑞德回拨艾德。艾德告诉他去看邮件。 (艾德开始在浏览器的另一个选项卡中看 Hacker News。) 1:28 弗瑞德回拨:OK,我想起来了。程序出错,是因为一个离岸外包的程序员改变了“Operations”目录下所有程序的header。他在重新编译前不小心删了一行代码。不知怎么地,还通过了QA,现在苏发现了这个Bug。 艾德: 那么你现在能修复么? 艾德:不行吧。这个模块中还有12个其他的改动。我先看看,再打给你。 (艾德开始在浏览器的另一个选项卡中看 Hacker News。) 1:36 弗瑞德回拨:在 XL500 模块通过之前,我是改不了这些变动。模块被冻结(on hol),必须得让QA先批准。所以我们只能等了。 艾德:好的,谢谢弗瑞德。我一会就给老板发邮件告诉他。 艾德给老板发了解释邮件。 (艾德开始在浏览器的另一个选项卡中看 Hacker News。) 1:48 老板: 好,这个看起来是个问题。貌似我不得不升级指导委员会了(Steering Committee)。艾德,很高兴你能分出10分钟来。谢谢。 (艾德开始在浏览器的另一个选项卡中看 Hacker News。)