Continuous Delivery Part II: components, going live, agile infrastructure, databases, organisational transformation
ÜberConf
Denver · July 12 - 15, 2011
About this Presentation
In the 3rd 1h30, we will discuss componentised or service architectures, patterns for low-risk releases, and agile infrastructure management.
In the 4th 1h30, I cover data management and organizational transformation. If there's time, there will be a bonus session on architectural patterns.
Getting software released to users is often a painful, risky, and time-consuming process. This tutorial sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and operations, delivery teams can get changes released in a matter of hours–sometimes even minutes–no matter what the size of a project or the complexity of its code base.
In the second half of the tutorial, we introduce agile infrastructure, including the use of Puppet to automate the management of testing and production environments. We'll discuss automating data management, including migrations. Development practices that enable incremental development and delivery will be covered at length, including a discussion of why branching is inimical to continuous delivery, and how practices such as branch by abstraction and componentization provide superior alternatives that enable large and distributed teams to deliver incrementally.

Author of 'Continuous Delivery'
Jez Humble is a Principal Consultant with ThoughtWorks, and author of Continuous Delivery, published in Martin Fowler's Signature Series (Addison Wesley, 2010). He got into IT in 2000, just in time for the dot-com bust. Since then he has worked as a developer, system administrator, trainer, consultant, manager, and speaker. He has worked with a variety of platforms and technologies, consulting for non-profits, telecoms, financial services, and online retail companies.
Since 2004 he has worked for ThoughtWorks and ThoughtWorks Studios in Beijing, Bangalore, London, and San Francisco. His focus is on helping organisations deliver valuable, high-quality software frequently and reliably through implementing effective engineering practices in the field of Agile delivery. He also serves as Product Manager for Go, ThoughtWorks Studios agile release management platform. He holds a BA in Physics.
Software Passion: Helping organizations release useful, high quality software fast through better collaboration and automation. Writing small, useful libraries. Being a loudmouth.