 So I just got here because I've had a cold and I still have a cold and I'm like Half groggy from having a cold and half from the drugs that I took so I could do this So we'll see how it goes Luckily, I'm talking about vulnerability and stuff. So it's probably good appropriate, right? Yeah, I didn't expect to be sick and I'm also not allowed to cover the mic or turn off the mic when I cough So be it warned So what should we talk about? Rainbows Unicorns farting rainbows. That's what people expect me to talk about most of the time Marty said maybe you want to come and talk about love and software and I'm like, can you even do that? Like is that allowed? So but I will tell you There's a present later on. There's a little bit of code. So so the topic is love and love to me is Kind of uncomfortable to talk about and Like I talk about it all the time. That's what I do. And so I imagine you guys find it even more uncomfortable But also it feels like hubris I'm about to say, you know, this is what love is. This is what kind of love software needs and that's That's hubris. I don't want to tell you what love is for you. So Take what works don't take what doesn't work, right? So soft skills There's one conference that says, you know, no fluff No soft skills and I think Really? Why are you scared? When the quietest person on the team speaks up, even though they're terrified, even though they're trembling Because they know that something really bad is going to happen if they don't That doesn't seem soft to me. That seems kind of badass actually I'm terrifying. Like how many of us avoid times when we could do that? We could speak up, but we don't because it's too scary When a parent sits and holds their kids hand and tells them stories while they sit through their 97th medical treatment That's not soft, right? It's difficult stuff and it takes courage to face it So I'm going to talk about what they call soft skills And hopefully it won't seem all that soft When I talk about love I'm talking about Something it's sort of a technical term for me If you If you think about somebody that you care about Or maybe a kid or a pet, a sweetie And you take a second to really try to picture them in your mind You feel something in here, right? There's a little spark something lights up that thing that lights up is a is a clue We have this built-in sensor that tells us what brings us joy and what's amazing And so I'm talking about that when I talk about a heart smile I'm talking about that sense that you have of the things that bring you joy And in fact like a lot of different psychologists have talked about universal human needs or fundamental human needs You all know about Maslow And there were some other people Max Neath Rosenberg a whole bunch of them have talked about what it is that people need to thrive and And these are things that set off our heart smile they set off our sense of what love is These are some of those things creativity. We like creating things. We like being cared for and caring for other people Learning when I look at learning it seems kind of dry to me But when I think about what I've discovered about quantum physics Then it comes back then I get the spark right Entangled particles Frickin amazing stuff when I think about discovering an algorithm that I hadn't understood before that kind of learning That lights me up Choice we all like choice. It's something that about what it means to be human, right? And all these other things we'd like energy and we like calm at different times in different places And there's one down here at the bottom profluence profluence That I learned from my friend and mentor cheapo Hill And it means progress toward a goal. It's forward movement It's opposite is when you're sort of on a project. That's not going anywhere Or you have nobody to tell you what features are valuable or your code never gets implemented or never gets deployed Profluence is when we're making progress or moving forward with what matters to us and all these things kind of Point to this this thing that I called geek joy and When I say geek joy, I'm talking about What is it that made you become a programmer? I Imagine that everybody here remembers their first program. Yeah I'm not seeing anybody. Does anybody remember their first program cool. Okay, I Can't really see um So I think this might have been my first program you guys recognize this. Are you all too young? Although actually I think probably it was just the first line that was my first program and the second line came later And look it gets better When I first when I first read the slide I had name as input name and My friend was like We didn't have multi-character variables at the time and I had forgotten this I had completely forgotten and then I remember the dollar sign I was like dang. Okay, so So when I think about what it felt like the day I wrote this the day I got to see You know, I typed something and the computer did something. I just like Blown away. That's like the most amazing thing, right? So that brings us into like how we became this like you know You don't become a programmer because somebody says it would be a good career choice. I mean not usually not for very long Right you have to love it But then complexity Dang it So we end up in these giant messes Which I think I heard I missed Sandy talking about messes, which is bumming me out really badly, but um We end up with this being mired in legacy code with a company that won't let us write what we think we should be writing and it's like So the geek joy starts disappearing and we're like, why am I doing this and then does anybody know who these quotes are from? Just based on one word I'll bet you can name them. That's right. Uncle Bob. Dang So Uncle Bob blesses heart. I love the man and I love what he thinks of code You know, we have the same view of what beautiful code is except that he thinks that it's driven by fear And that really breaks my heart Because I don't think fear works like it's fear that makes us not refactor Oh, but I have to get this out or like, yeah, the customer is gonna yell at me or whatever, right? It's fear that makes us not write clean code So as much as I love him, I really wish you would stop with that So to me clean code Is about these things. It's about profluence. It's about Not living in hell It's about not building a hell for myself that I have to then deal with right because You know, I deserve better. I deserve joy So this is my theory And it's not that it doesn't also help us You know be more pleasant to work with for other people as well But I'm not motivated by Fear of being irresponsible or fear of being unprofessional I'm motivated by This is why I code Right. I code because I love to work with systems that make sense. For example There's this thing I say Why are their shoes in the refrigerator because I'm looking at some object Set up that has these ridiculous inheritances and these ridiculous like it I remember as I'm learning this I'm learning by the way, I started out as an apprentice two years ago I was coding back in the day and then I quit For like 20 years. So I came back and I'm asking my pair How is how is a customer a car or maybe it's a car a customer This makes no sense to me and I asked him like five times when we go back and forth and he's like, oh You mean why does it make sense? it doesn't and it's because It's because I was working in code that was written out of fear Like people were not doing the thing that we have this We have these options for beautiful code that makes total sense and that's what we came here for Right. We didn't come here to write like crap and not clean it up and live with it That's not why we're here. We could go like build bridges or something So there's all that complexity and there are a lot of people here to tell you how to deal with complexity But what I want to tell you is why it's worth it All right, that's like Well, let's start with this So recently human beings have discovered that we can learn from nature how to deal with complexity Nature knows how to do that nature does these amazing things that we can't even begin to imagine right? We have brains and like ecosystems So we're modeling nature now and we're trying to understand and embrace emergence When we tdd We teach our code little tiny bits of knowledge behavior that we want right The tiniest we can come up with and then we let the code Tell us what it wants to look like Assuming we're doing the rest of it and the refactoring and JB Reinsberger, I don't know if you know him. He's one of my favorite coaches because he loves code That's beautiful and he says If you do these two things remove duplication and fix bad names You'll get to Like the four rules of simple design or whatever you'll get to clean object oriented code Not that those are easy to do They take lots of study They take lots of reading sandy mess's book And listening to Justin Searles and whatnot but We do this because um We can't hold it all in our heads When we try to hold it all in our heads It gets ugly and unpleasant and icky And my heart doesn't smile And if you try to hold it all in your head The best you can come up with is the best that you can come up with and Emergence tells us we can do better than that nothing a slide. That's a sex and I get nothing Okay, there's a reason Sexual reproduction it occurred to me As I was thinking about this that sexual reproduction is collaboration Right And I don't I don't mean collaboration between people I mean, it's the way that this This world nature right that the expert at emergence that we have all around us has figured out to Not try to have it all figured out Well, I'll throw these two things together and see how that works So I think that's kind of cool Emergence is when something Bigger than the sum of its parts comes out Right Like when we cooperate with each other we both contribute or we all contribute when we collaborate with each other We keep bouncing things back and forth until new things emerge that we've never even thought of either one of us I was told if you're going to make a slide with a bunch of text you should either read it literally or Don't say anything while people read it What do you think? So that moment when you're looking at code with another developer and you're puzzling over it and you can't come to an agreement Well, they see they told me not to do that not to the paraphernalia And then something happens that neither of you could have predicted That's what emergence is It's a freaking beautiful thing It's amazing how many of you have paraprogrammed And how many of you have had an awesome experience pair programming at least once Yeah Those of you who haven't should meet up with one of those who have and pair Because it's really amazing This is actually the slide where I'm supposed to say that cooperation has two people doing their own thing And collaboration is when something new comes of it. So I'll say it again Which brings us back to geek joy And to the idea that collaboration is love Or it's part of it. It's not all of it right holding a newborn baby Standing on top of a mountain all those things are also amazing But collaboration is one of them Collaboration gets me these things So how do you get to collaboration? How do you get to those kind of art smiles? I just made that phrase up and it's really a weird one, but I like it You get there by letting go of keeping it all on your head Because knowledge needs room to grow it needs criticism and it needs things to bounce up against Right it needs to change develop It means letting go of getting it right the first time That means letting go of your need to be right Letting go of your need to have it figured out Being able to guess Change your mind This is a big part of pair programming Is the ability to be To go down a path that you don't think is the perfect path and see what happens discover what comes of it And it means letting go of holding back as you Bring unique things to the To the collaboration right you bring Your own curiosities Your own confusions your own questions and if you're holding back trying to look smart or trying to avoid conflict Then beautiful stuff doesn't emerge We don't get the same kind of beautiful code that we get if we're all in Sorry Seriously have a cold it's bad Um So confident humility Is Something i talk about when i'm talking about pair programming a lot And it's something that i think is involved in being able to code with love The reason i say confident is because You come in knowing that you have something to offer And you bring all of who you are to the work you're doing And know that emergence doesn't happen without your participation Right like ideas have to flow And so you have to bring everything that you have And i bring this up because you know a lot of us are Noobs at something a lot of us feel like we don't know anything You know that that first couple weeks on the job on a project When you spend most of your time trying to not look stupid Is it just me I think that's a thing so Confidence means you're willing to be there fully and not hide in a corner and not try to look You know not try to not draw attention But humility means knowing that you're fallible Knowing that every single idea we have is a little bit wrong Right Like they improve because of that We have ideas about how physics works and then somebody comes up with something new and we go Oh, there's more to it than we thought So we're always wrong But we're always getting closer As long as we're keeping to do this work It means being curious and investigating It means listening to the people you're working with Listening to your pair listening to your team And then showing up with all you've got Because confident humility leads us to joyful geekery which Leads us to these things And code that's infused with love Excuse me So that is all I've got and I'm noticing that I have 12 minutes left for which I apologize Um, but I'm glad I showed up with my cold anyway So do you guys have comments or questions? Hard to have questions about love and software, isn't it? Yeah My first program experience um Probably my first real pair program programming experience was um With a guy who knew a lot and was setting out to correct me Without doing a very good job of it without explaining where he was coming from And I think I went in the bathroom and cried Actually, if I'm thinking of the right one as the first one I would say I went in the bathroom and cried I'm glad you brought that up No, I really am though because like I have had some Really interesting pair program experiences and some that were really awesome and some that were just horrific That's why I said that the people who've had good ones should pair with people who haven't because It makes a huge difference And the first team I was on I walk into the room and the super agile Super stars who were supposed to be coaching the team were off on their own sort of Coding because they were experts and so that's what they had to do And there was one of the coaches who was sitting next to a woman who was working on the team And he's on his laptop and she's on the big monitor And I say I thought you guys were pairing and he said We're doing what I like to call side-by-side pairing And he knows who he is and he constantly berates me for bringing this up but That is what he actually said and when he explained to me what that meant It was that she writes the code and asks questions occasionally and he Checks his email or whatever or does something else entirely So that's not collaboration It doesn't create the new stuff All you get is whatever code she can write by herself, right? Still glad you brought that up. Yeah Say again What did I do? Oh I um I raised children Um, and I did it Thank you I uh didn't send them to school Because I came to see that as a suboptimal way for them to grow So they stayed home and did what they wanted And they all turned out marvelously by the way I can tell you firsthand that you do not have to teach children to read. They will learn it by themselves Um, especially if they have lots of video games so then It's true. So so then five years ago. I dropped everything I was doing freelance work and stuff and I dropped everything to study spirituality That's actually true I went to azendo every day and I'm like, I got to figure this out. So that's what I did And two years ago, I came back to code Which I love Anybody else? Yeah Yeah You know, he is often a good pairing partner and now I have learned My part of the deal which I didn't know at the time Which is to grab the keyboard and say listen Dude, sit on your hands and talk to me like that's one of the things that Confident humility is about is being willing to take your To take your position to stand and and say I'm part of this right So now when I'm pairing with someone and they're like going off and I'm lost I say wait, I'm lost And I feel inside. I'm terrified that I'm slowing everybody down But it actually turns out always that I'm contributing Anybody else? Yeah Is uncle Bob what? Only about here, you know Um he's like Okay, just to me He's like, um That's how he loves Right, he wants to encourage you to be as good as you can And I think he doesn't trust that you can do that by striving for love He wants to make sure that you get discipline And uh, it's not my approach, but it's his approach Yeah, I don't think I don't think anybody is all about fear. I think we're all about love except we get scared Hmm Challenging for what? Oh, he's trying to be challenging. Yeah That's probably true I know that people love him Thank you for asking How can we learn to be more courageous and less afraid Part of it's talking to yourself right and there's So in a half an hour, I wasn't able to talk about this very much, but I actually think that um loving yourself the way you love other people Is the answer to that And that involves sitting with yourself and saying Okay, if my best friend did what I just did what would I say to them? Would I say wow, you're a total asshole like I say to myself? Or would I say hey, you know, you did the best you could it's all right Right befriend yourself Somebody so the shambhala center is right around the corner, right? You could go there Seriously pay my children studied there. I think I don't know how to pronounce her last name But she writes books about that stuff and she's a very wise person about befriending yourself You pretty much have to befriend yourself before you can befriend the world you want to walk through the world loving It's got it. You've got to love yourself And that's like there's all these calendars with attitudes on them that Sound great, but kind of make no sense. That's one of them, but it does make sense. It's just you have to dig and dig anybody else Yeah, do you guys need me to repeat the question or was that he asked about pairs with different skill sets Yeah, I do. Um, if you're the senior person sit on your hands and talk And talk and if you're the junior person if you're junior enough Be humble enough to let them tell you every move to make if that's what needs to happen And then when you're ready to make moves of your own then say that out loud But the other thing is you have to I mean you have to be brave You have to say give me the freaking keyboard Like after the fourth time you've asked nicely You have to say look i'm falling asleep either. I'm here pairing with you or I will go do something else, but we got to We got to figure this out. This is why it's not unicorns farting rainbows, right? It's like saying hey dude, are you not listening or what? It's about being like loud and serious sometimes Senior person sit on your hands talk to your pair Listen to them make sure they keep up because they're gonna say to you They're gonna say is that really the smallest thing you could do that the simplest thing that could work And you're gonna be 10 minutes into your brilliant solution and you're gonna go crap No, it's not One thing you get from a junior pair is you get to learn how to get reset hard a lot I know this from being a junior pair I go, you know, it's been like 20 minutes really Get reset hard Junior pairs you have a big responsibility your responsibility is to say I need to keep up We're pairing let's do this That's important. It's really like you have to step up and take the leadership role people who love pairing This is a rant that ends my pair programming talk, but I'll end this one too with it If you love pairing if you understand collaboration if you give a crap about emergence It is your job to go out and share that with people Because pair programming isn't going to spread as long as people are doing it in a half-assed way Or as long as they're not getting good experiences Right, we're not going to get collaboration to spread unless people who love it and understand it are out there Talking about why So even if you're a total noob, it's your job Those of you that raise your hands about positive pair programming experiences. It's your job Okay, I'm good. Any other questions? Thanks