螺旋开发,1988年,巴利·玻姆(Barry Boehm)正式发表了软件系统开发的螺旋模型,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统
螺旋模型刚开始规模很小,当项目被定义得更好更稳定时,逐渐展开
螺旋模型的核心就在于您不需要在刚开始的时候就把所有事情都定义的清清楚楚您轻松上阵,定义最重要的功能,实现它,然后听取客户的意见,之后再进入到下一个阶段如此不断轮回重复,直到得到您满意的最终产品
制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;
风险分析:分析评估所选方案,考虑如何识别和消除风险;
实施工程:实施软件开发和验证;
客户评估:评价开发工作,提出修正建议,制定下一步计划
螺旋模型很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估
敏捷软件开发又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力它们的具体名称理念过程术语都不尽相同,相对于非敏捷,更强调程序员团队与业务专家之间的紧密协作面对面的沟通(认为比书面的文档更有效)频繁交付新的软件版本紧凑而自我组织型的团队能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用
人和交互,重于过程和工具
可以工作的软件,重于求全而完备的文档
客户协作,重于合同谈判
随时应对变化,重于循规蹈矩
作为一个整体工作
按短迭代周期工作
每次迭代交付一些成果
关注业务优先级
检查与调整
其中位于右边的内容虽然也有其价值,但是左边的内容最为重要人员彼此信任,人少但是精干,可以面对面的沟通
项目的敏捷开发
敏捷开发小组主要的工作方式可以归纳为:
最重要的因素恐怕是项目的规模规模增长,面对面的沟通就愈加困难,因此敏捷方法更适用于较小的队伍,40302010人或者更少大规模的敏捷软件开发尚处于积极研究的领域