敏捷软件需求阅读笔记(1)
作者在序中写到:为什么一些产品开发项目达不到预定的经济目标呢?研究表明,80%~85%的项目失败归咎于需求不正确。这也是为什么管理软件需求成为现在整个软件工程行业十分重要的研究方向。
在开发过程中,环境不断在变,竞争对手引入新的产品,客户需求发生演变。这也就说明在开始设计之前开发实际需求工件不可行,那么也就证明了过去常用的甚至现在仍有人在使用的瀑布模型不可取,瀑布模型指的是从需求——设计——实现——验证——部署一条线,在瀑布模型中的需求形成了一个内在的铁三角陷阱。
由于瀑布模型的失败,在上个世纪八九十年代出现了迭代式过程,一般情况下,我们可以把这些过程视为一个包括多种迭代式方法的渐进连续体。这些方法包括:螺旋模型、快速应用开发(RAD)、统一软件过程(RUP)。
在迭代模型中,采用“基于发现”的方式,采用更轻量的文档和模型。迭代式过程能够通过早期迭代更快地发现“真正的用户需求”,从而大大降低项目的总体风险。
但是不管是哪种敏捷方法,敏捷过程对需求的处理与以往的方式都有着根本的差异。敏捷原则中明确指出了最重要的目标是通过持续不断地及早交付有价值的软件使客户满意;欣然面对需求变化,即使在开发后期也一样。采用敏捷方法将使两个方面固定下来:进度与资源,使其他方面——包括范围(需求)——保持浮动。现在,我们有了一个正真完善的软件工程周期:以固定的质量,在固定的时间盒中交付小的增量,重复进行。
与敏捷方式同时其发展的还有精益软件运动,现在精益思想正被广泛研究和传播着,作者称,随着时间的推移,精益的影响将比现在介绍的敏捷软件开发方法更大、更广。在这本书中,作者着重介绍了精益软件思想的框架,以此为前提,支持着本书中介绍的方式,即团队、项目集和企业的精益需求实践。