by Paul Stack
This session will focus on the practices needed to implement a good continuous delivery system as an extension of a CI process. It will touch, very briefly on CI and how a good CI setup is needed as a precursor for continuous delivery. The session will then talk about what benefits continuous delivery will give us and some potential strategies to overcome the pitfalls and the obstacles of moving a team towards a continuous delivery environment.
Managing change is a crucial part of building software. Mastering the source control tool Mercurial will help you gain significant insight into how your code is changing. That insight will allow you to track down bugs, remove duplication, discover refactorings, and maintain quality. We'll do a quick tour of basic Mercurial, then dive into its more advanced features. While advanced, they are still practical enough to be used during your day to day development. Essential features we'll discuss include named branches, Mercurial Queues, the record extension, aliases, shell functions, log acrobatics, blame, and sub repos. Though the topic here is Mercurial, the practices and concepts also apply to Git.
I think it's safe to say that at this point, having SOME sort of automated testing for your application is considered a best practice. Unfortunately, creating a testable application is like having 6-pack abdominal muscles: everyone wants them but few are willing to put in the hard work to make it happen. This talk will approach the idea of Test-Driven Development / Behaviour-Driven Development from a different angle, instead taking a look at strategies for structuring your application is such a way that continuous integration and delivery of your application is not only possible but easily achievable. We will start by looking at anti-features of an application: ways of building things that make them very difficult to test. From there we will progress onto things like Demeter's Law, dependency injection and how to create the complementary infrastructure to test your application. Finally we will focus on building your confidence level with respect to flawless deploys from "all hands on deck, we're deploying" to "that's the 12th change we pushed into production today".
by Colin Bowern
How do you deploy database changes with your web application today? Are you still rolling scripts by hand to move your database from one version to the next? In this session we will take a look at how to manage database schema changes in your web application through exploring the change lifecycle. We will take first version application and walk through the upgrade process showing you the tools and techniques needed to keep your schema changes reliable and consistent.
11th–13th January 2012