• 一个典型软件项目的故事
    时间:2012-12-03   作者:外刊IT评论网   出处:aqee.net

    ACME公司的Widgets系统出了点问题。这个系统被他们用来管理器材的库存,当初设计时没考虑到如今这样大量的数据的增长。他们的员工因为这个问题备受折磨。很显然,需要想办法解决这个问题,让系统恢复正常。

    经过对本地软件公司的一番筛选,ACME联系到了Hamster软件公司,看看他们能否解决这个库存系统中的问题。他们很喜欢Hamster软件公司的网站,他们没有任何软件开发的经验,但根据网站的外观,他们估计这个软件公司能解决他们的问题。这件事上他们并没有做错,但也不是很对。

    于是,ACME公司和Hamster软件公司开始讨论如何解决他们库存系统中的问题。私底下,Hamster软件公司的开发团队知道以前从未处理过类似这样的问题,然而,他们有一群很能干的小伙,他们相信一定能把这个问题解决掉。

    基于一个不符合实际情况的预估,ACME公司和Hamster公司达成协议一起努力来解决问题。这是他们犯的第一个错误。Hamster公司的开发团队认为,对现有的软件进行简单的修改就能满足他们的需求,并在此假设上制定出了工程估算。

    起初,按照ACME公司认可的设计方案,Hamster公司的开发进展神速。不久之后,事情看起来,他们的确是有可能按照最初的设计预算来完成任务。

    除了有一些bug需要解决。

    起初的bug都很小,就Hamster公司设定这种一日千里的开发速度而言,ACME公司理解,开发进行中的软件不可能做到十全十美。他们很高兴能开始使用改造中的系统,对于出现的问题,开发团队已经有了更好的方案,所以,看起来,边改造边使用是没有问题的——尽管有些bug存在。

    但是,Hamster软件公司的小伙都很能干。没有人希望bug的出现,但因为开发团队专注于解决扩容问题、写代码来升级系统,所以,有时候,很容易会发生一些意想不到的事情(bug)。随着开发的进行,项目规模的扩大,记住代码中各种编写策略的背后原因变得越来越困难,但是,他们是群能干的小伙,没有他们处理不了的问题。

    Richard Hammond——Hamster公司的创始人之一,是一个优秀的程序员,他对这个项目做出了巨大的贡献。一天,Richard收到了来自Fifth Speed公司的聘请,Fifth Speed公司是一家非常出名的软件公司,Richard无法拒绝。Hamster公司的开发团队很沮丧,但对于这种事情,他们无能为力,只好顶着压力继续开发。

    如果这些bug之前一些麻烦,而Richard的离去相当于火上浇油。他的脑袋里装有大量的关于每个东西为应该如何运作的知识,而现在,软件只能在没有他的情况下独自完成工作。各种征兆开始显露,Hamster公司开发的软件里有些东西并没有按要求运行。

    Bug成倍增加。每一次新的版本的发布看起来都会导致越来越多之前已经完成的功能不能用。

    作为解释软件应该做成什么样的唯一参考来源的规格说明书,如今已经增长到没有哪个人能单独掌握。

    ACME公司距离他们解决库存系统问题的目标看起来是越来越遥远。每一次新版本的发布都是一次前进,但也是一次后退。他们用这个系统来提升他们的业务,但bug不仅影响了员工的使用,而且影响到了客户。

    公司实际业务上的损失有这些bug的很大功劳。没错,ACME公司库存系统原始问题已经解决了,但却引入了其它问题,算起来得不偿失。这个庞大的系统本以为能解决ACME公司所有的问题,但现在看起来更像是一个负担,而不是资产。它每月还在不断的吞噬巨大的财力用于维护,远看不到尽头。

    可不幸的是,这是如今大多数软件项目的现状。糟糕的计划,没谱的预算,无休无止的“维护”,使得我们软件开发世界对真正的软件项目失去信心。

    只有我们共同努力,以整个行业之力,才能改进软件项目中估算和不切实际的期望等相关问题。

    在试图解决问题前,一定要尽量理解问题。

    测试你的代码,即使不为自己,也是为下一个接手你工作的人。

    网友留言/评论

    我要留言/评论

    相关文章

    投资创业关键三步:池塘、模式及核心竞争力:摩根士丹利亚洲董事总经理季卫东口述,互联网行业在中国还将是增长最快的行业。但在任何细分领域都竞争激烈的情况下,如何找到相对较好创业方向?选对池塘、关注商业模式、保持核心竞争力。崔西整理。
    为何你的免费用户不回来了?:用户留存率是免费模式的基础,客户生命周期价值包括用户花在游戏上的时间和用户花在游戏上的钱,但用户不花时间又哪来的钱呢?特别是开发迭代的时候,留存率很难保持,保持住了就是开发者的动力,带来的愉悦是二元的:要么证明你的游戏有趣要么无趣,以便开发者能很快做出反应,那怎样才能懂得用户的心情呢?为什么你的免费用户不回来呢?
    掌握六个要点,公司再也不怕骨干跳槽:一个顶尖人才对于一家公司来说是如鱼得水,但如果这个人才突然离职了怎么办?大多公司通常都陷入了商业困境,只有极少数的公司能安然无恙继续运作。
    亲身创业教训谈:做中老年移动互联网产品前,得想明白的三件大事:听闻白鸦要做老人手机,我狠欣慰又有更多的创业者关注老人领域了。我们车内逃脱团队的上一个项目就是为中老年人服务的家庭SNS社区,虽然后来失败得一踏涂地,但我非常愿意把自己的伤疤揭开,跟大家分享当时我们的经验教训。
    我没有时间 - 懒惰的借口:你是否有过想干点儿什么的想法?去开发一个项目?想实现一个目标?
    码农创业,6年80万,有梦想才可能有机会:一直在关注园子的信息,技术方面,职业发展,技术创业各方面的文章,期间关注过一些关于创业讨论的话题。今天闲来,说说我这6年的亲身体会(在此就不发网址了,不想有打广告嫌疑)。
    精益创业公司开发伟大产品的7种方法:精益创业(Lean Startup)是硅谷流行的一种创业方法论。它的核心思想是,先在市场中投入一个极简的原型产品,然后通过不断的学习和有价值的用户反馈,对产品进行快速迭代优化,以期适应市场。本文作者布拉登·科维茨(Braden Kowitz)是谷歌风投设计工作室负责人。
    真正优秀的程序员有哪些与众不同之处?:“当你50岁时,还愿意编程吗?”这个话题在Hacker News上众说纷纭,不过我们能够看到,那些真正成功的程序员,如John Carmack、Peter Norvig、Jeff Dean,即使他们不再年轻,但依然对编程充满热情,他们身上有哪些与众不同之处,又有哪些值得我们学习?有人进行了总结。
    互联网厚黑江湖九宗罪:M君说:中国互联网里50%的管理人员都“烂”过了。95%的公司都“烂”过了。
    App开发者应该具备的六个基本认识!:日前应邀担任趋势科技2012 应用程序创意大赛台湾区决赛评审,年轻学生的创意与活力让我印象深刻,我在台下也获得不少启发。我在比赛后的座谈会上,分享了一些心得,趁记忆犹新,整理与延伸如下。