If you’re interested in having me talk at a conference, here are the talks I can give. They are all 1h long, including time for questions, although I can make them shorter or longer. You’ll find my bio at the bottom. I also give talks and workshops privately – these need to be arranged through my employer, ThoughtWorks.
Index: Continuous Delivery | Remediation Patterns | The Lean Enterprise | Enterprise DevOps | Creating Maintainable Automated Acceptance Tests | What is Value? | Adopting Continuous Delivery | Stop Hiring Devops Experts (And Start Growing Them) | 21st Century Software Delivery
Businesses rely on getting valuable new software into the hands of users as fast as possible, while making sure that they keep their production environments stable. Continuous Delivery is a revolutionary and scalable approach to software delivery that enables any team, including teams within enterprise IT organizations, to achieve rapid, reliable releases through better collaboration between developers, testers, DBAs and operations, and automation of the build, deploy, test and release process.
I’ll start by discussing the value of CD to the business, inspired by the lean startup movement. I’ll then present the principles and practices involved in continuous delivery, including value stream mapping, the deployment pipeline, acceptance test driven development, zero-downtime releases, and incremental development. I’ll cover how CD is enabled by an ecosystem including Devops, cloud computing, agile testing, and continuous deployment. Finally I’ll talk about how continuous delivery can co-exist with ITIL and compliance in an enterprise environment.
Deployments gone bad are a leading cause of spending your evening or weekend hunched over a terminal instead of outdoors having fun. In this talk I’ll present a number of patterns which reduce the risk of releases, including techniques for zero-downtime releases, roll backs, and roll forwards.
I’ll also discusse how to build reliable releases into your delivery process using automated provisioning, deployment, and smoke testing. By the end of the talk, you will understand how to build delivery systems – and teams – that make broken deployments a rare situation which can be fixed at the push of a button.
Large organizations often struggle to leverage software to create innovative products. This is due to a number of organizational factors, including culture, governance and financial management, and the application of portfolio and program management strategies that do not take advantage of the unique characteristics of software. This talk discusses how to take a lean approach to developing new products and running large scale programs of work, and how to grow a culture that enables organizations to turn software into a competitive advantage.
Agile processes were originally designed to break down the barriers among users, programmers, and testers. Now, DevOps—an emerging set of principles and practices for communication, collaboration, and integration between development and IT operations—seeks to break down the development/operations barriers. By applying agile principles to operations and re-architecting the interfaces between these groups, DevOps empowers organizations to deliver high-value software faster and with fewer errors. In this presentation I will describe how to implement DevOps practices in large enterprises—and small organizations.
Starting with an investigation of the crisis facing large IT departments, I’ll discuss the root causes of operations challenges and how DevOps addresses them. I’ll explore how the guiding principles of DevOps—collaboration, automation, measurement, and information sharing—enable continuous delivery through rapid software releases of high quality software. Using examples from real companies, including amazon.com, I illustrate how to accelerate innovation within your company with DevOps techniques and share the architecture and organizational structures necessary for success.
Creating automated end-to-end functional acceptance tests is hard. Maintaining them over time is harder. Some agilistas even claim that the cost outweighs the benefit. In this lecture we present five principles for creating valuable, maintainable acceptance test suites. We discuss practices such as layering acceptance tests to reduce coupling between the test harness, and talk about how teams should be organized in order to efficiently manage acceptance test driven development. The core of the talk discusses how to manage the evolution of acceptance tests by organizing them as scenarios rather than as suites of story tests. Finally we show how to manage data for acceptance tests.
The concept of “value” is central to agile and lean software development – but how do we decide what is valuable, and on what basis? I argue that we need to rethink the role of product owner, discarding pointless activities such as estimation. Determining value is the responsibility of everyone – not just the “product owner”. In order to deliver value we must be able to measure it transparently, and establish a fast feedback loop so teams can quickly determine if what they doing is in fact valuable. In this talk I will discuss several approaches to measuring value, how to maximize creating it, and how doing so affects the way teams work.
While keeping software production ready throughout its lifecycle and optimizing your delivery process for shorter cycle times might seem like a good idea to you, the rest of your organization might not share your excitement. In this talk, I share stories from companies who have attempted to adopt continuous delivery and discusses the organizational, architectural and process factors that led to the success – or failure – of these initiatives.
Everyone is putting “devops” on their LinkedIn profile, and everyone is trying to hire them. In this talk, Jez will argue this is not a recruitment problem but an organizations failure. This talk discusses how to grow great people and great organizations, and how the two problems are connected.
For many years software engineering meant delivering software the way we constructed buildings. This turns out to be a wildly inefficient way to create innovative products and services based on software. In this talk I’ll discuss what makes software different from buildings, and how we can take advantage of its unique properties to satisfy our customers through continuously delivery of valuable software. I’ll also talk about how you can adopt these practices in the safety of your own office, and explore the art of the possible and the patterns and practices used by high performing companies.
Jez Humble is a principal at ThoughtWorks, a lecturer at UC Berkeley, and co-author of the Jolt Award winning Continuous Delivery, published in Martin Fowler’s Signature Series (Addison Wesley, 2010), and the forthcoming Lean Enterprise, in Eric Ries’ Lean series. He has worked as a software developer, product manager, consultant and trainer across a wide variety of domains and technologies. His focus is on helping organisations deliver valuable, high-quality software frequently and reliably through implementing effective engineering practices.