瀑布模型
适用于需求比较稳定的项目
特点:串行(什么是串行:每个阶段都是有先后顺序的,不可以颠倒)
缺点:发现缺陷的阶段比较晚,因为测试在后边,所以花费成本比较高
优点:每个阶段都独立出来了
螺旋模型
特点:渐进式 强调风险
适合的项目:规模庞大,复杂度高,总体的成本高
风险要求:对人员的要求高,影响项目的总进度,总体的成本高
增量,迭代
适合规模比较大的项目,降低项目风险
增量:第一次发布,第二次发布不影响第一次发布的功能(逐渐构造)
迭代:第二次发布对第一次发布是有影响的,第一次的发布需要变动代码(反复求精)
敏捷
敏捷宣言:
个体与交互重于过程和工具(沟通)
可用的软件重于完备的文档(轻文档)
客户协作重于合同谈判(客户参与)
响应变化重于遵循计划(拥抱变化)
敏捷的主要贡献在于它更多地思考了如何去激发开发人员的工作热情
特点:周期比较短 传统项目几个月敏捷一般在几个周最多一个月
团队人数少,一般不超过十个人,传统的要几十个人
开站会 大家一起工作
敏捷开发方式之scrum
1)scrum里边的角色
product owner(产品经理):负责整理用户故事,定义其商业价值,对其进行排序,制定发布计划,对产品负责
scrum master(项目经理) :召开各种会议,协调项目,为研发团队服务
team(研发团队):由技术人员组成,通过紧密协同,完成每一次迭代的目标,交付产品
2)迭代开发
与瀑布不同,scrum将产品的开发分解为若干个小的迭代
3)scrum的基本流程