 Nice to meet you all sort of, it's a little weird because you're there and I'm here. I want you to stand up before I start. I know you just sat down and you were like, I was just getting ready, but like, okay. I'm going to talk a lot about what I think the next generation of infrastructure is and I put in a talk title called The Evolution of Automation and the thing I realized is I was thinking about that topic was that in order to talk about it I had to actually talk about a bunch of feelings these stuff instead of a bunch of technology stuff so I'm gonna talk about a bunch of feelings these stuff and when I do that I'm gonna use words like you and we and I and that sort of thing but really what I'm talking about is you so whenever I use any of those words it's like the royal you so if it sounds if I say something you're like that doesn't apply to me it's super does and I'm talking to you that makes sense everybody's cool okay sit down so I think everyone in this room regardless of where you work if you work in a tiny startup if you work in a big web company if you work in a giant enterprise we're all on this journey to figure out how it is that we can do a better job helping our customers have better experiences and better lives right and those customers sometimes they're internal sometimes they're external and sometimes you can see them sometimes you can't but we spend a really disproportionate amount of time if you think about it on the infrastructure and on the setup and on just all of the stuff that we do to run all the things that get that stuff out to those customers and when we look at the struggle that we're all going through to figure out how to do that better what we're really doing is trying to build these high-performing teams all I just want to figure out how are we gonna come together how are we gonna build teams that work together to deliver that stuff better faster smarter more fun right all of those sorts of things and software helps us to do that so it's not just us as people working better together as teams it's also the technology that we use trying to reinforce the behaviors that that allow us to get that stuff done at the software level and while we're doing that we tend to run into to a problem and I call this problem the production cliff and so to illustrate this it's it's pretty simple let's pick a technology let's do Docker everybody use Docker right of course you do because it's Docker um so and odds are high you picked up Docker in the last year and people picked up Docker in the last year the same set of hands okay so so here's what your experience probably was for Docker this one was mine so you start out and you pick up Docker and you type Docker run it some piece of software you wanted and then you hit enter and then it runs and you were like yeah that was amazing like it downloaded an operating system and like I had a service in it and like it ran and that was what I wanted it's what I always wanted the time that I typed like yum install Redis what I wanted was Docker run it Redis and now I'm happier like things were cooler and you were like this is the best and so then you start climbing up this hill here right and it gets a little more difficult you're like yeah okay I'm gonna go now I got services and five Docker containers I got compose and like you start piling stuff on and it feels pretty good and you get to what I call the peak of false hope so the peak of false hope is that little arrow right and the peak of false hope is the moment where you think you've seen all there is to see you're like I got it Docker check right and then you're like you know what Docker's rad you know we're gonna do we're gonna go to production you guys ready let's hit production this could be chef it doesn't have to be Docker it could be it could be anything it doesn't matter right I know this happens with chef so I'm not picking on Docker unnecessarily my own software I wrote it 10 years of my life this will happen to you too okay so you're up to top and you're like this is amazing and then you're like let's go to production and then it's like oh no right immediately the shenanigans begin where it's like well what about this what about that what about this thing hey how does that work does this thing scale is that highly available how will this work and you sort of go through this list and it starts to go down you're like oh maybe I didn't see everything that there was to see and then you you hit the bot you hit what you think is is you're like okay it gets a little easier actually like there's that first bump and then it's like huh okay it's gonna be okay go to production we're gonna do 150 that worked 150 is good and then you're like okay let's go to the data center and then like it just skyrockets in difficulty right and and that difficulty is a real real challenge for us as an industry because when we think about how our software is built that thing happens for every single piece of software that we built all of them and that's that's that's pretty tough this is Dark Souls 3 how many people here have played Dark Souls 3 okay if you're if you're not a video game person Dark Souls as a series exists to sort of be mean to you like like if you like I grew up playing video games I grew up playing like Nintendo and there was Nintendo games that were super hard like Bionic Commando where like people either figure it out or they don't and people who didn't figure out like what a stupid game with a little guy with a little arm and like then people to figure it out we're like this is the best game I've ever played it's so hard um Dark Souls 3 is like that and this dude in the red over here I'm the guy in the left basically with the silver armor and that guy with the red is a bad guy and that guy kicked my ass for 24 full hours and he's not a boss he's just a dude he's just like a it's literally like if you're playing Super Mario Brothers and one of those little mushrooms just beat the crap out of you for 24 hours right and I I was so hard and it was and I just could not figure out what I was doing wrong and it was just it was brutal and awful and so I stayed up for like a whole day I have a kid and you know I like ignored them my family I was like I'm gonna kill this goddamn night right and I get to the end and I do it 24 hours and it's late at night you know my family's asleep and I killed that night and I was man it felt so good like I remember what it felt like when my daughter was born this felt like that it was like yes you know like I had done I had made an accomplishment in my life right and and I talked about it the next day I went back I was like have you played Dark Souls 3 this is the best I've ever played now meanwhile this game abused me for 24 that I was not it wasn't fun right but because I triumphed I felt amazing I was like this was great and now I get to go to conferences and I get to talk about how much I liked Dark Souls 3 because this dude beat me up and that's the same thing we sort of do when we think about deploying stuff like chef or like Docker or all those things we get up in front of our peers and we talk about the incredibly difficult hill we climbed and then we're like you can run doctor production it's easy I do it what's what's wrong I rolled it right and it's because we love things that are hard right it's not just we don't like simple things everybody can do simple things what we like and what we talk about and what we want to share is when we overcome difficult things but I'm not talking about the kind of fun like Dark Souls 3 is a great video game and I did actually really enjoy it and you do feel really good when you deploy Docker production but I'm not talking about that kind of difficulty I'm talking about the difficulty where you will spend time away from your family where you're where that pit of your stomach is eating you up with stress because you're worried that this decision you made will ruin months and months of effort in your multi-billion dollar company will ruin the startup that you took money from and the finances that you took the cash from and the people that you hired and they won't have jobs anymore I'm talking about the stress where how many people have had a fight with your significant other simply because you were stressed out of work and they were the person you love the most and it felt safe to take it out right it's the worst of me like I don't like that person but that person happens when the equivalent of Dark Souls 3 is happening to me at my job how many people here said you hate software in the last 30 days yeah 60 90 days anybody not raise their hand okay I was just looking you're a liar okay so there's a Zen story about a man on a horse and he's galloping along on this horse and he's going really fast and he sees his buddy at the crossroads and he yells out to his buddy he goes hey the buddy yells at the guy on the horse he goes hey where you going and the guy yells back I don't know ask the horse and no laughs come on it's funny it's then it's supposed you're supposed to laugh later okay so the the thing is that in this story the horse is technology right it's going where it wants to go and we were along for the ride and this guy is Tich Nad Han Tich Nad Han is a Vietnamese Buddhist monk he wrote an incredible book it's called the miracle of mindfulness it's a collection of letters that he wrote back to his brothers during the Vietnam War when he was exiled about how to remain mindful in the midst of horrific destruction and death and this incredible human being who was nominated for a Nobel Peace Prize by Martin Luther King spoke at Google that's how weird the world is and this is what he had to say he said if technology can help you to go home to yourself and take care of your anger to take care of your despair take care of your loneliness if technology helps you to create joyful feelings happy feelings for yourself and your loved ones it's gonna be going in a good way and you can make good use of technology and I think that what what he's talking about here is that we have a choice we can either take control of that horse and we can decide intentionally what the technology is that we're gonna build and how we're gonna build it and the impact it has on our lives or it will do that for us and we probably won't be happy with the results and software is a part but not all of who we are and the thing that will get us to the next place the thing that will get us to the next level that will change the way we think about how we work and it will change the way that we do that work is to think intentionally about the software that we build and to think intentionally about the culture we build around that software and I think that ultimately we need to strive to build humane systems and these are systems that show compassion for ourselves and show compassion for other people they show benevolence and grace and for us and for other people by grace I mean when people don't understand or when they struggle we give them space and we help them through when we get them to the place they need to be when our technology falls down and isn't what it needs to be we find a way to make it better and then ultimately the systems we build the technology we build has to help us to become better if the technology we're using doesn't reinforce the behaviors we want to see in ourselves and the behaviors we want to see in others then it's bad technology and we need to replace it ultimately we're not going to get where we're going with the patterns of how we've gotten here right we have roughly 30 years 40 if you stretch it of history of IT ever period and in that same path that we took to get here we will not get to the next phase of where we're going and luckily we have everything we need to be really innovative at this moment in history we have perspective we have history there's a ton of cross-disciplinary activity we have stuff we need to invent a better future and so if we want to do that it starts with our culture and then it goes to our technology and both of those things reinforce the people in the middle so human beings go to work you do your thing think about if you wanted to change the speed with which you deliver software in your company you wanted to make it easier to deploy so that there were less shenanigans and better for your customers and you didn't have to have fights all the time but you were refused to change any of your foundational technology how do you think that project's gonna go right like it's gonna go terribly badly and you see this all the time where you know a company thinks a company decides that they need to compete and they need to go faster but they refuse to look at their security and compliance policy right what do you think's gonna happen like it's all gonna fall apart because it's this reinforcing cycle so I think if we're gonna build better software and build better things it's actually a very simple way to do it this is a thing called a buntu not the operating system but the spirit of more of the philosophy and it's very very simple it just is I am because you are right and it's corollary is when you suffer I suffer and when you thrive I thrive and this is a very simple very African idea and at its root what's beautiful about it and why I think it can be helpful in the way we build software is this no one has to take a certification you don't have to go to a class you don't have to go to a retreat you don't need to go to a DevOps days if all you did was sit in your job and think to yourself is what I'm doing causing other people to suffer am I am I alleviating their burden or am I adding to it right and if they're hurting then that's gonna come back on me someday and like we're not getting we're not progressing to where I need to be that's how you know that you're going in the right direction so from there you have to build systems that are inclusive I'm just kind of breeze through the slide because I don't have a ton of time but this leads us to this idea of building inclusive organizations that an inclusive organization is like we talk about inclusion and diversity and we often do in the same sentence inclusion is the soil and diversity is the kinds of plants that are inside of it right so it's really difficult to have a great garden if you if it's not good soil right in the same way it's very difficult to be diverse if you're not inclusive and so J. Gooseby Smith wrote a book called Beyond Inclusion and she puts forth this idea of a bunting inclusion and she has these nine things so people need in order to feel included people need to be connected to something bigger they need to mutually agree that they're going to include each other so you have to include yourself in the process of being included you have to communicate what's happening with yourself with the organization you have to mentor other people and develop their potential you have to care about each other you have to care about what happens you have to care about things when they're difficult and when people are suffering you have to be fair work life balance is a good example here can your boss take twice as much vacation as you if so that's weird right visibility you have to give people a chance to be highly visible and to have high stakes and to take real risk if you're a manager and the people who work for you never have a chance to make a decision that you think might be wrong then you're probably failing at giving them enough visibility to stand up and really own their work and then finally you have to give people a chance to talk about what they have done and be the face of the organization and be the face of its values and those are the things that make people feel included and you can do that in software too diversity if inclusion is the soil diversity is the plant you need both and often we're good at one but not the other right so often we're good at being inclusive and we're bad at being diverse and there's a bunch of reasons why the simplest and most charitable answer is simply that we tend to have social networks that look like us or that come from where we come from right there's more complicated and probably more true answers to that that are more systemic and the truth is as people we have a responsibility to understand that we have to make an active effort to be more diverse and to bring people and their points of view because if we're going to build software that's great the next evolution of software is software that works for us as people if our definition of people is so narrow that it doesn't include all kinds of people with all kinds of backgrounds from all kinds of places with all kinds of skin colors and sexual orientation and every possible thing in the universe that we will build bad software for someone we have to be team oriented as creatures we are little herd animals right we're all packed into this room we want to hang out we want to go to a conference we want to go party later right and when we build systems and technology that build teams we help bring each other together often we build technology that does not do that right we try to we talk about removing people from the loop we talk about we talk about being able to you know have one person do the job of 50 those sorts of things what we really need our systems that support and software that supports the orientation of teams human beings need context in order to survive in order to thrive so it's that context that lets us learn about each other in a way that's deeper than simply sort of knowing each other's names this is my family that's my daughter Elizabeth that's my wife Katie and I'm going to give you an example of building context driven software we my daughter's six and we went to an amusement park for the first time in her life and that was amazing and we went to six flags and what I didn't know about the six spots I live in San Francisco and if you don't know much about the Bay Area it's not very hot like it stays sort of in a band between like 62 and 75 like all year right and so we go to six flags and it's going to be awesome and half the park are water rides and we were completely unprepared for water rides are no bathing suits or towels or change of clothes or anything right but my daughter is six and she's like water rides that's amazing we are going to get so wet right and I'm like yes we will and so we go on this giant water ride it's got the big log ride it does a thing we go up the top and then we come down and we hit the bottom and I get f**king soaked like we're not like a little bit wet like my underwear is wet right and I'm like who designed this f**king ride right but my daughter's like that was amazing we're so wet and I'm like yeah that's 64 and so we get off this like awful log plume of hate and then there's this bridge that goes over the part where the log splashes down it's like the second chance to soak your stupid ass right and if anybody has a little kid the thing little kids will do is run away from you like that's just sort of their jam especially the amusement parks man they'll just book and so she starts booking it across this bridge with no regard whatsoever for the log flume that's like coming to destroy her and I try to like rescue my daughter like an idiot right and so I like turn around and the one part of me that's dry is my back you know because I was sitting in a chair man and that log flume and so she is like fine and I'm soaking wet my entire body and so we are then standing in like this giant human air conditioner that tried to dry me off and my wife was like this air conditioner thing is not going to work this is shenanigans I'm gonna go buy some clothes and so she goes off and she buys me that stunning wolf shirt and um and my my little kid has this like arbitrary cartoon character because we were in a six flags and they don't have cool characters in DC but Marvel's better so so here's the thing about that story how many of you think you could tell that story in two days in summary no one Matt Stratton's like I could tell that I heard it once before you'll remember you should how many of you think you could do it if you saw this picture again if the picture came up and you were like what was that moment you could do it and the reason is we've had a thing right like you would not remember that slide if it was just a slide in my deck but you'll remember because I told you a story you looked at me and I told you a thing about my life and my family and you understood it that's what being context-driven means and so when you think about the software you develop and the way you run your teams if your scrum process is handing someone a backlog they have to just feed off the end of for nine months it's not very context driven why did what why should they remember why do they know what it is that you actually want to accomplish with people you want to do it with so when you think about running your teams when you think about building your software you have to think about it how you're going to distribute that context to people okay you have to embrace complexity you know people will tell you that we should get simpler that we need simpler software those people are wrong that you actually the arc of history tells us that we get more complex over time not less complex here's a good example of what i mean this is a model t forward who can drive a car everybody can drive a car how many who thinks they could drive a model t yeah okay you're up front so stand up so um show me how you start a model t forward yeah you turn the crank that's a good answer so i want you to remember that he said crank so you're wrong you can sit down um so so in our mythical model t forward what he does is gets up he cranks the four the four does nothing he's like i'm cranking like nothing moves right so here's what you have to do first you have to prime a car where you get out of the car you reach down underneath it there's a little thing you can pull on like a little loop of wire and you pull on that thing and that opens up the choke and then there's a little lever right next to it you can't actually see and you turn that thing one half turn and that floods the carburetor with gas if you go one full turn then it's flooded you won't start okay but you can't see any of this right it's underneath the car okay so then you get back in the car you're going to set the ignition to magneto because you uh haven't started the car recently it's a model t four you don't drive it every day and so if you want to drive it every day you have to set it to battery so you have to know is it magneto or battery so you're going to go for magneto you put the timing stock to up you put the throttle down and the handbrake up now you'd think the handbrake told the car not to move that's not what you're doing you're actually setting it to neutral okay and then you're going to start the car so now you're going to walk out you're going to crank the lever on the front now are you right-handed or left-handed he's right-handed so most likely would you have cranked with your right arm yeah you totally would have me too now you broke your arm so what happened is you got out in front of it there's a crank and you went and then it backfired and it went and your your arm broke it went the wrong way and it broke your arm and that's a huge bummer so you're like oh my god the model t is the worst car and then uh so you so you learn that lesson because it broke your arm the first time it's now you use your left arm but then you have a second problem which the same thing you have to let go of that goddamn crank if it backfires and so normal humans grip things with our thumbs that's like why society exists but you cannot grip the crankshaft with your thumb if you do that then your left arm won't let go either and you break your arm so make sure you never grip with your thumb like a monkey okay so here's the thing that was a simpler car if we locked these doors we would build a model t-fort if there's a pile of parts and some stuff i bet with the knowledge in this room of internal combustion and basics of how a car works we could get out of here with a car we would not die in this room right but uh that is not because it was easier right we could build it it was simple but it was not better it was worse and when things are easy people are free to learn and grow in new directions you can focus on what matters this is my car uh it has a button that button says start you know what's interesting about that they used to tell you you put the key in the ignition why do i ignite my car that's weird you know what it should say start there should be a button and you should push it and that's better but it's undeniably more complex right so somewhere there's a dude and that guy is like cars are too complex it was better when they were simpler and that person's wrong and the same thing happens when people say that to you about your infrastructure you should be absolutely willing to trade complexity for ease right if it makes your life better if it makes things easier if it moves us forward take some complexity man don't just sit don't don't mythologize the arrow where you had to break your arm because you climbed the hill okay now that doesn't mean that we need to build things that aren't maintainable so when things go wrong you have to be able to quickly address what's there otherwise you're in this trap it's complicated i don't understand how it works i can't fix it when it's broke so this is a ford fusion and it's a stock car and so what's cool about stock car racing is that that's basically the car you could buy on the street and the thing about it is that car has a few things you could easily tweak for example traction control and anti-lock braking you can turn them on and turn them off they have a button you push them those are the things that most human beings have to change about the way their car drives there's also a computer where if you're a mechanic you get into the computer you can change everything about the car you can change the engine timing you can do all kinds of magical tweaky things that is a maintainable car and that's what you're striving to build in your complex systems different people different actors in the system need different levels of access and they need different points of view across the software you built but if it's not easy in the end it's not worth it okay when you're building your software you have to be willing to dive deep um you can't only take what is as a hard constraint and this for me in the last year or two i built a thing called habitat and i'd love to talk about it later and i learned a lot about going deep in the building of habitat in the name of making things easier for people an example there was we wound up building our own distributed gossip layer in order to handle service discovery between and a bunch of other events between these supervisors that manage services and i didn't want to build that like i thought that was silly the truth was i couldn't give you the user experience i wanted if i didn't build it i had to be willing to dive deep enough to get there you have to stay grounded in reality so while i'm telling you to go deep that doesn't mean you can just destroy everything you have in the name of going deep right because not everything you have is garbage so a good example is if you were hired to be the city planner for the city of chicago and you came in and your very first day what you said was new york city is the best city and so what we're going to do is build those the city of chicago and we're going to rebuild new york right here you can imagine something from park only it's next to the lake right and think you like imagine you know you have a new you know empire state building who needs the sears tower no one cares about the sears tower right they would throw you out and kick you in just you'd be done they bury you they would feed chicago right so here's the thing um we do this all the time in technology we literally how many times have you sat in a meeting where someone's big plan was burn it to the ground okay don't do that stop okay you need to leverage principles uh that that already exist and that we have learned in our 30 year history we are not new at this although we are young at it relatively right we have a long and pretty distinguished history that we can draw on outside of it philosophy law justice um auditory to programming functional programming service oriented architecture micro services all of these things they're great one thing one mistake we make is we ascribe the value of the principles we have to the technology you have to remember your users all of them and i have i think there's really three there's builders operators and consumers and if you think about those three different classes of users that will help you so i submit that we should take control of the horse we should consciously intentionally build the future that we desire of our technology and of our culture and if we don't then i think we condemn ourselves and others uh to go through that same cycle of pain and difficulty and and distress uh that we have gone through in our careers and i think instead we should build humane software that has compassion for ourselves and for each other i think we should start here at dev ops days and we should start in the companies that you work for and you should start in the people that you can see with your eyes and i think you should refuse to settle when you find yourself in situations where they're where it's not humane where the work you're doing isn't good where the software you're working with isn't right where the people you work with are aren't thinking correctly about how we should build and and work together because you're not stuck you can go anywhere you can do anything and we should be bold about the choices we make you should be willing to to really think hard and to make difficult choices in the name of improving our lives i want you to stand up one more time i don't want you to say it with me i am because you are when you suffer i suffer when you suffer i suffer when you thrive i thrive when you thrive i thrive thank you