敏捷开发概念:
敏捷开发不是指一种具体的方法论、过程或者框架,而是一组价值观和原则。 符合敏捷开发价值观和原则的开发方式包括:极限编程(XP)、Scrum、精益软件开发(Lean Software Development)、动态系统开发方法(DSDM)、特征驱动开发(Feature Driver Development)、水晶开发(Crystal Clear)等。
敏捷开发特征:
- 迭代式开发。将整个过程分为几个迭代周期。每个迭代周期通常为1~4周。
- 增量交付。产品是在每个迭代周期结束时被逐步交付使用,而不是整个开发过程结束后,一次性交付使用。给客户带来即时效益和价值。
- 开发团队和用户反馈推动产品开发。 主张用户全程参与到整个开发过程。需求变化和用户反馈能及时集成到产品中。
- 持续集成。
- 开发团队自我管理。 敏捷开发总是以人为中心建立开发的过程和机制。
SCRUM介绍
scrum基本概念
用于开发和维持复杂的产品,是一个增量、迭代的开发过程,是敏捷开发的一种实现机制。主张知识源于经验,以及基于已知的东西做决定。
sprint—冲刺
scrum中由若干个短迭代周期组成,每一个迭代周期称为一个冲刺(sprint)。
Backlog
是一个按照商业价值(实现优先级)排序的事项列表。列表的体现形式通常为用户故事。该列表上的事项,由scrum团队自主挑选。并**在sprint计划会议上经讨论、分析、估算得到相应任务。**任务由成员自主挑选并实现。
SCRUM特征
- 迭代开发。每个迭代必须产出可工作的增量功能。
- 增量交付。每个交付都是所有sprint中所有项目的总和。
- 自组织团队。scrum团队有权进行设计、计划和执行任务,还需要自己监督和管理工程的过程和进度。
- 高优先级的需求驱动。backlog是一个需求清单。scrum从backlog最上层的高优先级的需求开始开发。
SCRUM 3355
三个角色:
产品负责人(Product Ower)、Scrum Master、Scrum 团队。产品负责人与scrum master不能是同一个人。
三个资产:
Product Backlog、Sprint Backlog、增量(Increment)
五个事件(下文详细解释):
需求梳理会(Backlog Grooming Meeting)、Sprint计划会(Sprint planning meeting)、Scrum每日站会(Daily Standup Meeting)、Sprint评审会(Sprint Review Meeting)、Sprint回顾会(Sprint Retrospective Meeting)
五个价值观:
勇气、专注、开放、尊重、承诺
用户故事
用户故事的优先级基于商业价值。
拟订故事的INVEST原则:
Independent:每个用户故事相对独立,一个用户故事可能有多个功能。
Negotiable:可商量的。具体细节是可以讨论的。
Valuable:有价值的,在故事中的功能能给用户带来什么价值。
Estimable:可估算的。用户故事可以估算,即工作量可估算。
Small:小的。小到每个故事在一个sprint中可以完成。
Testable:可测量的,每个故事必须有相应的验收标准。
3C原则:
Card:写在卡片上。
Conversation:用于对话。
Confirmation:及时确认。
DEEP原则:
Detailed Appropriately:适当细化
Emergent:有限的
Estimated:估算
Prioritized:排序的
价值MoScOW原则:
Must:必须要干
Should:应该干
Could:可以干
Won`t:不用干
验收标准(AC):
验收标准就是一系列可以接受的验收条件或者业务规则,且与功能或feature相互匹配和满足,同时也能被产品负责人和相关人接受。验收条件可作为验收测试用例的具体例子。这也是我们常说的实例化需求,也是为了避免误读,让抽象的需求变得具体和可测试。
五个事件
需求梳理会(Backlog Grooming Meeting)
输入:product backlog
工具和技术:会议(product ower 、scrum master、scrum team)、时间(当前sprint结束前两三天)
输出:sprint backlog粗略
Sprint 计划会(Sprint planning meeting)
输入:spring backlog粗略
工具和技术:会议(product ower 、scrum master、scrum team)、时间(当前sprint结束前两三天)
输出:spring backlog完整
Scrum每日站会(Daily Standup Meeting)
三个问题:昨天干了什么,今天预订干什么,遇见了什么问题。
Sprint评审会(Sprint Review Meeting)
scrum团队向po展示sprint的成果。
- 以用户故事的方式展示而不是以功能的方式展示。
- 团队成员轮流向po讲解。目的:加强每个团队成员对项目的了解程度。可以抵御相关关系人离开时的风险。
Sprint回顾会(Sprint Retrospective Meeting)
输入:sprint中各种事务
工具和技术:反省会。每个迭代最后的一个活动。总结迭代中好的地方,不好的地方,应该保持的问题。
输出:具体的改善方案。比如:xxx在某个时间内将xxx这件事改善到某种程度。