This document discusses eXtreme Programming and continuous integration. It explains that continuous integration helps manage technical debt by integrating code changes frequently through processes like committing code daily and ensuring every commit builds successfully. This allows issues to be identified and addressed early. The document provides patterns for continuous integration, such as committing code often, making each commit trigger an automated build, keeping builds fast, and ensuring all team members can see build status. It emphasizes writing unit tests and acting quickly on test build failures to fix issues easily. Continuous integration helps reduce integration problems and get early feedback to improve code quality.
4. eXtrem Programming
On-site Customer
Coding Metaphor
Standards Refactoring
Le client L’équipe Le code L’équipe Le client
Acceptance Unit Tests Pair Release
Tests Programming Planning
Continuous Collective
Integration Simple Design Ownership
Sustainable
Pace
Small Releases
11. CI patterns
• Commit more often
• Every commit builds
• Keep build fast
• Everyone sees what’s happening
12. Commit more often
• At least once a day
• Small unit of work
• Update first to commit cleanly
13. Every commit builds
• It’s all about fast feedback
• Small changes
• Less to merge and/or fix
14. Keep build fast
• If it breaks, you find out about while it’s still fresh
• Keep up with frequent check-ins
• When build isn’t fast enough :
15. Everyone sees what’s happening
• Reduce time to fix
• No excuse to check in on broken build
• It’s not about blame, it’s about feedback
16. Now, what should we do ?
• Write Unit tests
• So we really get useful feedback
• Update and commit frequently
• So we don’t have to perform painful merges anymore
• Act quickly upon feedback on Unit tests builds
• So fixing is easy
20. The big picture of CI
Test servers
Binaries repository
Continuous Developper
Dashboard
Integration
Build tool
SCM
21. Objectives!
• Every project has a green (blue) build with
compilation and unit tests.
• Each broken build should be repaired in less than 15
minutes.