Culture, Flow, and TDD: Jez Humble on the True Definition of DevOps

Culture, Flow, and TDD: Jez Humble on the True Definition of DevOps

UGtastic Archive
Transcript Verified
The Interviewer

Mike Hall

Interviewer, community organizer at UGtastic

The Guest

Jez Humble

Author of Continuous Delivery and DevOps pioneer

The Conversation


Mike Hall Interviewer, community organizer at UGtastic
Hi, it's Mike with UGtastic. I'm here at GOTO Conf 2014. I'm sitting here with Jez Humble, who today presented on DevOps. He has a background as the co-author of the Continuous Delivery book, and he's also working on a new conference called FlowCon. Thank you for taking the time to speak with me.
Jez Humble Author of Continuous Delivery and DevOps pioneer
Thanks for having me.
Mike Hall Interviewer, community organizer at UGtastic
Your talk today was on DevOps. DevOps is one of those terms that means a lot of things to different people. You helped write the book on Continuous Delivery, which helped lead into what we call DevOps. Can you tell us what that means to you, and how that relates to your talk today?
Jez Humble Author of Continuous Delivery and DevOps pioneer
Debate rages on how to define DevOps, but for me, ultimately, DevOps is about creating a culture in which we're always learning how to get better at creating, evolving, and operating great products and services. With a particular focus on collaboration between all the different people involved—engineers, UX people, operations people.
Mike Hall Interviewer, community organizer at UGtastic
So it isn't just about deploying. It's about the whole application cycle, from code writing to delivery.
Jez Humble Author of Continuous Delivery and DevOps pioneer
Yeah, and even outside that cycle. The point of Continuous Delivery is to give you this capability to get changes out fast to users in a low-risk way, and to make it economic to work in small batches. Once you have that capability, the question then becomes, 'What do you do with it?'
Jez Humble Author of Continuous Delivery and DevOps pioneer
People in the DevOps field will tell you that you use that for creating a feedback loop so that you can make sure that you're working on the right things, so that you're building things that actually delight users and improve the customer experience.
Mike Hall Interviewer, community organizer at UGtastic
And your talk today—what was the exact title?
Jez Humble Author of Continuous Delivery and DevOps pioneer
It was a long one: 'DevOps: Culture and Practices to Create Flow.'
Mike Hall Interviewer, community organizer at UGtastic
And 'flow' being...?
Jez Humble Author of Continuous Delivery and DevOps pioneer
Flow being able to get ideas out to users as quickly as possible. I go back to the Toyota Production System. The idea of flow there is the customer puts in an order, 'I want this car,' and how fast can you get it to them? There's this idealized concept of one-piece flow—going from order to delivery as a single piece with no interruptions or queues. It's unachievable, but you're always moving towards it.
Jez Humble Author of Continuous Delivery and DevOps pioneer
The equivalent in software development is looking at check-ins, creating builds, and trying to get those builds out to users as fast and as safely as possible.
Mike Hall Interviewer, community organizer at UGtastic
Is TDD a part of that? How to write software is a controversial topic right now.
Jez Humble Author of Continuous Delivery and DevOps pioneer
Absolutely. I said in the talk and in the book that you've got to build quality into the product. The idea that you can write some code and then there's a quality activity further down where you find out if it's any good doesn't work. It's the responsibility of the people building the software to build quality in. One of the ways you do that is through TDD.
Jez Humble Author of Continuous Delivery and DevOps pioneer
What we do in TDD is put ourselves in the perspective of the user of the software. When you start TDD for a new module or component, you think about what the API is, because you have to write the test against an API that doesn't exist yet. That forces developers to think as a consumer of the software they're about to build, and design an API that's simple to use and test.
Mike Hall Interviewer, community organizer at UGtastic
You get that pain early.
Jez Humble Author of Continuous Delivery and DevOps pioneer
Right. And actually, once you've worked out the right test to write, writing the code is the easy part.

Critical Insights


durable
"DevOps is not just about deployment; it is fundamentally a cultural movement focused on optimizing collaboration and continuous learning across the entire product lifecycle."
durable
"Continuous Delivery makes it economic to work in small batches, which transforms release engineering from a risk-management burden into a fast customer feedback loop."
durable
"The concept of 'Flow' in software delivery is directly inherited from the Toyota Production System's ideal of 'one-piece flow' without queues or interruptions."
durable
"Quality cannot be inspected into a product downstream; Test-Driven Development (TDD) is essential because it forces engineers to design APIs from the consumer's perspective first."