 Oh my goodness. All I can say is that my, about my career as a professional musician and as an author of operating systems is that my reputation exceeds me. I made that up. I was so proud of that joke and then I googled it and somebody else had already made it up. Originality's dead. It's so sad. Anyway, well I'd like to welcome you all to the Aaron Patterson Memorial closing keynote and it's an honor, a naming honor, usually reserved for dead people. So that's something and to be invited to present after an introduction like Evans and and then Aaron's is really horrendous. So Genesis of this talk, this talk started one day my wife Cindy and I were talking and I had to do a talk and I picked out some really nice safe technical topic and I kind of said wouldn't it be, wouldn't be funny if I talked about how uncomfortable I feel at work most of the time. But you know I couldn't talk about that and she said I dare you to talk about that. I said no no seriously this is technical topic. I mean it wasn't even as good as no objects. That was an awesome talk by the way if you didn't see Sandy's talk. Page three of the speakers manual pander to the previous speakers. No seriously that was just a that's that's all you need to know about object oriented design in one easily digestible hour. So but back to my story my wife had just dared me to talk about how uncomfortable I feel at work and I had explained that no no I had a really nice technical topic picked out and she doubled dared me. What are you gonna do? So I said okay okay we'll do it. So this is this is the talk it's called ease at work and since it's late at the end of the conference I figured to put the TLDR right at the beginning this is really what this boils down to. Please pardon Mark for the sexist language we haven't even figured out better pronouns than this but a man cannot be comfortable without his own approval and I think that's really what all this comes down to. So if you need to go to sleep now you're fine it's dark I won't be able to see you the people next to you that they're probably gonna be asleep too so don't worry about that. Okay so story first half of the story again please pardon the sexist language this is how I learned the story and I haven't figured out a better way to tell it a farmer needs some help and he he interviews a number of different farm helpers potential farm helpers and one young man catches his eye the young man says I can sleep when the wind blows and the farmers like what you can sleep when the wind blows what does that even mean but young man looked eager strong like you could do the work so the farmer hires him now you got to wait the whole rest of the presentation for the second half of that story that things you can do when you have the clicker okay so ease is not the perfect word for what I'm trying to talk about remember I said I feel uncomfortable oftentimes at work but one of my mental habits is always expressing things in the positive so I'm looking for the word and the this word ease came to my mind but there's some some parts of the meaning that I really this is not what I mean I don't mean that you risk nothing at work that's not what I'm trying to achieve I certainly don't mean that I don't work hard I love working hard I love getting into a technical topic and having a naughty programming problem and pounding away on it and drinking more coffee and being really focused and finally giving up and discussed walking out the door of my office and going that was it turning around going back in finishing it I'm exhausted but I feel so satisfied so I'm not talking about ease like laying back in a in a lounge and I'm not talking about freedom from financial difficulty these are all dictionary parts of the dictionary definition of the word ease and that's not what I'm trying to get at here's what I'm trying to get at this is what I want at work I want this state of comfort in the sense that I'm where I should be doing what I should be that I'm free from this is nagging feeling that always is in the back of my mind that I really ought to be doing something else if I'm programming I'm I should be writing and if I'm writing I should be coaching and if I'm coaching I should be up shoveling out the goats and and that's such a waste of time somehow that's where I spend a big part of my working day though so I want that state of comfort I am where I should be doing who I should be doing what I should be doing second sense of ease that's what I'm talking about where I'm pointing what I'm trying to get to is freedom from agitation the programmers life can be filled with anxiety and I've certainly had my share and I heard a courageous lightning talk yesterday somebody who stood up and said hey I suffer from this too you know you're not alone well you're not alone either this is part of like oh is this really gonna work can I do this am I smart enough am I good enough dog on it do people like me that's that's part of what goes into my my daily work and it doesn't really help but again it's it's become kind of a habit and the last sense of ease and this is one that I love when I have it is this feeling of facility there are some athletes that make it look effortless and it could be a football player a basketball player a race car driver there are people there's just no extra motion in in what they're doing I remember one of the most striking examples was at a barbecue joint the the chef was this gigantic guy pouring sweat in a in a sweat-soaked t-shirt but watching him was like watching ballet he was so precise in his moment movements that he looked like he was hardly doing anything until you notice how much food was coming out and and the one that just got me was the way he popped baked potatoes because he'd get a baked potato out and he take the inside edge of the knife and just go puff and the baked potatoes cooked perfectly and so we just go like a flower every time exactly the same motion I just thought wow if I could only program with that level of facility that's something that I aspire to that's something when I have it when I'm using a tool that I really understand well on a team that I have strong relationships with wow it's just it's just magical it's like the hours that I spend there don't even count against my total because it you know you just look up and it's hours later and you've done something amazing so I aspire to that level of facility now getting there is really hard work but once you're there I just feel so good and practically speaking you get a lot accomplished so as I said in my life this has not been my experience for a wide variety of reasons none of which are germane to this presentation that's not who I was when I got to 23 and entered the workforce I was quite the opposite of ease and over the past I would say 10 years that I've actively been working on attaining a sense of ease and what I do I've found a handful of things that really make a difference and so that's what I'm going to be sharing with you today this is what I do to attain that sense of ease in the in the positive sense that I was talking about of facility and comfort and freedom from anxiety one of the big minuses of the virtual world that programmers live in is you can't touch what we do one magnet could destroy my life's work if applied intelligently and and that always seems it was so different I remember I was driving around with a contractor and the in our little town in southern Oregon the contractor says oh yeah I built that house and I built that office building and I built that restaurant I'm just I was so jealous like you know when you send a message on Facebook that goes through code I wrote unless somebody's rewritten it since then twice Colin if you ever see this anyway so the the challenge here it did did my contractor friend know that his work mattered sure he could just point to examples of people living happy lives performing commerce you know creating value in these structures that he built he didn't have to have any kind of reminder that his work mattered because it just obviously did now what I noticed when I started paying attention to this factor does my work matter sometimes I knew that it did you know especially a crisis comes up and you know you're the person with the information to get the system back online does your work matter at that moment yeah yeah you have a pretty good sense that it matters but there's other times when you're not quite sure you're working on a feature and you're not convinced that anybody's ever gonna excuse me ever gonna use this feature oh now I'm just a little bit ill at ease or even things like refactoring you know I got some ugly code and I cleaned it up and it looks beautiful did that matter I felt good while I was doing it yes but did it matter there's more beauty in the world okay but did it really matter so I am now in the habit when I am at the least bit unsure about whether my work matters to go and find out I'm gonna go and ask questions I'm gonna perform experiments I'm gonna measure stuff to make sure that my work matters the I let's see 3 billion seconds is a 95 years more or less so that's given how far we've all gotten we're likely to make that probably as likely as not to make that so 3 billion seconds I like half of mine are gone and every second another one disappears I want to make sure that I'm doing something that's important with every one of those seconds because you can't get them back so practically speaking this kind of looks like lean startup stuff if necessary you know I'm building some feature some big feature and I'm not sure that anybody's ever gonna push the button that kicks off the computation that I've so carefully lovingly crafted well let's go find out is anybody before I carefully and lovingly craft the function let me go put a button in place and see if anybody clicks it now this means that I do stuff out of order I do things in a in a sequence that maybe doesn't make sense from an engineering efficiency standpoint because I'm spending the first part of any piece of development reassuring myself that my work matters now as I said sometimes it's no different sometimes you know somebody's demanding a feature or especially here's the downside of working on on consumer software is your wife gives you bug reports which may take undue weight in the prioritization process and I'll leave it at that but if I get a request like that and I know that I'm doing something that will that will contribute to familial harmony I don't have a question about whether my work matters so I can just go ahead and get to it but when I feel that tickle in the back of my head that says is this really is this really something that needs to happen I'm going to invest the time to go and find out before I just just dive in here's one that I didn't even know was possible when I started programming I was introduced to this model by a very large and successful 80s software company the Jell-O model have you heard of this the way you pick the version to ship to put on the CDs and ship out to millions and millions of people is softwares like Jell-O it's just always wiggling and then as an engineer you'll notice a moment when it appears to stop wiggling and that's the version that you send out come on that was the that was the highest level of confidence that an engineer could aspire to is a lack of Brownian motion in Jell-O to which I say no no in fact that nagging feeling that I have when I I'm going home at nine I'm thinking did that really work that's a choice I can choose to work again it requires me shuffling you know instead of doing the testing way at the end blah blah blah I say take some of that testing and I put a little bit before and then it kicks off large controversies and video chats with people all over the world and stuff no no that's not the point where exactly you put the testing but what is the point is I need to know that my code works I need to feel confident if I don't feel confident that my code works I should work in a different way and there's a wide variety of of different workflows that result in much more confidence than I ever imagined possible when I got started in this but I can choose to work in that style and whether you do TDD or somebody came up to me said oh I don't like doing unit tests that's fine like first is your coat it's not my code but but second it like if it doesn't help don't do it if it does help do it how complicated is this conversation actually but whatever if you're confident that your code works then ship it and if you're not confident that your code works then get confident that your code works and then ship it you can like I can do that and if I do that when I when I do that when I choose to do that like sometimes I panic oh well I'm in too much of a hurry to feel confident like that's gonna help but I do it but when I do it when I say well no let me make sure that I feel good about this going out that's another one of those consumer products things like when you have a bug it's a big bug and that can be very instructive but fairly embarrassing so I want to know that my code works before it goes live and I can do that and when I do that I feel at ease that level of anxiety just drops that much more my feeling of facility and mastery like this code works if I want to make this change then yeah I think here's what here's the small increment that I'll do that makes sure that my code still works that's a that's a great feeling to know that the next features one step away we're not robots I realize that shouldn't be news but a lot of the engineering management wisdom best practices there's a phrase that I hate having put it on my first book treats engineers as robots like here we're in some process and da da da da and we ship it and where's the celebration where's the acknowledgement that we're social beings much as we hate that where's like this is humans are doing this and one of the basic human needs is a need to feel proud of what you do this is a big part of my motivation for refactoring this is something that pushes my refactoring a little bit earlier now as time has gone on I refactor later and later and later it's getting close to the just in time just before I need to make some change then I refactor to make that change easy and then I make the easy change but it's a it's a choice and that feeling of pride in the work that I do is something that when I actively pursue it I feel better about what I do I am more at ease I have more of that sense of accomplishment more of that the lack of worry and anxiety because I'm like yeah this code's as good as it makes sense to make it right now cool yeah I'm proud of what I did now I can share with somebody else and away we go I was taught that this was not an issue early on in my career like it just doesn't matter what it looks like it doesn't matter if it even works as long as you have plausible deniability with respect to the QA department you're good I feel I feel terrible about doing this stop feeling terrible everybody acts this way well yeah everybody did and it wasn't a lot of fun but there were people though I certainly ran into people who for whom that wasn't good enough and fortunately for me I gave me good examples of working on a system until you feel proud of it so those emotions those emotions are valuable information emotions are noisy information but they're valuable information and that feeling of I'm proud of this means something and that feeling like oh I hope nobody ever looks inside this file that also means something and learning to figure out when it means you should go and fix something up before shipping versus fixing it up after shipping versus just getting over it that's the work that's why ten years later I'm still working on this stuff but that feeling of pride and pursuing the feeling of pride in my work that's something that puts me more at ease in the in the work that I do I do a lot of coaching these days bright young engineers and one of the skills that I teach actively is learning to trust your own sense of curiosity I say ideas are like little mice and there's a there's a hole over on the wall and the idea is just gonna poke its nose out and see if it's safe safe to come out and if if I at that moment say oh come on yeah come on out here let's we can talk and it's safe then the mouse comes out and we can have a little conversation and then it goes back in and it tells all the other mice is cool he feeds you corn and stuff but but if the little mouse sticks his nose out wiggles his whiskers and you go get out of here I don't have time for you then that idea pops back in there and tells all the other little mice ideas forget it man it is not worth going out there nothing's gonna happen and maybe six months into my now four years at Facebook I had a real crisis where I had lost myself confidence and I get these ideas and I go okay somebody's somebody's certain to have thought of that already I have another idea I'm like oh I probably don't have time to follow that up I was so mean to the mice they just stop showing up and I don't like that I like being an idea fountain and so I decided to consciously encourage my own ideas I didn't mean that I ran off and spent five years following each idea but an idea would pop out and I just think oh well I wonder if that's true here's some hypothesis about software development let me see if I could find some data I'll take a half hour I'm not gonna spend a lot of time but I'll take a half hour to figure out if the data supports this hypothesis and lo and behold the more of that idea the quicker I was at at vetting these ideas as they came out and the more ideas came pouring out you know which is a little bit of a challenge when you've got ideas popping out all the time you have to figure out how to be supportive of your ideas without spending all of your time just going from one thing to the next to the next it's a big motorcycle anyway so last night I went I wonder if rails is structured more or less like all the other repos that I've ever looked at if we looked at the number of commits by committer are we gonna end up with this power law distribution the way we usually do so lo and behold yes short answer yes there's like remember the exact numbers 3,000 people who've committed to the rails repo once and a third that many that have committed two or three times and a third that many that have committed four through seven times and then it goes then the slope changes about half half half half and then this one is interesting because there are Aaron you win by the way for the moment DHH up your game I mean I'm an outsider here so I can say these things it is unusual usual it's unusual to see this this the fat tail have five people in it the way it does usually there's one person who commits way more than everybody else in these kinds but so that's kind of interesting to me that there's this that there's a number of people who've committed a lot to rails but this is just like late at night oh I wonder I've looked at a lot of repos and almost all of them look exactly like this by the way the rate of the Ruby one looks completely bizarre by the way so if somebody if Ruby commit or could talk to me about it I would love to find out more about it but this was just an idea that popped up half an hour later I had a graph I could put it in and now the next time one of those little mouse ideas one of those mouse hypotheses about oh I wonder if we really don't use very many estimates in our development pops is its head out it's more likely to come out to where I can see it and encourage it try out a little bit of time and the connection with ease here's the problem for me when I when I'm scaring the mice back into the walls all the time I just feel terrible I know that there's this whole world of things that I could explore that I could learn about and and I'm just blowing them off because I'm so focused and so busy doing this one thing that I've no slack to pursue other ideas that that's a terrible moment for me and that conscious choice to begin encouraging my own ideas made a huge huge difference in my sense of ease at work this was a surprising one maybe I should subtitle this talk how I got over what I learned the first 10 years I was programming because this is another one as a young programmer I was told never give an estimate and if you have to give an estimate like maybe make an estimate for when you'll have the estimate ready and then try and bury any numbers that you produce so deep that nobody ever figures out to find them and you can't ever be called to account that's the next one and I learned quite the opposite now estimates for finishing features I think is a lose but that's a much longer conversation but you don't have to estimate how long it'll take you to do a widget in order to make a public commitment you can make public commitments towards shared goals okay I think we can increase revenue by 10% or I think we can reduce churn in our users by 3% and on this date we're going to measure and see if we actually did that now the first time I did this I was terrified because completely against all of my training don't say anything and say things as vaguely as possible and don't attach dates and if you have to attach dates set them way far in the future or like tomorrow so you're absolutely certain is something like this is the opposite of that no we'll make public commitments when I do make public commitments I immediately feel better oh look I got all these mice in the walls it's actually pretty accurate mental picture for me I got all these mice in the walls and when they come out if I have one of these public commitments I know how much time and energy to give them out a little bit I enough to encourage them not discourage them but I have this public commitment to make and if this idea is tangential to that then I'm going to do something else I'm going to get back on track and do what I'm doing immediately my anxiety level goes down my sense of purpose and focus goes up it is a little scary because I might not meet my commitments when I do that another scary technique for me that I found is just being accountable so that means to be accountable means you render account to someone else okay so you said the churn rate was going to go down to 14% and is still at 18% what happened okay pre this is the early young Kent would say well servers were down and these people did didn't deliver the thing and the Boba Boba Boba Boba Boba that's not what I'm talking about because immediately I'm like well what if they point the finger at me what if they blame me for this if instead I'm accountable I render account I did this experiment I did that experiment I wasted two days pursuing this idea that I really should have known better than to do that's scary to just go yeah part of it was I just screwed up oh hmm but as soon as I make that commitment to myself that I'm just going to be accountable just feel so clean because I know what I'm going to do I'm not going to blame anybody else I'm not going to point any fingers I'm only going to say here's what I did here's the decisions I made here the activities this is the account here's the accounting this is how I spent the time and now somebody else's response to that is their response right they can they can be angry they can they can be depressed they can say well let's work on this they can have an idea whatever somebody else's response though is their response the part I can choose that puts me at ease is choosing to just to be accountable here's what I did this this this which leads to the next habit that contributes to ease for me which is interpreting feedback I have the tendency to take on well it's either one of two things either when somebody says about me something good or something horrible I think that's about me or I just ignore them and and I kind of swing between these two polls generally speaking neither which is a very good place to be so this habit of interpreting feedback contributes to my ease because you can come up to me and say can't your you know your book saved my life and I'm going to interpret that I'm not going to think I'm awesome because I'm no more awesome the moment after you said that than I was the moment before you said that nothing's changed about me but you just told me this story about you know reading a book and it was and it made a huge difference to you so I interpret the feedback what a part of that is about you oh you had this great experience I didn't read the book for you you read the book for you I didn't apply it you applied it so there's a I can take credit for this much I wrote a book I did the best job that I could when I was writing the book and then there's this whole big bunch of it that's really about you and the stuff that you did and that keeps me on an even keel because then the next person comes up to me and says can't your books suck I tried to apply them and I got fired and I was a homeless tango dancer this happened to me this tango dancer well did I like you know the immediate reaction is oh you know like how can I get you off the tango floor but if I just remember this habit I'm gonna interpret this I got some feedback but I'm gonna interpret it what is that what of that is about me well who knows why you got fired I hope you didn't just get fired because this would be really depressing if you did could you like nod or something okay we're good I'm gonna help him find a job after this I can interpret this feedback I can say okay well I wrote the book is there something that I could have done better certainly true is there a lesson that I can learn for the next book maybe but most of that experience is your experience it's not my experience so that moment of interpreting feedback keeps me off of this in the memorable phrase of an former Apple employee keeps me off of the genius shithead roller coaster just that one habit well let me interpret this feedback this is the dumbest idea I ever heard well you must not have been listening very well because this is certainly not the dumbest idea I've ever said that moment of interpreting feedback puts me at ease even in situations of conflict which generally speaking I hate but if I can remember to interpret I can do closer to my best in that situation something else that I do that contributes to my feelings is periodically become a beginner at something so I perform in our local production of the Nutcracker Ballet and if you want something that will make you and your 50-year-old body feel stupid it's do ballet for the first time guarantee I learned Haskell a couple years ago it's absolutely antithetical to everything that I believe about programming languages I learned really valuable lessons I think about types in a completely different way than I had before but you know does it feel good to be a rank beginner when you're used to really understanding your tools no it feels dislocated and and confusing and you keep trying to grab onto the walls and the teacher keeps smacking your hand and pushing you out into the middle and you keep falling down it doesn't feel good in the moment but I can remember that feeling and I can get confidence like oh I'm in a situation I'm not comfortable I don't feel any sense of mastery but it's okay I can get out of it if I could learn about Haskell I can certainly deal with this situation and away we go so I consciously put myself in positions where I'm a beginner so that I feel uncomfortable so that I can remember that I can deal with the feeling of being uncomfortable and still do a pretty good job this last one is a habit that I've picked up and I'm this is not about any kind of religion or pushing any particular thing but something do something like this sort of direction when I meditate in the mornings I am one breath away from being okay for the rest of the day and I suppose the inverse is true when I when I you know I'm too busy to do anything in the morning I'm one breath away from complete and utter panic for the rest of the day so this is just something that's made it a habit and it's made a big difference for me the last of these techniques is this sense of service there is something that happens to my brain when I do something for someone else in a way that prevents me from getting any kind of reward or feedback or props or anything if I just do something for somebody else with no thought of of anything coming back to me I just feel better I am more at ease with myself I've been blessed I have the chance to do this and when I take a little bit and just put it out into the world I feel better I'm more at ease the the next thing that comes up in in the work world I'm gonna be a readier to take on and so that concludes my list of of things that I do to to put myself at ease now I'm gonna skip these slides about getting the the short answer there is if you wanted to start working on one of these yourself find a buddy and work on it together with somebody makes a huge huge difference so one night the farmer wakes up in the middle of the night I told you I get back to it you don't trust me he wakes up in the middle of the night and the wind is blowing and the rain is pouring down and the farmer gets up in a panic he pulls on his boots in his pants and he runs out to the barn and the the farm helpers out there in the barn and the farmer says we have to get the hay in so that it doesn't get ruined in all this rain and the helper says it's already been taken care of and the farmer says we have to gather the cows in so they don't spook and stampede and I'll kill themselves and the farm helper says it's already been taken care of we have to shut the shutters so that the rain doesn't come pouring into the barn it's already been taken care of and the farmer thinks a second turns around goes back into the house goes upstairs gets undressed climbs under the covers he tells his wife was all taken care of and the wife says now do you know what he meant by I can sleep when the wind blows that's what I wish for myself and for all of you thank you very much