知识产权信息化网(IPWOM)提供专利检索系统、专利下载软件、商标管理系统等产品及专利统计分析等服务
Rate this Content 0 投票


 

一个典型软件项目的故事

投递人 itwriter 发布于 2012-11-29 09:02

英文原文:The story of a typical software project.

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 公司所有的问题,但现在看起来更像是一个负担,而不是资产。它每月还在不断的吞噬巨大的财力用于维护,远看不到尽头。

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

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

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

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

来自: 外刊IT评论