Posted on 2006-02-25 17:45
shaofan 阅读(438)
评论(0) 编辑 收藏 所属分类:
软件工程
Early on, most people in the software field believed that the problem was weak software management, and the solution was to hold the line one the original set of requirements, insisting that when the software team had solved that problem, the customers and users would just have to accept that solution. It was during this era that computer scientists came up with the notion of formal specifications...
That approach really didn't work very well. The eventual solution didn't solve any problem the customers and users really needed solved, and, therefore, those slutions were ignored and eventually abandoned. All that time and money had been spent building a software solution that went straight to the refuse bin ... so did the relationship between the customers and the development organization
上面这两段话,选自[Glass]中的一章.作者认为导致项目失控的两大最常见原因之一,就是不稳定的需求.而另一个原因则是过于乐观的估计.需求不稳定其实是软件过程中固有的一个特性.它并不是单指需求本身不稳定,而是说在软件的开始阶段,用户的需求很可能无法被完全挖掘,因为客户本身并不能完全了解他自己想要什么.而随着开发的进行,各个方面越来越具体,客户对自己的需求的认识逐渐提高,因些导致需求的变更.
在早些年里,人们并未认识到"不稳定的需求"是软件开发本身固有的本性,而是把问题归咎于管理.基于此的解决方案就是,坚持在最初捕获的需求的基础上进行开发,否认和拒决需求变更.在这段时间里,FORMAL SPECIFICATION发展了起来.
然而这种做法并不很成功.基于这种做法产出的软件并不能真正解决客户的问题,结果是,这些产品无法投入使用而沦为废品,开发人员的努力和客户的金钱都付诸流水,而客户与开发组织间的关系也无法维持下去.
[GLASS] Facts and Fallacies of Software Engineering, Rober L. Glass, Addison-Wesley,2002