Tom Sulston, Lead Consultant, ThoughtWorks UK

Tom Sulston

Biography: Tom Sulston

Tom Sulston works for ThoughtWorks in London. He is a consultant in the build and release space and loves the whole DevOps thing. He has previously spoken at Agile and XP conferences on continuous integration tools & build pipeline practices. Tom lives in Geneva and spends too much time in airports.

Presentation: "DevOps Counseling: 10 ways to help your Dev and Ops people resolve their differences and learn to love each other again"

Track: Dev and Ops / Time: Wednesday 14:05 - 15:05 / Location: Falconer Salen

One of the practices encouraged by DevOps is the creation of cross-functional delivery teams that contain all of the skills necessary to bring software from concept to production. In the enterprise, unfortunately, development and operations teams have historically been separate groups; each with their own management, reporting, tools, and practices. Bringing these teams closer together involves a clash of cultures & values that can be both disheartening and unhelpful.

In this session, I propose my top ten tips for helping development and operations people overcome their differences and start truly collaborating on the practices necessary to create and run great software.

Workshop: "Continuous Delivery"

Track: Agile from the Outside / Time: Monday 09:00 - 16:00 / Location: Falconer Salen

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 this tutorial we take the unique approach of moving from release back through testing to development practices, analyzing at each stage how to improve collaboration and increase feedback so as to make the delivery process as fast and efficient as possible. At the heart of the tutorial is a pattern called the deployment pipeline, which involves the creation of a living system that models your organization's value stream for delivering software. We spend the first half of the tutorial introducing this pattern, and discussing how to incrementally automate the build, test and deployment process, culminating in continuous deployment.

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.