Ci Presentation for SPIN

31
Eric Pugh Richmond Continuous Integration - A Framework for Better Quality Software Richmond SPIN May 13th, 2009 1

Transcript of Ci Presentation for SPIN

Page 1: Ci Presentation for SPIN

Eric Pugh Richmond

Continuous Integration

- A Framework for Better Quality Software

Richmond SPIN

May 13th, 2009

1

Page 2: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

Principal of OpenSource Connections

Contributer to CruiseControl and Continuum CI projects

Member of Apache Software Foundation

Presenter at many conferences including OSCON, ApacheCON, jTDS, ExpoQA

Fascinated by the art of software development

Who am I?

2

Page 3: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

What are we talking about?

What is CI?

Why does it matter to me?

What do I need to use CI?

Demonstration of Hudson

Where does CI fit into the SPIN World?

Questions!

3

3

Page 4: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

What is Continuous Integration?

http://martinfowler.com/articles/continuousIntegration.html

From Martin Fowler:

“a fully automated and reproducible build, including testing, that runs many times a day”.

4

4

Page 5: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

Rapid Feedback

< 10 minutos

5

Page 6: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

How is CI important to different members of a team?

6

6

Page 7: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

Life of a programmer without CI...

Unstable code, integration is difficult

Many build errors reported

Only one person on the team can build the entire project

Demonstrations require extensive planning

Feedback cycle is long

Every day is a struggle to be productive

7

7

Page 8: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

Life of a programmer with CI...

The build process is simple and repeatable

Elimination of Human Error

Demo’s are quick and easy

Feedback cycle is very rapid

Every day you know you can code!

8

8

Page 9: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

For a tester

What is in the build?

What has changed between builds?

How do I verify functionality?

control

9

9

Page 10: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

For a Project Manager

Visibility

10

10

Page 11: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

For a Project Manager

11

11

Page 12: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

For a development team

security

12

12

Page 13: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

For a development team

13

13

Page 14: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

For a development team

14

14

Page 15: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

For a development team

15

15

Page 16: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

What is needed to get started?

A dedicated machine

Source Control

Automated Build Script

Method of notification

16

16

Page 17: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

What are the challenges to using CI?

17

17

Page 18: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

Challenge One: Cultural Change

CI needs a champion who acts as the ambassador to the leaders of the organization.

Thought leaders in the organization who can help encourage developers to accept the process changes that CI brings

A very successful test case

¿A greenfield project if possible?

18

18

Page 19: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

Challenge Two: Environmental Difficulties

All the tests should be true unit tests, not integration tests

Few or no external dependencies

A beefy build server...

A strategy for deploying code into the CI environment

Database changes are SIMPLE

19

19

Page 20: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

Challenge Three: Project Characteristics

Fewer branches to the code makes life easier

Many small code changes. Code is committed throughout the day.

There are good unit test coverage.

The code is ready for deployment, not in pieces.

20

20

Page 21: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

Challenge Four: Stability of CI Tool

The CI system must be as well maintained as the Source Control system.

The CI system performs builds very quickly.

Who has responsibility for CI? It’s very important to have a “throat to choke”.

No false alarms. If there are false alarms then the developers lose confidence in the CI system.

X

21

21

Page 22: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

Demo of Hudson

22

22

Page 23: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

Where does CI fit into the SPIN World?

23

23

Page 24: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

CI Maturity Model?

Fewer branches to the code makes life easier

Many small code changes. Code is committed throughout the day.

There are good unit test coverage.

The code is ready for deployment, not in pieces.

24

http://www.anthillpro.com/blogs/anthillpro-blog/2009/05/05/1241542860000.html

24

Page 25: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

Virtuous Circle?

Metrics are hard to get

Developers rebel against on high management

Need good processes that support and encourage other good processes

25

25

Page 26: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

HackyStat

26

26

Page 27: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

Test Automation

CI increases the rewards for doing test automation

unit

integration

functional?

system?

27

27

Page 28: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

Where to next?

Continuous Integration: Improving Software Quality and Reducing Risk

CITConf is the conference for CI. This year it was April 24, 25 in Minneapolis, MN.

28

Take a handout with reference links!

28

Page 29: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

Matrix of 22 differences in CI systems

29

http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix

29

Page 30: Ci Presentation for SPIN

Continuous Integration RICHMOND, May 13, 2009

Why CI?

Eliminate human errors

Tests that run frequently are more valuable

A CI system is the foundation of a project status dashboard

Eliminate integration problems!

30

30

Page 31: Ci Presentation for SPIN

Eric Pugh [email protected] RICHMOND

May 13th, 2009

31