Impact of Continuous Integration on Team Culture

Posted April 14, 2011 by Naresh Jain

Better productivity and collaboration via improved feedback and high-quality information.
Continuous Integration

Impact of Continuous Integration on Team Culture:

  • Encourages an Evolutionary Design and Continuous Improvement culture
  • Team takes shared ownership of their development and build process
  • The source control trunk is in an always-working-state (avoid multiple branch issues)
    • No developer is blocked because they can't get stable code
  • Developers break down work into small end-to-end, testable slices and check-in multiple times a day
    • Developers are up-to date with other developer changes
    • Team catches issues at the source and avoids last-minute integration nightmares
    • Developers get rapid feedback once they check-in their code
      • Builds are optimized and parallelized for speed
      • Builds are incremental in nature (not big bang over-night builds)
      • Builds run all the automated tests (may be staged) to give realistic feedback
      • Build results and logs are captured and visualized very effectively
      • Various source code quality metrics trends are displayed, such as code coverage, cyclomatic complexity, coding convention violations, version control activity, bug counts, etc.
  • Influence the right behavior in the team by acting as Information Radiator in the team area
    • Provide clear visual feedback about the build status
  • Developers ask for an easy way to run and debug builds locally (or remotely)
  • Broken builds are rare. However broken builds are rapidly fixed by developers
    • Build results are intelligently archived
    • Easy navigation between various build versions
    • Easy visualization and comparison of the change sets
  • Large monolithic builds are broken into smaller, self contained builds with a clear build promotion process
  • Complete traceability exists: Version Control, Project & Requirements Managements tool, Bug Tracking and Build system are completely integrated
  • CI page becomes the project dashboard for everyone (devs, testers, managers, etc.)

Any other impact you think is worth highlighting?