17
6年一线敏捷实践心得分享之持续集成 秦之远

Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)

Embed Size (px)

DESCRIPTION

秦之远,诺基亚西门子持续集成Product Owner,敏捷过程改进执行者。秦之远目前负责诺基亚西门子两个大型WCDMA 3G通信平台的持续集成和交付。 2007~2011年,秦之远主导了下一代WCDMA 3G通信平台持续集成和交付转型,产品发布后,质量问题仅为同类产品的30%~40%,他因此赢得了2011年诺基亚西门子Service Excellence Award冠军。 秦之远于2006年加入诺基亚第一个敏捷团队(当时团队主要成员有:吕毅,窦涵之,李程远,徐毅),他先后担任了测试驱动开发教练(TDD Coach)、Scrum Master、持续集成technical leader、产品缺陷管理经理、持续集成Product Owner。 秦之远毕业于北京邮电大学,曾就职于华为、诺基亚和诺基亚西门子。 话题介绍: 2008~2009年,我们和研发团队一起,用了1年时间把诺基亚西门子下一代WCDMA 3G通信平台转型为每日发布(SCM,过程改进,测试自动化, CI)。2009~2012,我们经历了平台扩张,人员扩招,客户增长,时至今日我们仍然具备每日发布的能力。在此过程中,持续集成如何不断深入改进?我们一起回顾这段历史: 1.2007 30人研发团队持续集成: 失败案例 2.2008~2009 80人以下研发团队的持续集成: CI 1.0 3.2009~2011 80~200人研发团队的持续集成: CI 2.0 4.2011~未来 500以上研发团队的持续集成: CI 3.0

Citation preview

Page 1: Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)

6年一线敏捷实践心得分享之持续集成

秦之远

Page 2: Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)

Continuous integration and

development process

Page 3: Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)

Self introduction 秦之远 Nokia Siemens CI product owner

• Lead continuous delivery transformation for NSN WCDMA

3G platform department(400~500 persons currently)

• Starting scrum from 2006

• TDD coach & Linux programmer

• Focus on test automation

WEIBO : http://www.weibo.com/loveatbupt

Page 4: Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)

continuous integration technical areas continuous integration execution areas

topic today

Page 5: Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)

Iterative development story

10 tons apple

Iterative development

Iterative items

Page 6: Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)

Iterative development story

Empty

All iterative items are done

6 tons

Where is the other 4 tons apple?

Page 7: Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)

Iterative development story

Where is the other 4 tons apple?

• Quality leak

• Technical debt

Page 8: Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)

More teams turn to be

maintenance team !

Page 9: Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)

Iterative development story

Small change, less risk

Integrate earlier

Page 10: Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)

CI precondition

SCM

Product code repository management

Version control

Automatically release & deploy

Compiler & compile server

Product compilation architecture

Basic

Unit test/Unit test coverage

Visibility of SW code quality

Cluster compilation

Incremental compilation

Advanced

Page 11: Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)

CI precondition

Test automation

TA tool/case implementation

TA case admission control for CI

Avoid the duplexity of TA case in different teams

TA coding style

Basic

Modularity of TA self

Visibility of TA cases’ metrics / static analysis

Classification/management of TA cases.

TA testing strategy

Advanced

Jenkins & Plug-in development skill

Page 12: Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)

R&D I&V

Grooming

ATDD

CI precondition

Preferred agile practice

Requirement

Coding UT TDD

CI

I

II II

III III

Page 13: Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)

A failed CI development process

Check out

Develop Pre-compile

Pre- UT & FT check in

I

II

III

IV V

trunk

Product CI

Compile &

FT

VI

is not really followed

because of no visibility, that’s

why the book fails

IV III

build x build x + 1

Page 14: Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)

CI 1.0 development process

token CI system

Check out

Develop Pre-compile

Pre- UT & FT

token

merge

I

II

III

IV V

trunk

build x build x + 1

VII

PCI success then

release to B

Product CI

Compile &

FT

VI

VII

Page 15: Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)

CI 2.0 development process

multi-stage CI & promotion

check in

component CI (based on build x)

check in

component CI (based on build x)

check in

component CI (based on build x)

trunk

Pending Queue

promote promote promote

trigger

I I I

II II II

III

Product CI

build x build x + 1

IV

sync

fail & rollback

dependency

management

Page 16: Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)

2

check out/in

define quality target

coding style

static analysis

unit test

I

set quality target

on CI 3.0

component CI-n component CI-1

II

CI 3.0 analysis center

III

duplex increase 2.5% complex increase 2.7%

UT coverage decrease 5%

IV

trunk

Promote

when

clean code

V

product CI

VI merge

CI 3.0 development process

continuous quality improvement

Page 17: Scrum Gathering 2012 Shanghai 精益与持续改进分会场:6年一线敏捷实践心得分享之持续集成(秦之远)

Q&A

Thank you