人们对软件存在着许多错误的观点,这些观点表面上看起来很有道理,符合人们的直觉,但实际上给管理者和开发人员带来了严重的问题。许多人认识到下述观点是错误的,但遗憾的是旧的观念和方法培植了拙劣的管理和技术习惯。
观点之一 |
我们拥有一套讲述如何开发软件的书籍,书中充满了标准与示例,可以帮助我们解决软件开发中遇到的任何问题。
|
客观事实
|
好的参考书无疑能指导我们的工作,充分利用书籍中的方法、技术和技巧,可以有效地解决软件开发中大量常见的问题。但实践者并不能依赖于书籍,因为在现实工作中,由于条件千差万别,即使是相当成熟的软件工程规范,常常也无法套用。另外,软件技术日新月异,没有哪一种软件标准能长盛不衰。 |
观点之二 |
如果我们已经落后于计划,可以增加更多的程序员来赶上进度。 |
客观事实
|
软件开发不同于传统的机械制造,人多不见得力量大。如果给落后于计划的项目增添新人,可能会更加延误项目。因为新人会产生很多新的错误,使项目混乱,并且原有的开发人员向新人解释工作和交流思想都要花费时间,使实际的开发时间更少,所以制定恰如其分的项目计划是很重要的。 |
|
【讲解】
假设一个项目估计需要12人月工作量,指定由3个人在4个月内完成,如果第一个月的任务花了两个月才完成,那么增加人力的结果如何?假设增加2个人参加项目,不论新增加的人适应能力有多强,总需要有人去帮助了解熟悉情况,如果这些工作占用了一个月的时间,这样又有3个人月工作量在新计划之外。由于人员增加,工作任务需要重新划分,到第3个月结束时虽然有5个人在工作,实际上余留下7个人的工作量。 |
观点之三 |
项目需求总是在不断变化,但这些变化能够很容易地满足,因为软件是灵活的。 |
客观事实
|
软件需求确实是经常变化的,但这些变化产生的影响会随着其引入时间的不同而不同。对需求把握得越准确,软件的修修补补就越少。有些需求在一开始时很难确定,在开发过程中要不断地加以改正。软件修改越早代价越少,修改越晚代价越大,就跟治病一样道理。
|
观点之四 |
有了对目标的一般描述就足以开始写程序了,我们以后可以再补充细节。 |
客观事实
|
不完善的系统定义是软件项目失败的主要原因。关于待开发软件的应用领域、功能、性能、接口、设计约束和标准等需要详细的描述,而这些只有通过用户和开发人员之间的通信交流才能确定。越早开始写程序,就要花越长时间才能完成它。 |
观点之五 |
一旦我们写出了程序并使其正常运行,我们的工作就结束了。人们有时认为,只有差的软件产品才需要维护。 |
客观事实
|
从如图1.12所示的统计数据来看,软件投入的50%~70%是花费在交付给用户之后。品质差的产品被丢弃,只有好的产品才需要维护和改进。 |
观点之六 |
一个成功的项目唯一应该提交的就是运行程序。 |
客观事实
|
软件包括程序、数据和文档,其中文档是成功开发的基础,为软件维护提供了指导。 |