弱智错误第二篇:我是如何毁掉一个网游公司的

2013-03-18 11:58


前几天的一片文章《你知道吗,犯弱智错误是每个程序员的必修课:为什么Hacker News昨晚一夜宕机》讲的也是一个低级错误,但那个犯错误的人是老板自己,他在问题未解决前仍然能回家睡觉,但如果你不是老板,而是一个普通员工,而且犯了一个无法饶恕的愚蠢错误,那你知道你的下场吗——死的很惨。

  2010年7月份,我22岁,在加州的一家网游公司工作。我刚毕业,这是我的第一份真正意义上的工作。我有了工资收入,有了自己的宿舍。我感觉长大了,头一次有这样的感觉。

  有两个“工程师”在为公司的旗舰产品——一款RPG游戏——写代码,我是其中之一。我在大学里学的是哲学,这意味着,虽然我知道如何去思考、解决一个问题,但我对最佳实践方法、设计模式等方面的知识很缺乏。我完全倚仗基本的LAMP相关知识,对它们付出了极大的热情。

  这款游戏的设计者(我们的老大)经常从暴雪公司出品的风靡世界的游戏“魔兽世界”中吸取灵感。在当时,魔兽世界里的“Raids”玩法在玩家中激起了前所未有的兴奋和热情。这个东西是我们特别想在我们的游戏中复制的功能。

  我被分派去实现我们的游戏中的Raids。同事山姆被大量的重构工作纠缠住,于是我就幸运的有机会去开发一些新的令人兴奋的东西了。

  我们的开发环境的一大特色是,我们开发代码直接连的是生产库。回想起来,这真是难以理解,我竟然没有询问这是为什么,真是一个笑柄。

  我是使用一个MySQL客户端来查看数据库表,这个工具有个华而不实的OSXy接口的界面…远不如phpmyadmin。我的一部分测试工作涉及到手工的清除RAIDS表,然后用程序重建。

  这种工作的单调让我精神恍惚,一个懒洋洋的下午,我发现自己昏昏欲睡,鼠标光标移到了USERS表达图标上,然后弹出右键菜单,点击‘clear’。

  我的所作所为会带来的严重后果并没有立即击倒我。我起初只是感觉到一种灵魂出窍,好像是悬浮在黑暗的房间里,看见各位同事都勾着腰趴在发光的显示器上。

  那么,究竟是什么后果呢?我们的游戏有上万个付费用户。用户花钱买装备,提升他们游戏中人物的能力。所有这些人物的数据都放在USERS表里,现在全没了。

  大概一分钟之后,一个业务经理走了进来。“我感觉有什么地方出问题了”,她说。我回答说,“是的,我知道出了什么问题”。

  我发现自己倚着一张桌子给数据库提供商Rackspace打电话寻求支持,耐心的听着他们的工程师解释说我们的数据库实例的备份两个月前就已经停止了。啊!

  下午,一层又稠又密让人压抑的愁云充满了办公室的上空。大家知道有什么地方出来问题,但只有少部分人知道是什么问题。我被拽进了一个在会议室举行的“工程师+领导”的紧急会议。

  CEO斜坐在桌子对面,看着我的脸,说,“你他妈干的好事!你让我们损失了数百万美元的收入”。他的合伙(通过Skype远程出席会议)插进一句话“你替自己祷告吧”。

  整个公司在接下来的数天里都在做减灾控制。游戏开发运营上的工作全部停止。技术部员工试图通过其它数据表里的数据关系来尽可能的恢复USERS表。非技术员工来应付愤怒的客户,为那些声称记得自己游戏数据的人做记录。我这些天干脆就没回家。身上都发臭了。

  一直都没有公开的信息表明我要为此全权负责。大家都收到了一份邮件,里面称这是一个“初级程序员”的责任事故。公司里只有我和另外一个人被看作是“初级程序员”。

  不超过三天,很显然,所有人都知道了是我。大家开始用异样的眼光看我。少数几个人,对此表示同情。但大多数人,更多的是愤怒和不信任。对他们来说,是这个公司提供了他们这最好的工作机会。我把公司推向了困境,也同时把他们的幸福和生计推向困境。

  我情绪低落,充满内疚和惭愧。在一个“全公司”的大会上我公开的进行了道歉。有人鼓掌。

  一个月后,终于,我写了一封辞职信给CEO和项目经理。我离开了这个城市,头也不回的去了纽约。

英文原文:How I Fired Myself
中文译文:http://www.aqee.net/how-i-fired-myself/