Continuous Integration with TeamCity and Octopus

Why Continuous Integration

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 to detect integration errors as quickly as possible.

~Fowler

I have found most developers have a  good intellectual understanding for the process of implementing Continuous Integration (CI) in their development practices.  However, like Agile, unit testing, and unicorns they view CI as a mythical creature that exists only in the rainbow blogs of Silicon Valley startups.

Part of this gap exists because of a fundamental  misunderstanding of the value of CI.   CI is more than simply a time saving device meant to eliminate manual steps.  CI’s value is actually a logical extension of capital ‘A’ Agile.  Good CI allows developers to create software in a very fast build, deploy, test cycle and adjust direction based on observed outcomes.  It is the “Empirical Process Control” my friend Larry Johnson regularly reminds me about.  It is the ability to gather data early in the development process and change course quickly based on what we have learned.

Continuous delivery means minimizing lead time from idea to production and then feeding back to idea again

~Rolf Andrew Russell

Read on for a deep dive on how the Ticketmaster Resale team integrated Continuous Integration principles into their own development best practices… Continue reading