10.
Continuous delivery is a pattern language in growing use in software development to improve the process of software delivery. Techniques such as automated testing, continuous integration, and continuous deployment allow software to be developed to a high standard and easily packaged and deployed to test environments, resulting in the ability to rapidly, reliably and repeatedly push out enhancements and bug ﬁxes to customers at low risk and with minimal manual overhead. ~wikipediacredit: Stewart, redgen (ﬂickr)

58.
4. Cut-off writes to old versionAfter running on the new table for a signiﬁcant amountof time, we can cut oﬀ writes to the old table.“write_prefs_to_user_prefs_table” => “oﬀ”“write_prefs_to_users_table” => “on”“read_prefs_from_users_table” => “on”

62.
We might remove conﬁg ﬂags for the old version when...It is no longer valid for the business.It is no longer stable, maintained, or trusted.It has poor performance characteristics.The code is a mess, or diﬃcult to read.We can aﬀord to spend time on it.

74.
“Where a new system concept or new technology is used, one has to build asystem to throw away, for even the best planning is not so omniscient as toget it right the ﬁrst time. Hence plan to throw one away; you will, anyhow.” ~ Fred Brooks, The Mythical Man-Month

107.
Tighten your feedback cyclesIntegrate with production and validate early in cycle.Use tools that allow you to detect issues early.Optimize for quick response times.Applied to both feature development and operability.

108.
Thank you ... and questions?These slides will be available later today at http://mikebrittain.com/talks Mike Brittain ENGINEERING DIRECTOR @mikebrittain mike@etsy.com