打造面向服务的敏捷团队 Q con-beijing2012

49
乔梁 http://weibo.com/Tony1130 http://www.ContinuousDelivery.info

description

a cast study of agile adoption by continuous delivery within an biggest internet company

Transcript of 打造面向服务的敏捷团队 Q con-beijing2012

Page 1: 打造面向服务的敏捷团队 Q con-beijing2012

乔梁 http://weibo.com/Tony1130

http://www.ContinuousDelivery.info

Page 2: 打造面向服务的敏捷团队 Q con-beijing2012

0

5

10

15

20

2525

3 3.8 3 2.5

Page 3: 打造面向服务的敏捷团队 Q con-beijing2012

这是一个成功案例?

Page 4: 打造面向服务的敏捷团队 Q con-beijing2012

项目背景

Page 5: 打造面向服务的敏捷团队 Q con-beijing2012

V4.3

V2.4

V3.1

Page 6: 打造面向服务的敏捷团队 Q con-beijing2012

V4.3

V2.4

V3.1

Page 7: 打造面向服务的敏捷团队 Q con-beijing2012

V5.3

V2.5

V3.2

V4.3

V2.4

V3.1

V3.8

V1.8

V2.8

Conf_A= 3 Conf_A= 5 Conf_A= 6

Page 8: 打造面向服务的敏捷团队 Q con-beijing2012

需求不断 问题不断

响应不及时 项目总延期

进度不可预期 项目周期长 插入事件多

系统越来越混乱 维护代价越来越大

Page 9: 打造面向服务的敏捷团队 Q con-beijing2012

不再重蹈覆辙

Page 10: 打造面向服务的敏捷团队 Q con-beijing2012

敏捷101

产品化

服务化

3月

7月

11月

Page 11: 打造面向服务的敏捷团队 Q con-beijing2012

分析 开发 测试

分析 开发 测试

分析 开发 测试

1 2 n ……

系统测试

试运行

正式上线

n+1 n+2 需求分析 设计

系统测试

开发阶段 测试阶段

敏捷101

Page 12: 打造面向服务的敏捷团队 Q con-beijing2012

为什么呢?

Page 13: 打造面向服务的敏捷团队 Q con-beijing2012

项目交付符合预期

Page 14: 打造面向服务的敏捷团队 Q con-beijing2012

建立新的开发协作流程

Page 15: 打造面向服务的敏捷团队 Q con-beijing2012

建立必备的基础设施

Page 16: 打造面向服务的敏捷团队 Q con-beijing2012

项目计划

需求收集

模块开发 模块联调

测试 试运

行 正式上线

测试

开发阶段 测试阶段

模块开发

分析设计

Page 17: 打造面向服务的敏捷团队 Q con-beijing2012

需求折分与排序估算

http://www.infoq.com/cn/articles/ql-using-sort-method-to-estimate-user-story

Page 18: 打造面向服务的敏捷团队 Q con-beijing2012

项目计划的制订

• 前提假设

• 预留多少Buffer,为什么

分析 开发 测试

分析 开发 测试

分析 开发 测试

测试

1 2 n n+1 BUF

预留

Page 19: 打造面向服务的敏捷团队 Q con-beijing2012

进度跟踪与风险控制

3W

Page 20: 打造面向服务的敏捷团队 Q con-beijing2012

总体项目进程

需求收集 与理解

需求讨论 Story折分

总体设计

总体设计评审

开发 测试

系统测试

工作量估算 总体排期

迭代 上线

Page 21: 打造面向服务的敏捷团队 Q con-beijing2012

开发 测试

迭代流程

选择本次迭代 的Story,初步 分析并记录 Story

开发 迭代回顾

Page 22: 打造面向服务的敏捷团队 Q con-beijing2012

开发 测试

Story开发流程

分析设计、 验收条件 达成共识 本地调试

自动化测试

在测试机进行 自动化用例调试

手工测试

开发

自动化用户 准备与调试

本地演示

简单验收

提交代码

提交自动化 测试用例

CI通过 各级测试

提测

部署至 系统测试 环境

Page 23: 打造面向服务的敏捷团队 Q con-beijing2012

本地环境 开发用

测试环境 Localbuild.sh

SVN Hudson

Localbuild.sh

Page 24: 打造面向服务的敏捷团队 Q con-beijing2012

Tips

Page 25: 打造面向服务的敏捷团队 Q con-beijing2012

• 合理的业务目标

• 透明的项目计划

• 团队是工作流程的Owner

• 回顾会议不可裁剪

• 持续集成和自动化测试是基础

Page 26: 打造面向服务的敏捷团队 Q con-beijing2012

阶段二:产品化

Page 27: 打造面向服务的敏捷团队 Q con-beijing2012

1. 有规律地短周期发布

2. 质量不降低

3.减少测试人力投入

Page 28: 打造面向服务的敏捷团队 Q con-beijing2012

“项目”消失了

Page 29: 打造面向服务的敏捷团队 Q con-beijing2012

One Product Backlog

Release 2: (x年x月x日) Story A, B, C, D Release 3: Story E, G, K Release 4: …… Release 8: Feature F, H, I

Page 30: 打造面向服务的敏捷团队 Q con-beijing2012

自动化与配置管理

Page 31: 打造面向服务的敏捷团队 Q con-beijing2012

产品的SVN目录整理

模块的SVN目录整理

产物的目录结构

Page 32: 打造面向服务的敏捷团队 Q con-beijing2012

Personal Test System

Test

Explore

Test

Capacity

Test Go live

Page 33: 打造面向服务的敏捷团队 Q con-beijing2012

Module A

B

C V6.0

Page 34: 打造面向服务的敏捷团队 Q con-beijing2012

• 质量优先原则

• 运维需求的优先级提高

• RD/QA/OP沟通常态化

Tips

Page 35: 打造面向服务的敏捷团队 Q con-beijing2012

阶段三:服务化

Page 36: 打造面向服务的敏捷团队 Q con-beijing2012

V6.0

Page 37: 打造面向服务的敏捷团队 Q con-beijing2012

V6.0

Page 38: 打造面向服务的敏捷团队 Q con-beijing2012

V6.0

Page 39: 打造面向服务的敏捷团队 Q con-beijing2012

共性服务与个性化的平衡

Page 40: 打造面向服务的敏捷团队 Q con-beijing2012
Page 41: 打造面向服务的敏捷团队 Q con-beijing2012
Page 42: 打造面向服务的敏捷团队 Q con-beijing2012

Tips

Page 43: 打造面向服务的敏捷团队 Q con-beijing2012

需求一直会有, 就看你怎么对待它

Page 44: 打造面向服务的敏捷团队 Q con-beijing2012

小结

Page 45: 打造面向服务的敏捷团队 Q con-beijing2012

用户故事

完整团队

增量交付

发布计划

迭代开发

用户验收测试

代码规范 开放式 工作环境

持续集成 站立会议

回顾会议 代码集体共有

测试驱动开发

简单设计

重构 结对编程

1

2

3

LEVEL

Page 46: 打造面向服务的敏捷团队 Q con-beijing2012

用户故事

完整团队

增量交付

发布计划

迭代开发

验收测试 代码规范 开放式

工作环境

持续集成 站立会议

回顾会议 代码集体共有

测试驱动开发

简单设计

重构 结对编程

1

2

3

LEVEL

Page 47: 打造面向服务的敏捷团队 Q con-beijing2012

用户故事

完整团队

增量交付

发布计划

迭代开发

验收测试 代码规范 开放式

工作环境

持续集成 站立会议

回顾会议 代码集体共有

测试驱动开发(UT)

简单设计

重构 结对编程

1

2

3

LEVEL

Page 48: 打造面向服务的敏捷团队 Q con-beijing2012

用户故事

完整团队

增量交付

发布计划

迭代开发

验收测试 代码规范 开放式

工作环境

持续集成 站立会议

回顾会议 代码集体共有

测试驱动开发(UT)

简单设计

重构 结对编程

1

2

3

LEVEL

Page 49: 打造面向服务的敏捷团队 Q con-beijing2012

乔梁: http://weibo.com/Tony1130

http://www.ContinuousDelivery.info

Q&A