敏捷开发定义
敏捷开发(AgileDevelopment)是一种以人为核心、迭代、循序渐进的开发方法。它不是一门技术,它是一种开发方法,也就是一种软件开发的流程,它会指导我们用规定的环节去一步一步完成项目的开发;而这种开发方式的主要驱动核心是人;它采用的是迭代式开发;随着互联网化节奏不断增快,敏捷开发越来越火,学习与使用的人们也越来越多。
敏捷开发流程
敏捷开发中的梳理产品需求、制定迭代计划、迭代执行、迭代总结是一个闭环的过程,前一个迭代工作的完成情况又会对下一个迭代计划产生影响。
梳理产品需求
在开发之前,一定会有一个需求列表,定义了产品在接下来需要具备的特性和功能,一般由产品经理来定义,在敏捷流程中,称这个人为 Product Owner(PO)。定义 Product Backlog 时,需要遵循 INVEST 原则,即:Independent,Negotiable,Valuable,Estimable,Small,Testable
制定迭代计划
一般规定两周( 10个工作日)为一个迭代,在迭代开始之前,需要召开迭代计划会制定这一个迭代的计划(周一下午),把 Product Backlog 按照优先级排序,由 PO为大家讲解具体每一个需求,团队成员根据需求的复杂程度评估每个任务的工作量,当前 n 个任务的工作量之和约等于团队总工时时,那么这个迭代就把 Product Backlog 中前 n 个任务作为这次迭代的任务,在敏捷中称之为 Sprint Backlog。
迭代执行
团队需要把 Sprint Backlog 和预估的时间写在便签纸上,把它们贴在墙上,白板划分成三大块:未开始、进行中、已完成,当然,所有 Sprint Backlog 的状态开始都应放在未开始那一列。
在迭代进行期间,由大家认领白板上的 Backlog,每天早上要开一个每日站会,时间在 20 分钟以内,由大家依次报告:
每日站会强迫每个人向同伴报告进度,迫使大家把问题摆在明面上,尽可能让信息公开透明。报告进度的同时移动对应的卡片到合适的位置,修改 Backlog 剩余所需要的工作量,Scrum Master 需要统计剩余所有的工时,更新到燃尽图中。当燃尽图的走到 0 ,就意味着完成了这个迭代中的所有任务。
迭代总结
迭代的最后一天,还有两个环节要做:成果展示和团队的内部总结。成果展示环节要求团队成员在这个迭代中自己完成的任务展示给所有人看,除了团队内部所有成员以外,还可以邀请领导等关心项目进展的人。内部总结则只在团队内部进行,总结这个迭代中做的好的地方以及不好的地方,接下来如何改进等。
根据 不断调整,移动开发团队将迭代总结与迭代计划会进行合并,统一与第一周周一下午进行。将进行上一迭代反思与下迭代任务选取。并在迭代期间进行测试包验证,成员集体测试等。