Large-Scale Adoption of Hudson
This talk explores three different conceptual frameworks for imagining the rollout of Continuous Integration across a large organization. The first dimension looks at the Hudson platform and describes the model in terms of developer responsibilities, release engineering functions, and dev ops. By mapping these responsibilities to Hudson concepts such as jobs, plugin management, and Nodes, it was possible to use the platform metaphor as a means of describing the relationships between these organizations. Teams looking at Hudson for the first time, may be surprised by the richness of the model and it's utility in describing relationships within a large technical organization. The examples are drawn from a rollout across a very large organization (several thousand technical staff).
The second dimension looks at Continuous Integration as a form of signal processing. Working on a system that integrates thousands of binary artifacts involves large, noisy streams of data. We should be asking our continuous integration systems to enhance the intelligence of our release processes by aiding in the discovery of important signals in these channels. We will present a model of "learning" that proved to be useful in this context.
Finally, it's useful to look at adoption of Continuous Integration as fulfilling a sort of hierarchy of needs (for the psychologists). While it starts as a collection of negative feedback loops, there are various stages of growth as teams begin to rely on the system for it's ability to define stable configurations, and more importantly, for it's ability to safely explore new configurations. Components at different levels in the stack differ in how much effort has to be placed in protecting their ability to innovate.