1.什么是敏捷
1. 敏捷定义
首先给出官方的定义:
敏捷是一种思维方式:由价值观定义,由原则指导,通过许多不同的实践体现,敏捷更多的是一种态度而不是一个流程,是一种氛围而不是一种方法。
我的理解:
敏捷是一个方法论,它主要包括三方面内容:1.快速交付的方法;2.团队的组织形式;3.一套对与项目成功与否的新的评价标准。
2. 敏捷宣言
- 个体与交互 优于 流程与工具
- 可工作的软件 优于 面面俱到的文档
- 客户协作 优于 合同谈判
- 响应变化 优于 遵循计划
尽管右项有价值,但是我们更加关注左项价值。
简单说就是分别对应了以人为本,价值导向,客户团队,拥抱变化。
3. 敏捷的原则
- 交付价值:通过早期和持续交付有价值的软件,实现客户满意度。
- 适应变化:欢迎不断变化的需求,即使是在项目开发的后期。要善于利用需求变更,帮助客户获得竞争优势。
- 短周期:不断交付可用的软件,周期通常是几周,越短越好。
- 自组织:项目过程中,业务人员与开发人员必须在一起工作。
- 激励信任:项目必须围绕那些有内在动力的个人而建立,他们应该受到信任。
- 面对面沟通:面对面交谈是最好的沟通方式。
- 可用性:可用性是衡量进度的主要指标。
- 步调稳定:提倡可持续的开发,保持稳定的进展速度。
- 持续改善:不断关注技术是否优秀,设计是否良好。
- 简洁:简单性至关重要,尽最大可能减少不必要的工作。
- 最好的架构、要求和设计,来自团队内部自发的认识。
- 反思回顾:团队要定期反思如何更有效,并相应地进行调整。
4. 敏捷开发的方法
常见的有极限编程
、Scrum
、DSDM
、自适应软件开发
、水晶系列
、特征驱动开发
、实效编程
。
本文我们着重介绍Scrum
。
2.SCRUM
SCRUM``是一个敏捷框架,简单概括起来就是3355,具体来说指的是三种角色,三种工件,5个会议,5个核心价值观。
1. 三种角色
三个角色是指PO,SM和团队:
产品负责人(PO),主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果。 作为产品负责人,PO清楚地知道产品的愿景,需要对产品待办列表的梳理、优化、优先级排序等负责。PO决定Why和What,一般可以对应为我们理解的产品经理和业务分析师的角色。
敏捷教练(SM),主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍。
团队(TEAM):主要负责软件产品在Scrum规定流程下进行开发工作。每位成员可能负责不同的技术方面(开发、测试),要求团队有很强的自组织能力,能够交付一个端到端的真正对客户有价值的产品。
2. 三个工件
产品待办清单(Product Backlog):PO首先将需求按照优先级进行排列,产生一个Product Backlog。作用类似于传统开发中项目经理确定需求文档。产品待办列表就是产品的“What”。
迭代待办清单(Sprint Backlog):有了Product Backlog列表,我们需要通过Sprint Planning Meeting(Sprint计划会议) 挑选出用户故事(Story)作为每次迭代完成的目标。
潜在可交付的产品增量(Potential shippable product increment, PSPI):能否每个Sprint生成满足质量定义的PSPI 是Scrum 执行效果的试金石。
3. 五个会议
1.Scrum计划会议
把产品待办清单里面的需求放到迭代待办清单。
2.每日站会
我们之前的团队每日展会是放在下午五点的,每个人主要是三方面:今天做了什么,遇到什么问题需要协助,明天计划做什么。放在下午五点的好处是当天遇到阻塞的问题在会上沟通后可以在当天完成。有的团队是放在早上的。
3.迭代评审会
评价需求是不是可以纳入到潜在可交付的产品增量,需求能不能交付经过这个会基本上就定了。
4.迭代回顾会
迭代回顾会主要是回顾这个迭代的缺点和失误,同时回顾这个迭代的优点,优点要继续保持,缺点和失误要改进,回顾会非常重要,因为迭代的一个重要原则就是持续改进。
5. 产品列表梳理会
在敏捷开发中,迭代目标是不断变化的,因此需要不断调整需求,使需求更加符合用户价值。
4.五条价值观
Scrum五条价值:专注,公开,承诺,勇气,尊重。