《代码大全(第二版)》阅读笔记02

      无论何种项目,都会对“准备工作”进行剪裁,使之符合项目的特定需要,所以在构建活动开始之前,准备工作要做的周全。

      我们首先关注一下前期准备的重要性。如果你在项目的末期强调质量,那么你会强调系统测试。但是测试只是完整的质量保证策略的一部分,而且不是最有影响的部分。测试是不可能检查出“使用错误的方法制造正确的产品”之类的缺陷的。这样的缺陷必须在测试之前解决,更确切地说是在构建活动之前解决。

      如果你在项目中期强调质量,那么你会强调构建实践。

      如果你在项目的开始阶段强调质量,那么你就会计划、要求并且设计一个高质量的产品。在软件开发中,你也需要在定义问题、定下解决方案的规格,以及设计解决方案的时候做出这种计划。所以我们需要做的就是在开始构建的时候,项目前期工作为这个项目的成功打下基础。

      我们可能会认为,所有的专业程序员都知道准备工作的重要性,并且在跃入构建活动之前会检查确认所有先决条件都已经满足了。但是这并不是事实。那些分配去做前期准备活动的开发人员并不具备完成这一任务的专业技能是造成准备工作不充分的一个常见原因;还有一个原因就是,很多管理者都不明白:软件开发不仅仅是写代码。管理者们如果可以早点认识到这个道理,可能工程项目的成功率可以更高很多。

     使用迭代技术的项目基本无须关注前期准备,但其实这种观点是错的。迭代方法往往能够减少“前期准备不足”造成的负面影响,但是它不能完全消除此影响。那些简化或取消了前期准备工作的迭代型项目与采用同样做法的序列型项目相比,有两点不同。首先,平均的缺陷修正成本低一点,因为发现缺陷的时间往往更接近引入该缺陷的时间。然而,每一轮迭代仍然要到最后才能检测到缺陷,为了修正这些缺陷,需要对软件的某些部分进行重新设计、重新编码并重新测试,这会使得修正缺陷的成本高于实际需要。

      事实上,在软件开发中,适用迭代式开发法的情况比适用序列式开发法的情况多得多。你可以使前期准备适应某个特定项目,办法是调整其正式程度和完备程度,到觉得合适为止。

      我们应该首先确定哪些前期准备活动适合你的项目。这样可以减少在构建活动中遇到大量不必要的反复修改,和减少项目稳定前进的阻碍。我们也要避免预先做太多的事情,固执地坚持原有的需求和计划,这同样会阻止构建活动的顺利进展。

 

原文地址:https://www.cnblogs.com/yyting/p/5537982.html