Date: Wed, 02 Dec 2020 23:34:31 -0800
<p>Welcome to Remotely Interesting brought to you by <a href="https://www.netlify.com/?utm_source=remotelyInteresting&utm_medium=episodeSummary-tzm&utm_campaign=devex"><strong>Netlify</strong></a>.</p><p><strong>People who were remotely interesting:</strong></p><ul> <li><a href="https://twitter.com/bencodezen"><strong>Ben Hong</strong></a></li> <li><a href="https://twitter.com/cassidoo"><strong>Cassidy Williams</strong></a></li> <li><a href="https://twitter.com/jlengstorf"><strong>Jason Lengstorf</strong></a></li> <li><a href="https://twitter.com/philhawksworth"><strong>Phil Hawksworth</strong></a></li> <li><a href="https://twitter.com/sarah_edo"><strong>Sarah Drasner</strong></a></li> </ul><p>Most of us are working remotely these days due to the pandemic. Our team has found a the pair and mob programming has really helped improve our mental health and productivity. Hear us out, it's actually really fun.</p><p><strong>Pairing past, present, & Sarah makes people cry</strong></p><ul> <li>Vulnerability in pair programming</li> <li>How low Jason's ego is + Jason crying</li> <li>Our histories of pair programming</li> <li>How does remote pairing compare to in-person?</li> <li>What we've learned from <a href="https://www.learnwithjason.dev/">Learn with Jason</a> and learning with Jason and what Jason's learned from Learn with Jason</li> <li>Getting teams out of silos to aid in communication & teamwork</li> <li>Sarah makes Phil cry</li> </ul><p><strong>How we do it & How not to?</strong></p><ul> <li>Building trust and avoiding divergence among teams</li> <li>We don't do formal pair programming (open a zoom room and hook up loopback and hang)</li> <li>Challenging pair coding memories?</li> <li>Treating pair programming as building culture instead of a numbers game</li> </ul><p><strong>Great Tools We Love & Use</strong></p><ul><li>Pair/Mob programming tools</li></ul><p><strong>Tidbits & Thoughthings™️</strong></p><ul><li>what is something right now that you do to feel connected now that the world is remote</li></ul><p><br /></p><p><strong>SHOW NOTES:</strong></p><ul> <li><a href="https://www.learnwithjason.dev/">Learn with Jason</a></li> <li> <a href="https://www.netlify.com/blog/2020/03/31/how-to-scope-down-prs/?utm_source=ri&utm_medium=ri-episode-8-notes-tzm&utm_campaign=devex">How to Scope Down PRs</a> - by Sarah Drasner</li> <li><a href="https://lengstorf.com/effective-project-planning/">https://lengstorf.com/effective-project-planning/</a></li> <li><a href="https://whimsical.com/">https://whimsical.com/</a></li> <li><a href="https://loopback.io/">https://loopback.io/</a></li> <li> <a href="https://www.conferencecast.tv/talk-26898-vs-live-share-can-do-that">vscode live share can do that</a> - Burke</li> <li><a href="https://blog.codepen.io/documentation/collab-mode/">codepen collab mode</a></li> <li><a href="https://tuple.app/">https://tuple.app/</a></li> <li><a href="https://miro.com/team-collaboration/">https://miro.com/team-collaboration/</a></li> <li><a href="https://www.figma.com/">https://www.figma.com/</a></li> <li><a href="https://v3.vuejs.org/">vuedocs</a></li> <li><a href="https://docs.netlify.com/site-deploys/overview/?utm_source=ri&utm_medium=ri-episode-8-notes-tzm&utm_campaign=devex">Netlify Build Preview</a></li> <li><a href="https://www.notion.so/">https://www.notion.so/</a></li> <li><a href="https://youtu.be/ijBuKsxq7Oo?t=14">what are floppy disks?</a></li> <li><a href="https://www.partycorgi.com/streamers/">https://www.partycorgi.com/streamers/</a></li> <li> <a href="https://www.google.com/search?q=cat+cheese+throw&rlz=1C5CHFA_enUS734US734&oq=cat+cheese&aqs=chrome.0.69i59j69i57j69i59j0l3j69i61l2.4238j0j7&sourceid=chrome&ie=UTF-8">cat cheese throw</a> (at your own risk)</li> </ul><p>As always, we hope you find it remotely interesting.</p><p><strong>TRANSCRIPT:</strong></p><p>Cassidy Williams: [00:00:00] Previously on Remotely Interesting, </p><p><strong>Phil Hawksworth: </strong>[00:00:04] it says it seamlessly here and no one will notice it. It'll just it'll sound perfect. Impeccable audio continuity. Boop. </p><p><strong>Cassidy Williams: </strong>[00:00:12] Hello, and welcome to remotely. Interesting. </p><p><strong>Phil Hawksworth: </strong>[00:00:15] This is remotely interesting. </p><p><strong>Divya Tagtachian: </strong>[00:00:17] that seems</p><p>a little presumptuous. </p><p><strong>Sarah Drasner: </strong>[00:00:19] No, no, that's the name of the show.</p><p><strong>Cassidy Williams: </strong>[00:00:29] Oh, heck. Welcome back everybody today. We're going to be talking out. Oh wow. I'm getting giggles already. Oh, on a roll. we're going to be talking about, connecting with your teams through pair programming, mob programming, our experiences doing it. it's a funky time in the world. And so you kinda gotta figure out different ways to connect with your team and stay.</p><p>Human because it's hard to sometimes. </p><p><strong>Phil Hawksworth: </strong>[00:00:54] Are you doing okay Cassidy? Cause you started the whole podcast there with, Oh, heck so straight away though. Is she okay? You doing alright? </p><p><strong>Cassidy Williams: </strong>[00:01:03] Great. I'm </p><p>great. </p><p>But yeah. So on our team, we do a lot of pair programming and mob programming stuff, and I love it. Even if it's just Watching Jason type really fast. it's really great to not only see how the code gets written and different people's mindsets, but I understand it better just because I'm doing it with other people and we're talking it out the whole time. I don't know if you people like </p><p><strong>Sarah Drasner: </strong>[00:01:26] it. Yeah.</p><p>I think maybe we could talk about the origins for just a second. Tara was, brought up that she wanted to do some pair programming across the team and she started to put time on people's calendar to do And I think that was really cool because we could jump in and, see what each other was working on.</p><p>And. Help each other out and rubber ducky solutions. And then from there, I think having Jason on the team obviously is really helpful because, he does learn what Jason, all the time, which has that kind of pair programming, feel to it. But also like we talk a little bit about how, there's this vulnerability in pair programming and mob programming that allows the team to see each other and work through moments together and get the same foundational knowledge together, but also fail a little, celebrate a little, like all of those things.</p><p>And Jason does a really good job of, being super low ego through that whole process. I feel and that really helps every bring everybody together and get on the same page. So that's awesome. </p><p><strong>Jason Lengstorf: </strong>[00:02:26] That I wasn't going to cry on the podcast, but today might be the day. </p><p><strong>Phil Hawksworth: </strong>[00:02:31] Yes, let's get it. let's all heap on Jason.</p><p>And I also think he's lovely and other ways that I'll now list</p><p>finally, but I do find, I've always found that pair programming has been a bit intimidating if I'm very honest, and I haven't done it as much formerly throughout my career as perhaps I would've liked, I think some places I've worked, quite structured and strict about it, but most places I've worked have not.</p><p>and they've seen it as something that yes, you can theoretically do. And they've heard about it and would like to get there, but actually doing it as a discipline is. It's quite different. So my experience has been pretty patchy if I'm honest. So how has everyone else just done lots of pair programming throughout the years, or is, are other people similar to me where they've been in and out of doing it?</p><p>Perfect. What about </p><p><strong>Cassidy Williams: </strong>[00:03:23] my first job actually in the industry was just pair programming. Like the entire company did every single feature as a pair programming thing. And so it ingrained that in my brain where literally the first two weeks on the job was just pair programming with someone to fix some bugs.</p><p>So you get to know the code base, then every project you were on, you were always assigned. You're pairing buddy. and that's what you did. and I haven't had that sense of, I think that company was unique in that, but, I think it ingrained some really good practices in me to actually communicate better and get talking about my code and not just making a giant PR with no comments and going forward.</p><p><strong>Sarah Drasner: </strong>[00:04:01] Yeah. something that's interesting in the pandemic setting too, is I think. Earlier in, I've been a manager for engineering groups for a while and I used to do it in the office, right? Like I would have juniors come onto the team. And what we would do is we would sit next to each other in pair for a while and onboard.</p><p>And now that we're in a pandemic that is taken away, but it's, there's no real reason why it can't be done remotely or, done on a call. </p><p><strong>Ben Hong: </strong>[00:04:29] Yeah. in my experience, similar to Phil, I haven't seen it really done as consistently. I would have loved to have Cassidy's experience where I was just like, that was just like the norm.</p><p>I think, working in office environments that has, it took it for granted that you could just swing by someone's desk and just be like, Oh, can you just look at the, my monitor and you end up doing this sort of Spontaneous pair programming, but I think to Sarah's point in the pandemic and as more people are going remote, like it has to be something that's done with intent.</p><p>Now, I think that's where it's definitely something that should be, just, yeah, I've done a lot more because I know doing it with Jason just yesterday was a Oh, it was awesome. I can't speak highly enough about it. </p><p><strong>Phil Hawksworth: </strong>[00:05:05] I don't think anyone who's trained themselves so rigorously to be, do pairing. Jason, you've effectively built up your pair programming muscle from doing, how many Len with Jason's do you do a month?</p><p>is it like two a week? You do </p><p><strong>Jason Lengstorf: </strong>[00:05:18] two a week. </p><p><strong>Phil Hawksworth: </strong>[00:05:18] Yeah. </p><p><strong>Jason Lengstorf: </strong>[00:05:22] but I feel like this is actually so like the learn with Jason I feel is a continuation of something that I didn't realize I was going to miss when I left traditional offices where, so w the start of my career, I was a fully remote agency.</p><p>I never pair program. And I always had this sense of. Disconnection. I always felt like I was the only person who understood what was going on and I would try to write these docs or get the rest of my team to get on the same page and it wasn't working and it would frustrate me. And at first, because I was, young and 20 something, I thought it was because I was a genius and everybody else was Nydia.</p><p>And then as I got older, I realized that it was because I wasn't communicating, I wasn't bringing people along with me. So when I went over to IBM, this thing that I immediately learned was I joined the team and whenever somebody would get stuck or whenever we would have something that was trickier or sticky, we would all just gather around a laptop.</p><p>And then we would work through that idea together and we would write pseudo code so that we could all say, no, I hate that. Let's roll it back and do it a different way. Or we would, it was just this kind of amazing mind-meld that happened when everybody was looking at the same screen.</p><p>and so learn with Jason was almost like, how could I do that? But with the whole community, and what I really love about kind of pair programming and mob programming or live streaming is this concept of being able to take something that worked so well in person.</p><p>And try to figure out ways to make those same connections when you're not in the same country as somebody else, how do we do this with somebody in Nigeria and have a really strong connection? </p><p><strong>Sarah Drasner: </strong>[00:06:57] Yeah. one thing that I want to double click on in there, that's a. Gross saying, but whatever</p><p>is this concept of bringing everybody together because, and, bringing people along and communication, because what I've seen in teams that start to have good dynamics versus unhealthy dynamics is sometimes when people work too much in silos without. Getting together, you get a thing in PRS where people are only communicating through, PR review comments, and then they can deviate one person feels one way.</p><p>Another person feels the other way. Sometimes, in a direct land that can lead to arguments in an indirect land, it can lead to passive aggression. And the comments can go on for a long time. What's nice about the mob programming. The base concept. if everybody's on the call for the know foundational aspect, then the chances that everyone's going in the same direction for the subsequent PRS is pretty high.</p><p>And even if they, there is some tangles or naming conventions are off, we had that problem. I think the problem was mine. was it, is. It's very easy to recover from that because people can, people are more, willing to say Hey, I think I'm on the wrong page here.</p><p>Let's all get together and talk it </p><p><strong>Jason Lengstorf: </strong>[00:08:17] over. Yeah, I </p><p><strong>Ben Hong: </strong>[00:08:19] think that's an excellent point. just because pull requests, it really is an art. And I think when most people approach it, they're just like adding things. You need to change it. It can come up almost negative over time. And with the asynchronous nature of especially remote programming, things are starting to fester, whether they just come off in the wrong way, just the way it's written, because English might not be someone's first language.</p><p>so I absolutely agree with Sarah on that as far as just being able to resolve those tensions is how those conversations live can make such a huge difference in how messages really received. </p><p><strong>Phil Hawksworth: </strong>[00:08:45] I love that sentiment of beetles are an art form. I completely agree. I think the communication that goes on in those kinds of conversation threads, given that you, even if you weren't working remotely, even if, that is the medium, isn't it.</p><p>If you're using that medium as a way of communicating about a thing, Brevity can often really lead to confusion. So I think there is a need to really over-communicate and I don't know, I feel like my efficiency drops sometimes in the quest to be, I dunno, very explicit and drive out any ambiguity.</p><p>But I think ultimately that's worth the effort, but, but I'm completely with you. I think it really is a bit of an art that takes some practice. </p><p><strong>Sarah Drasner: </strong>[00:09:27] But you have such good communication skills. I really appreciate that when I am working a sync with Phil, I always can understand so much context because he's been very clear.</p><p>And I think that takes a lot of empathy to be. That clear because you have to think through how the other person is perceiving the thing, not just what you're trying to say about it. And so that helps, especially as we're over, across time zones, because I'm not act, I'm not sometimes working at the same time at, as Phil who's in the UK.</p><p>So that's especially valuable </p><p><strong>Phil Hawksworth: </strong>[00:09:57] then. It's got me going now. She's got she's </p><p><strong>Jason Lengstorf: </strong>[00:10:00] I know </p><p><strong>Phil Hawksworth: </strong>[00:10:02] one at a time, one at a time, </p><p><strong>Jason Lengstorf: </strong>[00:10:04] but I think so what I will add on to that, and that I think is such a like important thing to bring up is that when you're saying that you feel like your efficiency drops, I would argue that your efficiency is actually higher because what I think you're doing is you're embodying that cliche of go slow to go fast.</p><p>because what I notice is when we work on projects, where we take the time to build this context, to get in a room and all work together and have these conversations and make sure that we've all got a deep understanding of not just what our tasks are, or even just what we're building, but why we're building it and what it impacts.</p><p>We don't have to have those, Oh my God, pump the brakes. What are we doing here? Why are you off in this direction? Who is anybody talk to this developer in the last week? does anybody know what they're doing? And this is something that, when I was on like in-office teams, remote teams, this is a constant problem in projects is everybody has their first meeting and we all go great.</p><p>Got it. Never talk to you again. And then we all run off in different directions. And at some point everybody's just feeling like I have no idea what's going on. And then you have to, you've got to circle the wagons. You've got to have the big, regroup meeting and untangle all the work that was going in the wrong direction and make sure everybody's pointed in the right direction again.</p><p>And then you just set everybody loose again with no context for two weeks like that is so slow in the long-term. And it's so frustrating. It like undermines your sense of autonomy and control versus this kind of like. Frequent quick touch base, make sure everybody knows, what are you doing and why?</p><p>And you have these little chats. That lead you to always be moving in the same direction and catch that th that divergence really early, </p><p><strong>Cassidy Williams: </strong>[00:11:46] it builds so much trust on teams to do that, too. Just having those conversations and everything, you really understand people's mindsets more and how they approach certain things.</p><p>And so if you ever do go off and work individually, you have the context, like you said, but also you. You aren't just what are they thinking again? And stuff like that. like you, you get their mindset in check </p><p><strong>Jason Lengstorf: </strong>[00:12:10] a lot more. </p><p><strong>Sarah Drasner: </strong>[00:12:11] That's also why like scoping down to smaller PRS allows for that a little bit, because if you go off and meet, create an entirely huge PR without talking to people and change a bunch of stuff around without messaging, or like allowing people to see what's inside of your work, then a lot of communication breakdown can happen.</p><p>But also it's hard on reviewers to understand the stuff. State of a really large PR. So when you have a bunch of smaller PR is what you're in essence saying is I trust you all to look at this and we can get on the same page and then we can do another one soon. Like it doesn't have to all happen in that single.</p><p>Burst of work. I think that is something that can help with throughput, but also help with teamwork in the sense that you're having empathy for the person who's reading your code, that you're not giving them so much at once to understand and comprehend. </p><p><strong>Phil Hawksworth: </strong>[00:13:01] Yeah. So many of these things are, they're, they matter when you're working together physically together, but they're exacerbated by the fact that there's distance.</p><p>I think the, Any project that I worked on when I was doing, leading development teams, the best contribution I ever made was not any of the codes, but it would definitely be the everyone let's gather around this whiteboard for one hour and talk about the shape of the thing that we're making.</p><p>Where we just kicked the ideas around, ended up with a big doodle on the wall and then everyone would go, everyone will be like, Oh yeah, we have this. These are the pieces we need to make because when everyone has their own percep like a mental model, it's just not always exactly the same shape.</p><p>So the, I think, I think doing that is. Equally and probably even more valuable. Now I had a really good time actually, when we did that on a project that, where we're all working together on at the moment coming soon, it was really, it was a really fun session early on where we were, we had an idea of the thing we were going to make, but okay, what does this actually look like?</p><p>And what's the. what's the data model for this? So how things organized? And we, we had a big group, white boarding session with what was the tool Jason used or was it was, </p><p><strong>Jason Lengstorf: </strong>[00:14:07] it's called </p><p><strong>Phil Hawksworth: </strong>[00:14:08] whimsical. That was it. where together, we scratched out through a bit of conversation and just nudging ideas around this kind of shared understanding of the thing we were going to make and doing that early.</p><p>I. I really enjoy those sessions anyway, but I think that's so valuable. So that later you can use that as the springboard to get going. </p><p><strong>Jason Lengstorf: </strong>[00:14:28] that sort of thing is really near and dear to my heart. I've written a bunch of posts about the importance of planning and where to draw the lines for, what's not enough planning versus too much planning.</p><p>and in thinking about that sort of stuff, and just like when you're sitting in a room. You naturally have this poll where everybody is I'm not really sure where to start. And then somebody was like, all right, what are we building? And then you all spend your chairs around and talk and remotely, I think it's, if it's not baked into the culture, if it's not part of everyone's day to just say, Hey, we should talk about this.</p><p>Then I think there's more of a pressure to say, okay, I don't understand it, but I need to figure it out on my own. And that sense of like isolation and pressure is really, it's really crushing and it can make you feel like you're not really on a team. and I think like one of the things that I really love about the way that we're building the culture here and you know why I was so excited when Tara started proposing that we do pair programming and Netlify is, is that it's built that culture where now we don't like we don't have.</p><p>Formal pair programming. And I think this is actually an important thing to call out. And we can talk about some of this, but like we don't do formal pair programming in the sense that anytime we work, we are pair programming or that we must do pair programming in exactly this way.</p><p>Instead, we have this kind of informal culture of like recently this week I've been just opening a zoom room. And I hooked up loop back so that I can play Spotify back through it. And I just use it like I'm working in a public space and then people drop in and out throughout the day and like we'll pair program for an hour and then somebody drops off and somebody else will come in and ask a question and then they drop off.</p><p>And it's such a great, like approximation of that office environment where, it's more casual. It's like shoulder tapping as opposed to. Formally structured, you have to work this way. And I really love that. </p><p><strong>Sarah Drasner: </strong>[00:16:22] Yeah. I think one thing that I noted was when Cassidy joined, she was, I think we used to have the ones where we were had like meetings with, that were pairing and meetings that were mobbing and Cassidy did a good job of calling out in our private channel.</p><p>Hey, can someone jump on a zoom with me really quick? And I think that was the first impact. Time that we started doing stuff like that. And that really helped break that wall because I think at first, it was like, okay, this is the time for the pair programming time. and so opening that up a little bit to Hey, I just don't, I just need this like one little piece.</p><p>You know of context so that I can move on was really helpful too. </p><p><strong>Cassidy Williams: </strong>[00:17:02] A lot of it ended up just like me, rubber ducking, Jason, and him saying you made this typo or something </p><p><strong>Phil Hawksworth: </strong>[00:17:08] like that. That's the other thing I love that. it, since it doesn't have to be, I don't know if I can do Sarah's manager voice. we are all going to be pair programming.</p><p>Is that how it works? your manager. that was it the right authority. But yeah, we don't have to have something as formal as that. I really liked the fact that we've. Got to the point that anyone can say, can anyone just bear with me just for a few minutes on this? And it's more of a.</p><p>Just grabbing, tapping someone bot on the shoulder and saying, just look at my screen for a second. the number of times that someone on the team has helped me get over a hump that I've been really struggling with a long time, and then it's a conversation and in five minutes, sometimes that will.</p><p>You're looking at it from the wrong angle. So look at it from over here. You're hopefully you're holding it wrong. and it's so valuable to not need to set aside an hour to do have a session, but just to be like, here's a quick chat, another perspective, another pair of eyes jobs are good. And I really liked that.</p><p><strong>Cassidy Williams: </strong>[00:18:04] I was just going to ask, have any of you had. Bad experiences with pairing or just challenging times where you're just like, Oh, I don't know if this is the best way to go about it because I admit most of mine have been pretty positive except for when I was forced to learn them, which then I drank, no, it was fine.</p><p>But </p><p><strong>Phil Hawksworth: </strong>[00:18:20] that was terrible. Forcing them down you </p><p><strong>Cassidy Williams: </strong>[00:18:24] no, but in that first job, for example, when I was first starting to pair, I was pairing with this person where they were so strict in their development practices that like we were pairing in person. They literally would smack my hand if I was went over to the arrow keys.</p><p>Cause they were like, VIM is HK JL, learn it. And I, in a way it forced me to learn them. But on the other hand it was just let me be. And I was for awhile. I was very much in that person's mindset. Which I don't think our team has trouble with that. Luckily, but have any of you had not so great pairing experiences because of Jason's personality or something?</p><p><strong>Ben Hong: </strong>[00:19:04] He was so mean to me yesterday was terrible. </p><p><strong>Jason Lengstorf: </strong>[00:19:08] I actually, my very first, pair programming experience was awful. I was, I wasn't even in web development yet I was working in pre-production ends up at a, like a printing press. And I had just started learning how to do web development. And I had a project I was working on, I was trying to build a website for my band and I asked the in-house web developer.</p><p>If he could help me look at something. And so he came over, we sat at my computer and, we opened up the code and he just looks at me. He goes, can you tell me the difference between cell spacing and cell padding? And I was like, they control the distance between things. He goes, you're not ready to be a web developer.</p><p>And he just walked away and I was like, maybe I don't want to work with people. I feel like I was like a formative experience that led to me working alone for so long. </p><p><strong>Phil Hawksworth: </strong>[00:19:54] You're not ready to be a web developer. That's </p><p><strong>Jason Lengstorf: </strong>[00:19:57] such a, it was such a tra Oh my God. That was, so I, but in retrospect, As an adult.</p><p>I'm okay with it. </p><p><strong>Phil Hawksworth: </strong>[00:20:06] I'm fine. I'm fine. Now everybody Jason spelling </p><p><strong>Jason Lengstorf: </strong>[00:20:09] it. Yeah. I've grown. You </p><p><strong>Cassidy Williams: </strong>[00:20:11] should see all the tears streaming down his face. Everyone. </p><p><strong>Phil Hawksworth: </strong>[00:20:13] Yes. Yeah, no of joy this time. </p><p><strong>Sarah Drasner: </strong>[00:20:17] I think tech interviews are probably. Pretty good example of bad pair programming when they're done wrong. when people feel like they're up against something and that they can't do their normal development practice and that people are judging them and not because that's someone watching you in a way that they want you to perform for them less.</p><p>More than it is pair programming. And I think if tech interviews went more towards pair programming, like true pair programming where it's a collaboration, they could probably suss out their skill level just as well. In fact, probably better than the whole performative, like then spur my monkey. </p><p><strong>Jason Lengstorf: </strong>[00:20:55] I feel like that is an issue that should probably be addressed.</p><p>especially if somebody is new to this and is thinking about. Trying this out is that, if you treat pair programming as any kind of like metric it's going to backfire, right? Like it has to be a social thing. It has to be a thing that's there to make the team feel included in and together.</p><p>Because if it becomes some kind of weird like internal spy network where you're trying to boost productivity by making sure your employees watch each other work. Or if it becomes something where your senior developers are trying to determine which junior developers need to go on performance improvement plans like that is just going to, that's going to undercut the team to ribbons.</p><p>It's going to be a mess. if you're using it in a way that's Hey, we want to be the same team. We can't go get lunch together right now. We can't have team offsites. We can't do the hallway. Like we're all walking to a meeting and making jokes. So we have to create that space somehow.</p><p>And I think so much of our meetings. If you just listen to snippets sound a lot, like this podcast where we're just kinda talking and joking around and making each other laugh, but at the same time, we're getting so much more done. And we're making sure that we're all on the same page. And I feel like if we, if you treat pair programming as that as building culture, as opposed to something that's going to boost key performance metrics, then you're going to have a good time.</p><p>and I think if you treat it any other way, you're probably going to be disappointed. </p><p><strong>Phil Hawksworth: </strong>[00:22:28] you just reminded me of, an experience I had, as an agency some sometime ago where we were, I was proposing, we should do pair programming on a few tasks and a few projects. And I got pushed back from one of my bosses, because of.</p><p>The perception of what the output would be. It's wait, so you want to take two developers and have them work on one task together, but we've only got this many hours to get this project done. So you're going to take twice as long and completely missing the point about, quality and output and all of those things.</p><p>It's just we've got this many. Pairs of hands. We want to see this many people typing on keyboards and it was just a complete, I hadn't even thought about that for such a long time. And it's only when you mentioned metrics, then I suddenly relived with a shiver down my spine that, so thank goodness.</p><p>we've I think I know we've moved past it, but I think largely like the industry, I think has moved past that it's so common now, right? Custody. </p><p><strong>Cassidy Williams: </strong>[00:23:23] Yeah, no, I have heard that exact thing. isn't that just making it take twice the time to work on a feature, then I've heard that so many times from so many people and yeah, you have to emphasize quality and the fact that multiplies are seeing it, but then it also, it makes the actual PR code reviews go so much faster because.</p><p>Good. Multiple people have looked at it already and someone else can be just like, okay, thumbs up. Because multiple people have worked on it. Meanwhile, if you have a really large PR that only one person worked on that could take multiple eyes looking at it and be just like, okay, I think this is good.</p><p>Okay. It works on my machine. And then you get time taken away at a different end of the spectrum. And I'd much prefer the better quote quality upfront myself. </p><p><strong>Ben Hong: </strong>[00:24:09] And to Cassidy's point shared domain knowledge. That's huge. So that way one person leaves, they were the original author. At least that pair program means you don't have two points of failure, at least instead of the one.</p><p><strong>Jason Lengstorf: </strong>[00:24:18] Exactly. yeah, that shared context is everything. but so I want to, I actually, I want to take this to a slightly more practical place, in the interest of time. so if somebody wants to do this, what are the tools that we're using the, that make this. Good like Phil, you mentioned whimsical as a way to do like whimsical for those who don't know as a mind mapping tool, that'll let you do, little diagrams and sticky notes and stuff like that.</p><p>what other tools make it easy or make it pleasant to do pair programming? </p><p><strong>Sarah Drasner: </strong>[00:24:48] I don't know if any of you used vs code live share, but that's been pretty fun for stuff like that. Burke, I don't know if you know who Burke Holland is, but he, did a conference talk called vs code live share can do that.</p><p>And he had me join remotely and type in the same document as him. And it was a react doc and I mounted view inside of it and put in a photo. Basically, I </p><p><strong>Phil Hawksworth: </strong>[00:25:09] put them in, </p><p><strong>Sarah Drasner: </strong>[00:25:11] I put in a photo of him with the Ghostbusters, no, over his face.</p><p><strong>Cassidy Williams: </strong>[00:25:20] That one, I've played around with. And I think it's really fun. And also a code pen, collab mode. If you're ever wanting to just prototype something really fast, it's really useful to just. Put something together and be just like, okay, that's how that can work. Great. And then you get that instant preview there too.</p><p><strong>Sarah Drasner: </strong>[00:25:34] Did you work on that Cassidy? When </p><p><strong>Cassidy Williams: </strong>[00:25:38] I, so when I worked at code Ben, I pointed out bugs in it and we fixed them. So I don't know if was implemented before I got </p><p><strong>Jason Lengstorf: </strong>[00:25:46] there. When </p><p><strong>Phil Hawksworth: </strong>[00:25:48] you say that, I imagine you actually pointing it's like you didn't just write bug reports. You just stood in front of the screen. I'll look at it.</p><p><strong>Ben Hong: </strong>[00:26:00] Yeah, another good coaching. One was, people might not have heard of it's Tupelo. So T U P L E it's. Basically, if you remember, a coat is a screen hero, whereas like the separate extension that like bill had built in calling and the screenshot was really clean. You could take over monitors, draw on it.</p><p><strong>Jason Lengstorf: </strong>[00:26:16] Tupelo is </p><p><strong>Ben Hong: </strong>[00:26:17] fantastic. I've given it a, I've tried it out with some open-source people and it's really nice. </p><p><strong>Jason Lengstorf: </strong>[00:26:21] Cool. Yeah. I really so whimsical is a good one. I also really like Miro. Miro is good for collaborative planning. it's effectively a whiteboard like you can, you can do all the things that you would do in a whiteboard with sticky notes and, like drawing and arbitrary text.</p><p>And so it's really good for, again, that kind of planning stuff. I also love Figma as a collaborative tool. Like I'm trying to quickly make something happen. Figma has got that multiplayer mode, which is really fun. so that can be really good for getting quick feedback on things.</p><p>and then glitch is another really good one, too. if you need a node server, you can actually run node in glitch. So you can, it's similar to code pen, but you get the benefit of being able to execute like server code as well. If you want to test them, </p><p><strong>Sarah Drasner: </strong>[00:27:02] I would also say that even like nullifies deploy previews for, Ben and I work on the view docs together, and that's been incredibly helpful for seeing how things are laying out.</p><p>As we moved everything over to view press in this last release, it used to be on a completely different, we, we didn't just migrate content and change content. We migrated the entire project. And so it was really helpful to be able to see what was working, what was breaking, like what we were changing and that.</p><p>It's just like worth its weight in gold. </p><p><strong>Cassidy Williams: </strong>[00:27:33] Also notion it's a obvious one to bring up, but just collaborative. Note-taking a notion when, whenever we're in a meeting or something is really nice and useful, and you can also see where certain people are in the doc by just like where their picture is on the side.</p><p>And that's nice and useful. Yeah. </p><p><strong>Ben Hong: </strong>[00:27:50] Coats and text highlighting in your notes, which is </p><p><strong>Cassidy Williams: </strong>[00:27:53] so good. </p><p><strong>Phil Hawksworth: </strong>[00:27:54] Aren't we aren't, we lucky as well that we take for granted the fact that we're building, we're writing our code on top of a get workflow. I know that hasn't always been the case.</p><p>can you imagine trying to do this kind of collaboration remote or otherwise? Really without. That as a foundation. it just seems so such a linchpin and I didn't always have that. I've definitely done the passing files around with version in their title, in their file names and annotations in their file names in the past.</p><p>Not for awhile. I should say that before I get, I need you to be </p><p><strong>Jason Lengstorf: </strong>[00:28:27] five. Remember that too. Like I remember having to put everything into an FTP folder. Like I would just upload a zip file and then somebody would download that and then they'd upload a new version. It was the worst. </p><p><strong>Ben Hong: </strong>[00:28:38] I had a box of floppy disks as a kid.</p><p><strong>Phil Hawksworth: </strong>[00:28:41] One was color coded. Wow. </p><p><strong>Cassidy Williams: </strong>[00:28:44] That's amazing. </p><p><strong>Phil Hawksworth: </strong>[00:28:47] She put it in the show notes. What floppy disks are for people who </p><p><strong>Cassidy Williams: </strong>[00:28:52] it's just like that save button icon. </p><p><strong>Ben Hong: </strong>[00:28:56] Yeah, there you go. </p><p><strong>Jason Lengstorf: </strong>[00:28:58] But it'll hold a third of a website. </p><p><strong>Phil Hawksworth: </strong>[00:29:02] this could easily spiral into an entirely different episode. Couldn't it?</p><p><strong>Jason Lengstorf: </strong>[00:29:09] okay. So on that note, I think maybe we should wrap it up or else Tara is going to come back and listen to this recording and yell at us for being long-winded. so let's do a rapid fire question. What is something right now, pair programming or not that you do to feel connected now that the whole world is remote.</p><p><strong>Phil Hawksworth: </strong>[00:29:27] Do you have one loaded up, Jason? Do you have one ready to go? </p><p><strong>Jason Lengstorf: </strong>[00:29:30] yes I do. So one thing that I do to feel connected is, I get on a discord server, called party Cordy and they have a voice channel that's basically always on. And people will go in there and just sit quietly, like for hours. So that there's another human, like on the audio channel, or they'll share their screens while they're working, share their screens while they're playing a game.</p><p>and it's a really nice way to just know that there's someone around, even if no one's talking. So it's like working in a coworking space and I've really liked that as a way to feel some kind of non-work social connection while I've been fully remote. </p><p><strong>Sarah Drasner: </strong>[00:30:08] Yeah, one thing we've been doing with some of the, some of my peers on the leadership team at Netlify and I have been doing a book club where we drink whiskey and talk about a book that we're all reading, and have a zoom call after work and that one's silly and it's really fun.</p><p>and then I usually it's like talk about the book for. Eight minutes and then two hours of being goofballs.</p><p><strong>Cassidy Williams: </strong>[00:30:34] So I have a discord channel that I'm super active in and I love doing that. And alongside the discord general, I really like playing Fortnite with friends. just because we'll use discord chat and oftentimes we're not even like doing well at fortnight. We just happened to be playing Fortnite while we're gabbing with each other.</p><p>And then it's really nice. and then with a lot of my IRL friends, we have, a standing meeting that we optionally go to at the end of the day, every day, where it's just like, how was your day to day? And we call it stretch and chair. Cause we try to like stretch and stand up and get out of our desks and yeah, we just.</p><p>Say Oh yeah, this is what I did today. And it's like a standup, but it's really just. Chatting and hanging out, </p><p><strong>Jason Lengstorf: </strong>[00:31:16] that is such a good idea. and I like that as someone who has recently sustained a cheese related injury, I feel like I really could deal with Watson. </p><p><strong>Phil Hawksworth: </strong>[00:31:25] Do you say a cheat's related or a cheese related cheese?</p><p><strong>Jason Lengstorf: </strong>[00:31:28] Cheese is related? Yes. Merissa threw a piece of cheese to me and I hurt my neck </p><p><strong>Phil Hawksworth: </strong>[00:31:37] trying to</p><p><strong>Jason Lengstorf: </strong>[00:31:41] catch it. No, I just like. I just looked at the cheese and I don't </p><p><strong>Phil Hawksworth: </strong>[00:31:46] know, I've never heard anyone claim that they've heard themselves by looking at cheese before </p><p><strong>Ben Hong: </strong>[00:31:54] Jason had a great gift as a response to that thread. </p><p><strong>Phil Hawksworth: </strong>[00:31:58] So it was literally </p><p><strong>Ben Hong: </strong>[00:31:59] basically a reliably. </p><p><strong>Jason Lengstorf: </strong>[00:32:00] th there was a meme that, that went around for a while, where everybody was taking, slices of like American cheese and they would throw them on either a cat's face.</p><p>Or a baby's face and it was a, it is. So it just Google, Cat cheese throw and </p><p><strong>Phil Hawksworth: </strong>[00:32:16] I absolutely will not. I've learned one thing and that's never Google the things that Jason tells you to Google. And that's a good example.</p><p><strong>Jason Lengstorf: </strong>[00:32:28] We should </p><p><strong>Phil Hawksworth: </strong>[00:32:28] probably edit this out. If this goes out, I'm really worried about what people will be experiencing. If they're following your terrible advice. </p><p><strong>Cassidy Williams: </strong>[00:32:36] Was it a sharp pain? I hope you get cheddar.</p><p><strong>Phil Hawksworth: </strong>[00:32:48] I have no ICAP. No, </p><p><strong>Sarah Drasner: </strong>[00:32:50] you can't see him turning bright pink right now with </p><p><strong>Phil Hawksworth: </strong>[00:32:54] the rage on that man's face, </p><p><strong>Jason Lengstorf: </strong>[00:32:55] your words are causing a lot of harm right now.</p><p><strong>Phil Hawksworth: </strong>[00:33:02] Okay. Hit that pause was really pregnant. Wasn't it? As we're all.</p><p><strong>Cassidy Williams: </strong>[00:33:09] Phil's not very good at the cheese </p><p><strong>Phil Hawksworth: </strong>[00:33:11] plants.</p><p><strong>Cassidy Williams: </strong>[00:33:15] Unbelievable.</p><p><strong>Sarah Drasner: </strong>[00:33:20] Talk about this till we're blue in the face.</p><p><strong>Phil Hawksworth: </strong>[00:33:27] Okay, so we should move on.</p><p>That was a difficult one to two words. Thank you very much. No. Okay, so we should move on. </p><p><strong>Jason Lengstorf: </strong>[00:33:40] No, </p><p><strong>Cassidy Williams: </strong>[00:33:42] that's a good one. </p><p><strong>Phil Hawksworth: </strong>[00:33:45] If you've got to go back and convince people that you actually did it and things that were, what were we talking about? What are we here for ways to feel connected? so one of the very apropos, Oh, what's going on now?</p><p>I just like calls where we just shoot the breeze and it's, any meeting similar to, Sarah's pretend that you've read a book and get hammered on whiskey or whatever, that, whatever that means and anything where, there isn't a real agenda, but there is also a thing that you gather around, whether it's like we're going to meet for a drink or it's.</p><p>Lunchtime and you just share, like everyone's having some food or something like that. Just something that just emulates a bit of the social interaction that you'd normally have if you were in a group and it's not the same, but I do still those because they're just they're really low, effort and just easy to enjoy people.</p><p>So I like those. </p><p><strong>Ben Hong: </strong>[00:34:38] Yeah. similar capacity and Jason definitely loved discord for, basically the online gaming with friends. we started playing Hades recently and we'll do speed runs, against one another. So that's been a lot of, a little stressful, but it's you hit a button mashing. I'm like, Oh, I got to hurry up.</p><p>So yeah, that's been fun to just work out some of the stress and just hang out with people </p><p><strong>Jason Lengstorf: </strong>[00:34:58] live. </p><p><strong>Ben Hong: </strong>[00:34:58] if people haven't played fall, guys, All guys is a great one for us</p><p><strong>Jason Lengstorf: </strong>[00:35:06] mentioned discord in the tools. it's a really good one for, because it's got voice chat and screen share. So it's actually a really great it's so good. </p><p><strong>Ben Hong: </strong>[00:35:14] Yeah. Like it's better than steam spelt and stream. </p><p><strong>Cassidy Williams: </strong>[00:35:19] I've also been helping just a lot of newbies who are learning how to code and stuff in their boot bootcamps.</p><p>It's hard for them to get a TA during regular office hours because it's all remote and everything. And there's a few discord channels of just people who need help. Understanding the basics of HTML or something. And it's fun to chat and discord because like you said, the streaming is really nice and easy.</p><p><strong>Jason Lengstorf: </strong>[00:35:40] All right. So I think that's a good place to wrap up and we can call this a, a finished episode, I won't say, in the can, so that Cassidy doesn't. Ridicule me mercilessly. so I hope you enjoyed that. I hope you had a lot of fun. I know I had a blast and I hope that you are inspired to maybe give some of these social programming, practices, try, you can find the podcast at remotely.</p><p>interesting.transistor.fm. And make sure you come back next time, or we're going to be talking about server rendering on the JAMstack, which might sound like it's not possible. We're going to tell you how it's possible. until next time I am Jason, the bearded beauty Lang store </p><p><strong>Cassidy Williams: </strong>[00:36:20] I'm Cassidy, the memer and the dreamer Williams.</p><p><strong>Phil Hawksworth: </strong>[00:36:25] I'm Phil available at alarmingly short notice.</p><p><strong>Sarah Drasner: </strong>[00:36:32] I'm Sarah forgot to unmute Drasner </p><p><strong>Ben Hong: </strong>[00:36:37] and I'm Ben unbelievably nervous for my first episode. </p><p><strong>Cassidy Williams: </strong>[00:36:43] Wait, you didn't see your last name. </p><p><strong>Jason Lengstorf: </strong>[00:36:45] Oh, hi,</p><p><strong>Phil Hawksworth: </strong>[00:36:50] you created the most dispense in your name than anyone's ever.</p><p><strong>Jason Lengstorf: </strong>[00:36:57] All right, thanks. Y'all we'll see you next time. </p><p><strong>Phil Hawksworth: </strong>[00:37:00] Next </p><p><strong>Ben Hong: </strong>[00:37:00] time. </p><p><strong>Jason Lengstorf: </strong>[00:37:01] Bye.</p>