一、介绍
敏捷开发,本质上是增量开发与迭代开发的叠加。
敏捷开发是通过快速迭代和小规模的持续改进,以快速适应变化。每次迭代都会处理一个小规模增量。
虽然敏捷开发将软件开发分成多个迭代,但是也要求,每次迭代都是一个完整的软件开发周期,必须按照软件工程的方法论,进行正规的流程管理。
二、具体方法
1、目标制定,目标对齐:市场评估之后,制定一个统一目标,所有部门的目标向这个目标对齐
2、产品规划:产品研发部门根据目标制定产品关键路线图,这个路线图中分布着不同的产品特性和其完成时间;
3、组织产品待办列表:产品规划产生的需求、客户需求、市场人员收集到的缺陷等将作为待办,列入产品待办列表中
4、需求梳理:产品负责人(Product Ower)对这个列表进行梳理,并在需求梳理会(Backlog Grooming Meeting)讲解具体每一个需求,团队成员根据需求的复杂程度评估每个任务的工作量,输出本次迭代的待办事项列表,完成优先级排序等工作;
5、迭代规划:通过 Sprint 计划会,明确要执行的工作、冲刺目标等
Sprint计划会:在Scrum中,sprint计划会议由产品所有者(PO)、ScrumMaster和整个Scrum团队参加。团队可以邀请外部利益相关者参加。
在会议上,PO提出产品优先事项,团队进行讨论和提问,充分了解任务难度和工作量。在会后,开发团队进行讨论,并决定把哪些事项移到冲刺待办列表中(也就是这个开发周期所需要完成的开发目标)
注意,虽然可能最终目标需要跟PO进行协调,但是完成哪些目标最终是由Scrum开发团队决定的。
6、迭代开发:期间会进行每日站会、性能测试、CodeReview、Demo、测试等工作;
这就是开发的主要环节
7、Sprint 评审:由每个任务的负责人演示其完整的工作,由 PO 确定 Sprint 目标是否完成,版本什么时候对外发布,新增 bug 的紧急程度等等。
8、开回顾会议:回顾会议由 Scrum 团队检视自身在过去的 Sprint 的表现,包括人 、关系、过程、工具等,思考在下一个 Sprint 中怎么样可以表现得更好,更高效,怎么样可以和团队合作地更愉快。
结合我自己的经验,这个开发方法与番茄工作法有相似之处。它们都用了PDCA循环的思想,具体来说,就是:
P(Plan,计划),D(Do,行动),C(Check,评估),A(Act,应用)
这种循环工作方式可以有效地分隔开多个任务,每个阶段目标明确,并且可以得到及时的反馈。这种思想不仅仅用于具体的开发上,包括时间管理,规划自己的生活,都是很有帮助的。
btw,番茄工作法的创始人同样也是敏捷开发方法的创始人~
文章评论