谈谈敏捷开发流程
什么是敏捷?(Agile)
以人为核心的迭代式开发模式
为什么出现?
- 传统的开发模式存在面对客户需求不定以及更改无法解决的问题
- 瀑布开发模式以文档驱动,需要很强的预见性。
- 传统开发模式,在最初的确定需求以及开发设计的时候,每个环节存在强烈的依赖性,存在较大的风险。
特征
- 增量交付,迭代时开发,持续发布
- 以人为核心进行迭代
- 一个项目拆分成有联系并可以独立运行的小项目,可以持续部署,储蓄发布
- 适用性而非预见性
实现流程
会议安排
- 梳理会议(gromming)需求分析,估点
- 计划会议(planning)任务分配
- 每日会议(daily) 任务进度汇报,问题分享
- 评审会议(reviewing)成果展示,获取客户意见
- 回顾会(retrospective) 回顾总结,定量分析(迭代速率,时间,故事数, 客户满意度…)
敏捷团队的角色和分工
- po (product owner) 产品负责人 保证产品质量,提出产品需求,设置产品需求列表以及产品交付的时间和优先级。评审决定是否接受工作成果。
- SM (scrum master) 流程管理员 组织安排整个开发过程的会议,push 项目的开展进度, 清除团队的沟通障碍。目标就是让团队能按时交付。
- Scrum team (Dev QA DB) 有的公司会专门设置CM (code migration)=RE(release engineer) 负责项目发布
分类以及要求
- Scrum 偏 过程
- XP 偏实践
区别:
- 迭代周期不同
- 迭代过程中是否允许改动 scrum 不允许
- story 的优先级是否需要严格遵循 XP 需要
特色元素
- 任务燃尽图 (burn chat)
- 任务看板
- 计划指牌 story point 进行评估(1, 2 , 3, 5, 8, 13…)