26
Eric Pugh Richmond CI Presentation January 14th, 2009

Ci Presentacion

Embed Size (px)

DESCRIPTION

English version of a presentation on the benefits, and challenges, of using CI.

Citation preview

Page 1: Ci Presentacion

Eric Pugh Richmond

CI Presentation

January 14th, 2009

Page 2: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

Principal of OpenSource Connections

Contributer to CruiseControl

Member of Apache Software Foundation

Presenter at many conferences including OSCON, ApacheCON, jTDS

Fascinated by the art of software development

¿Who am I?

Page 3: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 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

¡Questions!

3

Page 4: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

¿What is Continous Integracion?

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

From Martin Fowler:

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

4

Page 5: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

Rapid Feedback

< 10 minutos

Page 6: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

¿How is CI important to different members of a team?

6

Page 7: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 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

Page 8: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

Life of a programmer with IC...

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

Page 9: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

For a tester

¿What is in the build?

¿What has changed between builds?

¿How do I verify functionality?

control

9

Page 10: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

For a Project Manager

Visibility

10

Page 11: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

For a Project Manager

11

Page 12: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

For a development team

security

12

Page 13: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

For a development team

13

Page 14: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

For a development team

14

Page 15: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

For a development team

15

Page 16: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

¿What is needed to get started?

A dedicated machine

Source Control

Automated Build Script

Method of notification

16

Page 17: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

¿ What are the challenges to using CI?

17

Page 18: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

Challenge One: Cultural Change

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

Thoughtleaders 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

Page 19: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

Challenge Two: Environmental Difficulties

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

Few or no external dependencies

A beefy build server...

A strategy for deploying code into the CI environment

Database changes are SIMPLE

19

Page 20: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 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

Page 21: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

Challenge Four: Stability of CI Tool

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

THe CI system can do 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

Page 22: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

Demo of Hudson

22

Page 23: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

¿Where to next?

Continuous Integration: Improving Software Quality and Reducing Risk

CIGuys.com (??)

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

23

Page 24: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 2009

Matrix of 22 differences in CI systems

24

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

Page 25: Ci Presentacion

Continuous Integration RICHMOND, January 14th, 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!

25

Page 26: Ci Presentacion

Eric Pugh [email protected] RICHMOND

January 14th, 2009