现在几乎所有公司的开发形式都采用敏捷开发的模式,先说一下瀑布模型:
一. 瀑布模型(不敏捷开发)
1. 五个阶段
- 需求分析:定义系统需求
- 设计:确定系统使用什么样的数据库,模块功能的划分等等
- 编码:用编程语言实现设计阶段的功能
- 测试:测试设计的功能是否全部实现
- 维护:根据用户提出新的需求进行系统的修改。
2. 缺点
开发慢,维护更改成本高。因为前一个阶段的输出是下一个阶段的输入,所以耦合性高,不适合需求不断变化的软件开发。
二. 敏捷开发
1. 简述
敏捷开发弥补了瀑布开发模型的缺点,将一个完整的系统版本划分为多个迭代,在每个迭代期实现系统的不同特性。优先级高的特性优先实现。在早期的开发出原型,在原型的基础上根据用的提出的需求不断进行完善。
2. 特点
- 快:一般一个迭代3周,也就是说,开发初期,三周客户就可以看到软件原型。
- 客户参与:可以让开发者理解客户的真实需求
- 强调开发的是软件,而不是文档。文档是为软件开发服务,但不是主题
- 迭代:迭代的功能是客户的需求。对原型进一步的功能的增强和完善。
- 耦合性弱:每次的迭代都是分离的。
3.团队角色
- 产品负责人:负责用户和开发人员的需求传达与沟通。
- 流程主管:跟进和推进任务的完成。
- 开发团队:对功能需求的开发
4.主要形式
- 每日站会:每天站会,时间维持在15分钟内,每个人阐述昨天所做之事,今天准备做之事,移动任务卡片到相应的位置。任务卡片位置有(需求,待开发,开发中,待测试,测试中,预上线,上线)。
- 评审会:需要在迭代周期的最后一天召开,所有项目相关人员都要出席,包括客户(可以让产品经理代出席)。
- 迭代回顾会:每个迭代结束时进行,总结工作中的经验和教训。所有成员参加,对本次迭代做出回顾和分析,分析包括定量分析和定性分析。内容包含:是否完成迭代目标,收集评审迭代量指标。之后确定下一个迭代的开始时间和迭代需求。