第三章 软件创建的先决条件
一. 前期准备的重要性:在本节中主要讲述了前期准备在整个软件开发过程中的重要性。
创造出高质量的项目的实践方法是在项目的前期,中期和后期都强调质量。
项目的后期主要是测试,只是质量保证的一个策略,虽然会发现一些Bug,但是类似“程序的结构
错误”,“使用错误的方法制造了这个产品”。
项目的中期,主要是项目的构建环节,项目的构建的依据在哪儿,依据还是前期准备的需求说明
书和设计说明书。所以说,前期准备的是否充分,已经为整个项目的成功或者失败打下了基础。
项目的前期,既然项目的中期和后期的质量很大程度上都依赖于前期的准备,那么前期的准备理
所当然需要强调质量了。
关于开始构建之前做前期准备的论据,作者从逻辑,类比和数据三个角度,分别描述了做前期准备的重要性。
总结:前期准备很重要,非常需要准备充分,非常需要高质量。为什么呢?因为这样可以降低项
目开发的风险,直接一点就是,为高质量的中期后期的项目开发奠定扎实的基础。
二. 辨明你所从事的软件的类型:迭代开发法对前期准备的影响,什么是序列式开发法,也称传统瀑布开发模式,
就是将项目的生命周期分成几个阶段,完成一个阶段之后,进入下一个
阶段。在项目初期西化所有的需求,并希望不再改变。什么是迭代式开发法,
也成增量式的开发,一点一点的添加。在这个过程中项目的需求是可以不断的变化,开发者在变
化的需求下,不停的调整项目的开发计划,使之更符合需求。
迭代开发可以减少前期准备的损失,但是并不是完全的减少。
无论使用序列式的开发还是迭代式的开发,只要进行前期准备,都可以减少成本。迭代式的开发
通常有很多的理由去选择,但是有前期准备的迭代式往往比没有前期准备的迭代式更具优势,更吸引人。
三. 问题定义的先决条件:
讲述如何辨认是否已经写好问题定义。
要使用描述一个问题一样去描述,不得加入任何解决方案。
问题定义,应该使用客户的语言去写,尽量避免专业性的语言与术语。
错误的问题定义产生的后果:花大量时间去解决无关紧要的问题。
四. 需求的先决条件:给程序员确定目标,而不用程序员猜测用户想要什么。
避免争论。当需求不明确的时候,每个人对需求的理解可能都不一样,很容易引起争论。面红耳赤。
有助于减少编程开发之后程序的变更。
需求是程序员对问题定义的提出解决方案的第一步。掌握着整个项目开发的发展方向。
需求变更的主要来源:随着客户参与项目的时间增长,他们对项目的理解也就越深入,也让他们
自己更清楚的了解自己的需求。
在构建期间处理需求的变更
使用本节末尾的需求核对表来评估你的需求的质量。
确保每一个人都知道需求变更的代价。这里包括客户与开发人员。
建立一套变更控制程序。一个专门处理需求变更的机制。方便合作与交流。
使用能适应变更的开发方法。分阶段交付系统的方法。增量式的开发方法。
放弃这个项目。特别糟糕的时候,放弃吧。
注意项目的商业案例。考虑其需求形成功能之后,存在的商业价值有哪些。