亲爱的老板:程序员的10分钟就是3个小时

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