- Introduction to Continous Delivery
- The Death of Continuous Integration Steve Smith
- Testing in Production
Benji Weber & Alex Wilson Unruly
- Wading through treacle? Escape the integration syrup with contract tests
Stefan Smith ThoughtWorks Ltd (UK)
- Tests @OpenTable. Look mum I just released some code!
Marcin Bazydlo & Michael Wallett
Dave Farley is co-author of the Jolt award winning book ‘Continuous Delivery’ and one of the authors of the ‘Reactive Manifesto’. He has been having fun with computers for over 30 years. Over that period he has worked on most types of software, from firmware, through tinkering with operating systems and device drivers, to writing games, and commercial applications of all shapes and sizes.
He started working in large scale distributed systems about 25 years ago, doing research into the development of loose-coupled, message-based systems – a forerunner of MicroService architectures. He has a wide range of experience leading the development of complex software in teams, both large and small, in the UK and USA. Dave was an early adopter of agile development techniques, employing iterative development, continuous integration and significant levels of automated testing on commercial projects from the early 1990s.
Steve Smith @AGILESTEVESMITH
As delivery teams mature and adopt Continuous Delivery they will explicitly discard practices that have become more costly over time. However, many teams today are implicitly discarding Continuous Integration, due to ever-easier Feature Branching and an under-appreciation of Trunk Based Development. What are the consequences of this Continuous Isolation trend for agile development and Continuous Delivery?
In this talk Steve Smith will describe how ever-better Feature Branching tooling has harmed Continuous Integration, compare the cost vs. value of Feature Branching and Trunk Based Development, and explain why Continuous Delivery without Continuous Integration is asking for trouble.
Steve Smith is an Agile consultant and Continuous Delivery specialist at Always Agile Consulting Ltd. An XP / Lean developer with 10+ years of experience in enterprise software development in Britain and New Zealand, Steve favours practices such as Pair Programming and Test-Driven Development to build quality into software products. As an early adopter of Continuous Delivery he has overseen transformation programmes in multiple organisations to reduce lead times and increase product revenues. // Steve is a co-author of the Continuous Delivery and DevOps book “Build Quality In“, a co-organiser of London Continuous Delivery meetups and the annual PIPELINE conference, and a regular speaker at conferences such as Agile On The Beach and QCon New York.
Benji Weber & Alex Wilson Unruly
Testing in production used to be taboo – a sign that you had a lax attitude to QA. Now it is increasingly accepted that the opposite is true, and that if you only test your system in artificial environments you don’t really know it works.
We’ll show the tools and techniques we use to test feature functionality, performance, and failure scenarios in production.
We’ll see some examples of the benefits we have experienced from testing in production – not limiting ourselves to just using live data, we deliberately avoid test environments and deploy changes straight to live – the only real source of truth about our application’s behaviour.
We’ll also show you the tools and techniques we use to test feature functionality, performance, and failure scenarios in production ranging from increasing the throughput of our systems as a live load-test to deliberately introducing malfunctioning and badly behaved software as error simulations.
“Shake the production tree, and see what falls out”.”
Benji Weber is a generalist developer at Unruly, where he leads an extreme programming team building a programmatic advertising platform using Java, and a sprinkling of other languages. Benji is enthusiastic about anything that helps build valuable and reliable software fast, including domain driven design, continuous deployment, and infrastructure automation.
Alex Wilson has been a software developer at Unruly for approaching 3 years, during which time he has had the opportunity to experience and conquer different scaling issues. He takes particular joy in both the application of Continuous Delivery principles, and pushing the boundaries of XP through testing in production and mob programming.
Stefan Smith ThoughtWorks Ltd (UK)
How can teams that develop collaborating services get features out quickly when they face time-consuming integration testing?
Contract tests capture the agreements between services and consumers. They provide fast, lightweight verification of service behaviour, giving teams early feedback about oncoming danger.
I’ll share my experiences and explain how contract tests decouple the delivery activities of collaborating teams, enabling rapid delivery without sacrificing quality.
Are your competitors getting features to market before you? Are you to blame? What about the systems you integrate with?
Building distributed systems out of collaborating services can entail time-consuming steps on the path to production. So how can teams that develop these services get features out quickly and reliably?
When collaborating teams integrate their services, they observe the process is only as fast as the slowest common activity (typically manual regression testing). Queues develop as teams wait to get their features into the next release. To make matters worse, shared test environments are often slow, unpredictable or simply unavailable.
Even when a single team develops all the services, bottlenecks appear as their numbers increase. Long delays result from testing and deploying a fixed set of component versions as a single batch. To go faster, a team may seek to promote and release components independently but how do you know that services, never tested together, will work together?
“Contract tests” capture the implicit agreements between services and consumers in the form of executable tests. They provide fast, lightweight verification of service behaviour, allowing teams to communicate across silos, providing them with early feedback and alerting them to oncoming danger.
In this talk, I’ll share my experiences and we’ll look at how contract testing can decouple the delivery activities of collaborating teams. We’ll see how this can accelerate your delivery pipeline, so you can get features to users as fast as possible, without sacrificing quality.”
Stefan is a Lead Consultant at ThoughtWorks where he works as a tech lead, developer and mentor. He’s worked in software development for nine years, five with Agile/XP, and spends most of his time enabling continuous delivery, developing distributed systems, writing code and guiding teams.
Stefan is a polyglot programmer with interests in Lean, Systems Thinking, Theory of Constraints, and Evolutionary Architecture. He loves working with enthusiastic people who come together to deliver the right thing, quickly. He’s passionate about building quality in from the start, minimising technical debt, sharing ideas and learning from others.
Tests @OpenTable. Look mum I just released some code!
Marcin Bazydlo OpenTable
We deploy new code to production many times every day (think of continuous delivery style). To ensure consistent high quality and reliability of our applications, we rely on multiple levels of automated tests. Let us share with you our deployment pipeline setup and monitoring practices.
We will follow our process from the code change on a developer machine all the way to production and beyond. This talk is high level overview of how we work and what processes we follow. We will share some of the best practices we learned and how this setup is influencing our daily work. We are confident enough to deploy our code Friday evening. Just saying.
Marcin Bazydlo – Senior Engineer at OpenTable. Marcin is a passionate programmer focused on delivering value at OpenTable, influencing both the architecture of the web services as well as the end product. He has written research papers on designing replication and load balancing algorithms for REST services. Marcin was responsible for organising Poznan Free Software Conference (PIWO). He is frequently involved in different developers community actions.