2. CONTINUOUS WHAT?
DETERMINATION
Martin Fowler
Software engineer, champion of Continuous integration
“Continuous Integration (CI) is a software development
practice where members of a team integrate their work
frequently, usually each person integrates at least daily -
leading to multiple integrations per day. Each integration is
verified by an automated build (including test) to detect
integration errors as quickly as possible. Many teams find that
this approach leads to significantly reduced integration
problems and allows a team to develop cohesive software
more rapidly.”
3. CONTINUOUS WHAT?
DETERMINATION
“CI is about reducing the time between
creating a failure and being able to do
something about it”
6. WHAT WAS BEFORE
LIFE BEFORE CONTINUOUS INTEGRATION
- manual QA
- no unit-testing
- integration hell
- resistance to agile practice in INNOMOS
- 2-3 weeks deployment times
- manual build
7. WHAT'S NOW
LIFE AFTER CONTINUOUS INTEGRATION
- automated tests, minimized time for regression
- unit-tests are running after the build
- integration with every commit
- CI is Agile
- potentially shippable product everyday
- fully automated build
8. CI BENEFITS
...FOR PROJECT MANAGER
- automates the build
- reduced risks, makes deployment more predictable
- immediate feedback when there is a problem
- everyone can see what’s happening in real time
- avoid last minute chaos at release dates
- constant availability of a current build
- potentially shippable product at frequent intervals
- easy-to find builds history
- build are associated with tasks
11. CI BENEFITS
...FOR DEVELOPER
- everyone commits to the mainline everyday
- every commit to the mainline results a build
- code stability
- minimize integration risk
- unit tests had to pass for deploy
- continuous detection and fixing of integration problems
- integration happens before it gets hairy
- automate the deployment
12. CI BENEFITS
...FOR QA
- easier defect diagnostics
- test code as often as needed for early bug detections
- great way to improve quality of the software
- make build self-testing
- qa teams don't wait for new features deployment
- regression tests can be automated up to 100%
13. CI DISADVANTAGES
HARDWARE/SOFTWARE/TEST SUITE
- initial setup time required, as well as the training
to get acquainted with CI server - DONE
- well-developed test-suite required – IN PROGRESS
- requires many resources for CI server - UNRESOLVED
14. WHAT IS BAMBOO
CI SERVER SOFTWARE
About
- 6 years old
- 100+ plugins
- Atlassian leading product
- easy to install and use
Functions
- run builds and tests
- connects issues, commits, test results, and deploys
- configurable build plans and tasks
- easy and better CI
- first-class deployment
- suitable for any language/technology
15. CI IN ACTION
IOS/Android/RoR demos
Demo iOS
- latest build on Marco Polo
- links to issues
- commits
- UI tests
Demo Android
- unit tests
Demo Backend
- RoR tests
16. CONTINUOUS WHAT?
DETERMINATION
“Continuous integration doesn’t get rid
of bugs, but it does make them
dramatically easier to find and remove”