CONTINUOUS INTEGRATION
IMPROVING SOFTWARE QUALITY AND REDUCING RISK
CHAPTER 2
Introducing Continuous Integration
2
INTRODUCTION
A Day in the Life of CI
▸ One of the most significant
problems is assuming
▸ Developing software
requires planning for
change.
▸ CI gives us, the ability to
make changes in our code.
3
WHAT’S THE
VALUE OF
CI?
Reduce Risks
▸ Detection of defects.
▸ Measurement of Software’s
health.
▸ Reduction of assumptions.
4
WHAT’S THE
VALUE OF
CI?
Reduce repetitive processes
▸ Saves time costs and effort.
▸ Automizing CI -> greater
ability to ensure:
▹ Procesess running the same
way every time.
▹ An ordered process is followed.
▹ The process will run every time a
commit occurs in the repository.
5
WHAT’S THE
VALUE OF
CI?
Generate deployable Software
▸ Release deployable software
at any point of time.
▸ Most tangigble asset to
outsiders.
▸ Make small changes to the
source code and integrate
these changes.
6
WHAT’S THE
VALUE OF
CI?
Enable Better Project Visibility
▸ CI provides the ability to
notice trends and make
effective decisions.
Effects:
▸ Effective decisions
▸ Noticing trends
7
WHAT’S THE
VALUE OF
CI?
▸ Establish Greater Product
Confidence
▸ Effective application of CI
practices can provide
greater confidence in
producing a software
product
8
WHAT
PREVENTS
TEAMS
FROM
USING CI?
▸ Increased overhead
maintaining the system.
▸ Too much change.
▸ Too many failed builds.
▸ Additional hardware and
software costs.
▸ Developers should be
performing these activities.
9
HOW DO I GET
TO
“CONTINUOUS”
INTEGRATION?
▸ Identify a process that
requires automation.
▸ Build
▸ Share
▸ Make it continuous
10
Bad move – Attempting to
throw everything to the CI
system
▸ Get it to work first
▸ Get developers using it
▸ Add other automated
processes.
11HOW DO I GET
TO
“CONTINUOUS”
INTEGRATION?
“CI is not just a technical
implementation; it is also an
organizational and cultural
implementation.”
12
The
Evolution of
Integration
CI is simply an advance in the
evolution of integrating software.
13
The
Evolution of
Integration
▸ How Does CI Complement
Other Development
Practices?
▸ The practice of CI
complements other software
development practices.
14
The
Evolution of
Integration
▸ How the practice of CI works
with and improves these
practices:
■ Developer testing
■ Coding standard adherence
■ Refactoring
■ Small releases
■ Collective ownership
15
How Long
Does CI
Take to Set
Up?
▸ Implementing a basic CI
system along with simple
build scripts for a
new project may take you a
few hours to set up and
configure.
▸ For a project already in
progress, it can take days,
weeks, or even months
16
CI and You There are seven practices that
we’ve found work well for
individuals and teams running
CI on a project
17
CI and You ▸ Commit Code Frequently
18
CI and You ▸ Don’t Commit Broken Code
19
CI and You ▸ Fix Broken Builds
Immediately
20
CI and You
▸ Write Automated Developer
Tests
21
CI and You ▸ All Tests and Inspections
must pass
22
CI AND YOU
▸ Run private builds
23
CI AND YOU
▸ Avoid getting broken code
24
WHEN AND
HOW
SHOULD A
PROJECT
IMPLEMENT
CI?
▸ Implement CI early in the
Project.
▸ If not: start small and add
more as time permits.
25
26 THANKS!
Any questions?
▸ Maria Isabel Arcila Franco
▸ Sergio Andrés Rodríguez Galeano

Chapter 2

  • 1.
  • 2.
  • 3.
    INTRODUCTION A Day inthe Life of CI ▸ One of the most significant problems is assuming ▸ Developing software requires planning for change. ▸ CI gives us, the ability to make changes in our code. 3
  • 4.
    WHAT’S THE VALUE OF CI? ReduceRisks ▸ Detection of defects. ▸ Measurement of Software’s health. ▸ Reduction of assumptions. 4
  • 5.
    WHAT’S THE VALUE OF CI? Reducerepetitive processes ▸ Saves time costs and effort. ▸ Automizing CI -> greater ability to ensure: ▹ Procesess running the same way every time. ▹ An ordered process is followed. ▹ The process will run every time a commit occurs in the repository. 5
  • 6.
    WHAT’S THE VALUE OF CI? Generatedeployable Software ▸ Release deployable software at any point of time. ▸ Most tangigble asset to outsiders. ▸ Make small changes to the source code and integrate these changes. 6
  • 7.
    WHAT’S THE VALUE OF CI? EnableBetter Project Visibility ▸ CI provides the ability to notice trends and make effective decisions. Effects: ▸ Effective decisions ▸ Noticing trends 7
  • 8.
    WHAT’S THE VALUE OF CI? ▸Establish Greater Product Confidence ▸ Effective application of CI practices can provide greater confidence in producing a software product 8
  • 9.
    WHAT PREVENTS TEAMS FROM USING CI? ▸ Increasedoverhead maintaining the system. ▸ Too much change. ▸ Too many failed builds. ▸ Additional hardware and software costs. ▸ Developers should be performing these activities. 9
  • 10.
    HOW DO IGET TO “CONTINUOUS” INTEGRATION? ▸ Identify a process that requires automation. ▸ Build ▸ Share ▸ Make it continuous 10
  • 11.
    Bad move –Attempting to throw everything to the CI system ▸ Get it to work first ▸ Get developers using it ▸ Add other automated processes. 11HOW DO I GET TO “CONTINUOUS” INTEGRATION?
  • 12.
    “CI is notjust a technical implementation; it is also an organizational and cultural implementation.” 12
  • 13.
    The Evolution of Integration CI issimply an advance in the evolution of integrating software. 13
  • 14.
    The Evolution of Integration ▸ HowDoes CI Complement Other Development Practices? ▸ The practice of CI complements other software development practices. 14
  • 15.
    The Evolution of Integration ▸ Howthe practice of CI works with and improves these practices: ■ Developer testing ■ Coding standard adherence ■ Refactoring ■ Small releases ■ Collective ownership 15
  • 16.
    How Long Does CI Taketo Set Up? ▸ Implementing a basic CI system along with simple build scripts for a new project may take you a few hours to set up and configure. ▸ For a project already in progress, it can take days, weeks, or even months 16
  • 17.
    CI and YouThere are seven practices that we’ve found work well for individuals and teams running CI on a project 17
  • 18.
    CI and You▸ Commit Code Frequently 18
  • 19.
    CI and You▸ Don’t Commit Broken Code 19
  • 20.
    CI and You▸ Fix Broken Builds Immediately 20
  • 21.
    CI and You ▸Write Automated Developer Tests 21
  • 22.
    CI and You▸ All Tests and Inspections must pass 22
  • 23.
    CI AND YOU ▸Run private builds 23
  • 24.
    CI AND YOU ▸Avoid getting broken code 24
  • 25.
    WHEN AND HOW SHOULD A PROJECT IMPLEMENT CI? ▸Implement CI early in the Project. ▸ If not: start small and add more as time permits. 25
  • 26.
    26 THANKS! Any questions? ▸Maria Isabel Arcila Franco ▸ Sergio Andrés Rodríguez Galeano