Jez Humble talks on the importance of Continuous Delivery for a business, outlining the foundational principles and practices to be implemented for a successful CD, explaining how to do continuous integration, various ways of testing, canary releasing, and migrating data.
Ashish Kumar presents how Google manages to keep the source code of all its projects, over 2000, in a single code trunk containing hundreds of millions of code lines, with more than 5,000 developers accessing the same repository.
Rolf Russell & Andy Duncan discuss how to have rapid and reliable releases from the perspective of build, release, and devops, considering the relationship between the teams involved, the metrics needed to measure the performance achieved, the required skills, and the need to remove waste and bottlenecks.
Robert C. Martin, during his keynote at QCon London 2010, tried to figure out why there is so much bad code written. He offers advice on writing good code talking about a bad code example, Boy Scout rule, functions, arguments, craftsmanship, TDD, continuous integration, pairing, small cycles, patterns, engineering, certification, and other elements contributing to qualitative code.
The basis of Agile engineering practices is reproducibly building from source code. If software is delivered on servers, and those servers can’t be reproducibly deployed from bare metal to working services, how Agile can you be? Continuous Integration is great, but what about Continuous Delivery? This talk outlines innovations in tools, process, planning and culture emerging at the front lines.
Dan North discusses an example of rearchitecting an application without rewriting it from scratch, and explains general strategies for a holistic rearchitecture such as changing the team culture, removing obsolete technologies, allowing mistakes to be made (and learned from), transitional architectures, introducing bounded contexts, refactoring and emergent simplicity, and rotating through roles.
Many organizations will tell you that they are "doing" continuous integration. A boat anchor of a PC in the corner running an old version of CruiseControl might tick a few boxes, but is it really effective? As we get better at CI, we should see our feedback loop extend out past development. But what strategies do we have for doing this and keeping the feedback loop tight for the developers?
In this presentation from QCon San Francisco 2007, Charles Nutter discusses the Ruby and JRuby featureset, the JRuby compiler, calling Java from JRuby and vice versa, programming Swing with JRuby, JRuby web applications, JRuby on Rails, persistence, build automation, Test-Driven Development and Behaviour-Driven Development.
Juergen Hoeller shares his experiences working on large projects (including his role as chief architect of the Spring Framework) to provide general guidelines on Packaging and package interdependencies, Layering and module decomposition, Evolving a large code base. Juergen will also discuss how tools can play a role in enforcing architectural soundness.