不同的软件开发过程对于需求变化的解决办法是不同的
不同的软件开发过程对于需求变化的解决办法是不同的。统一软件开发过程(UP、RUP)的解决办法是预防和控制需求的变化。统一软件开发过程是通过在项目的前期尽可能准确,全面地捕获需求,然后对需求的变化加以控制和管理,来避免范围的蔓延,并通过迭代和递增的开发方式,来应对变化。从软件开发工程发展的历史,我们说在项目前期全面地捕获需求和选好软件开发公司,一直是一个做好软件的不二法则。
对业务逻辑相对稳定的项目,在项目实施之前做好需求的捕获绝对是受益匪浅的,因为软件的问题在生命周期的后期发现需要的成本要比在初期发现高得多。迭代和递增式开发也降低了项目的风险,他允许在项目进行过程中对需求进行校正,它通过递增的版本发布使得客户能在软件开发生命周期过程中就对软件有了更全面的认识,因此也能及时的提出改进意见。
从团队的角度看,迭代的开发更符合人类学习的曲线-一个渐进的过程。在项目开发的初期,开发人员对业务逻辑和技术的掌握可能并不全面,随着项目的进展,认识会不断加深,这对于后期的迭代周期的成功是很好的保障。然而,某些项目确实存在很多不确定因素,还有某些大型项目,历时时间很长,在那么长的时间里需求会变化是很自然得事情。
对这些项目迭代和递增的开发方法会比在项目早期就尽可能地捕获需求更有意义。