我做过的最糟糕的项目

在工作面试时,我经常会被问到一个问题:“请描述一个你曾经失败过的项目。” 我每次都会第一个想到的下面这个项目。

1995年,我辞去了我在时代华纳的高级软件工程师的职位,成为了一个为万维网开发互动内容的咨询顾问 —— 在当年,这还是很新的东西。时代华纳教了我很多事情。其中之一便是,大公司不是很多单独的机构构成的,而是一群分享着同一办公楼的相互关联的中型公司(各子公司之间存在很大的沟通问题)。(这也是我不喜欢在大公司工作的原因之一。)

英国保诚公司是我早期的客户之一。保诚公司的业务集中于人寿保险、房地产和金融服务。公司位于新泽西的紐瓦克 —— 这是另一个非常好的例子,去说明大公司实际上就是一群中型公司分享一个同一个办公楼。我为这个公司做了不少项目。其中一个是生成子公司的房产经纪人的在线人名地址录 。我确定现在的人一定都非常熟悉这个东西。基本上,就是当你浏览他们网站的时候,把邮编或者地址录入网站的某个输入栏,网站就会返回距离你最近的房产经纪人,由近到远排列。

这项目非常糟糕,一部分是因为保诚公司组织混乱外加官僚主义,另一方面,我确实不知道我在干什么。我给了他们一个固定的咨询价格—— 我以为这样非常直接,而且我以为我对客户要求有明确的解决方案。但是,我完全低估了这公司官僚主义和每层管理者都想淌一脚的事实。他们几乎介入了每一个细小的环节。交给我的数据没有经过任何处理,要么很混乱,要么不完整。他们一直不断在修改数据输出方式,而且从来没有完整完成任何一次数据的输出。他们经常改变主意,按照他们突然所想到的排列顺序去显示经纪人,然后就不得不重新给我新的数据 ,而这些新传来的数据永远都是不完整的,或者是有错的。我接到了六次,或者七次新传来的数据。这其实真的不是什么问题,除了每次发给我的数据都用了一种新的格式,像是从什么失败者手里拿到的在不断变化的从Excel导出的数据。

因此,我不得不七八次改变我的程序,去验证重载这些数据。这件事情在今天的我看来,我其实可以更好地解决。在前两次的重复工作以后,我可以更好解释整个情况:我的预估价格只是基于我估计的工作量和偶发事件造成的额外工作量;我并没有估计到我需要用八倍的工作时间去清理完全不同格式的数据。他们原本是可以给我一模一样格式的数据,或者重新估算我的咨询费用,或者找另一人去做这件事情。但是,对于当时的我来说,我实在是太嫩了,我免费做了以上提到的所有工作。

类似的,他们不断更改输出结果的格式:最开始的版本,子公司是按照距离远近的顺序排列的。然后,他们改变主意了: 同一个地方出现的子公司需要按照字母顺序排列,所有的子公司按城镇分组。再然后,他们又改变主意了:距离并不是最重要的,常规等级的子公司和优先考虑的子公司分类才是他们想要的。他们一直坚持这个想法,直到他们发现,他们并没有这个分好等级的子公司的数据,最后才放弃了这个方案。这方案一点都不符合常理。他们想要的结果,是把一个相当远的优先级别的公司放在输出页面的前面,然后才是显示附近的常规等级的公司。 这类事情,经常会出现在很多客户身上。但是我并没有估计到这个,而且,这个事情消耗了我很多没有预算进的时间。现在的我明白,这类事件多半都会导致不好的结果。

无论如何,我们还是把它做出来了。而且,它得到了各管理层的批准,还得到了监察部授予的金星奖励。我的客户还把它拿到保诚公司的房地产部员工面前展示。.

还记得我前面提过的,保诚公司就是一个位于新泽西的分享同一栋大楼的一组中型公司。和我一起工作过的人,就是来自其中一个中型公司的,而房地产部在另一个公司。我得到的报告说,房地产部的人非常喜欢我的演示报告,这就是他们想要的。

他们问道:“但是如果用这套系统,我们应该怎么收取介绍费呢?”

保诚房地产是一个经销组织。公司本身没有真正意义上的经纪人。这些经纪人找到保诚公司,付给这公司一点费用,然后借用保诚公司的名义去进行地产服务。另一个业务是,保诚公司有一个免费客服电话,你可以拨打这个电话,然后接线员会帮你转接到最近的经纪人那里去,并向这些经纪人收取一些介绍费。

我所做的,是让用户直接在网站上找到距离最近的那个经纪人,完全跳过了中间部分,也削减了保诚公司的收取介绍费的机会。

我被告知说,我需要对经纪人定位系统做一点最终的改变。现在,它的工作方式是这样子的。用户需要输入他们的邮编或者地址;申请表到数据库查找到最近的经纪人的联系方式。这些经纪人的显示顺序,取决于监察部给我的特殊排列顺序。他们每一个人的联系方式,都被隐藏了。真正被显示的联系电话,是保诚公司的免费客服号码。甚至连网页上显示的名字,都值得被怀疑。在相当长的一段时间内,保诚公司都在考虑是否要用“保诚房地产公司附属子公司”来代替每一个经纪人的名字,因为他们一直担心, 网站用户会不会直接在黄页电话号簿上找到这些经纪人的联系方式。最终,他们决定,在网页上放置免费客服号码可以极大的减少他们的顾虑。因此,除了经纪人名字以外的任何东西,都再也不会从网上找到了。

保诚公司并不需要一个经纪人定位系统。他们只是单纯的需要一个最简单的静态超文本语言的页面,去告诉他的用户去拨打他的免费电话。我所有的工作,那些在重载数据上,在输出数据格式的修改和在显示经纪人的顺序上花掉的时间,全部浪费掉了。

 

———【亲爱的朋友们,你们做过的最糟糕的项目是?能在评论中大概说一下么?】———

 

收藏 6 评论

关于作者:人见人爱的土豆

Weibo : @人见人爱花见花开的土豆Site: mingcheng.me 个人主页 · 我的文章 · 7

相关文章

可能感兴趣的话题



直接登录
最新评论
  • 傲雪星楓   2013/09/28

    客戶需求不明確導致失敗。

  • wei.mr   2013/09/28

    不懂技术的主管给一个,在不可能的时间内完成的东西,我最记得就是他说:他要在他指定的时间得到他想要得

  • garfee   2013/09/28

    当客户说自己想要一个苹果的时候,其实连他自己都不知道自己真正想要的是个梨子。
    最大的困难不是不知道如何开发一个苹果或梨子,而是没有教育客户认识到:你丫要的就是个梨子

  • 以前做J2EE,后来学android.
    最糟的第一个android项目,完全对它不知的情况下,安排做[领导很大胆].
    边学边做,边做,需求边改.连续上班超过四十天,晚上还加班.从平静--暴燥--无奈--暴燥--无语--平静,差点就人格分裂.
    随着知识了解的深入,做过的东西从头再修改.而且还不能大动以前的逻辑.
    差点就老婆跑了,人搞倒了!

  • jclass   2013/10/09

    哈哈,这样我也做的出来,确实坑

跳到底部
返回顶部