[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:16.82,0:00:18.22,Default,,0000,0000,0000,,JOE MOORE: My name is Joe Moore, Dialogue: 0,0:00:18.22,0:00:22.59,Default,,0000,0000,0000,,and I've pair programmed for almost thirteen Dialogue: 0,0:00:22.59,0:00:25.71,Default,,0000,0000,0000,,and a half, almost every single working day. Dialogue: 0,0:00:25.71,0:00:30.73,Default,,0000,0000,0000,,And for the last four years, I've pair programmed Dialogue: 0,0:00:30.73,0:00:33.86,Default,,0000,0000,0000,,remotely using remote pair programming full\Ntime, Dialogue: 0,0:00:33.86,0:00:37.34,Default,,0000,0000,0000,,out of those thirteen years. I work for Pivotal\NLabs. Dialogue: 0,0:00:37.34,0:00:41.25,Default,,0000,0000,0000,,We're a Agile software-development consultancy. Dialogue: 0,0:00:41.25,0:00:45.92,Default,,0000,0000,0000,,And I work remotely from Atlanta. Dialogue: 0,0:00:45.92,0:00:48.08,Default,,0000,0000,0000,,There's two of you who didn't hear this. I'd Dialogue: 0,0:00:48.08,0:00:52.26,Default,,0000,0000,0000,,love feedback at bit.ly dot com slash pairprogrammingama,\Nit's Dialogue: 0,0:00:52.26,0:00:56.92,Default,,0000,0000,0000,,totally anonymous. And, also, for the other\Npeople who Dialogue: 0,0:00:56.92,0:00:59.05,Default,,0000,0000,0000,,walked in, there's a microphone here and a\Nmicrophone Dialogue: 0,0:00:59.05,0:01:01.68,Default,,0000,0000,0000,,over here. If you have questions, it'd be\Ngreat Dialogue: 0,0:01:01.68,0:01:03.65,Default,,0000,0000,0000,,if you could make your way that way and Dialogue: 0,0:01:03.65,0:01:05.59,Default,,0000,0000,0000,,start, and queue up while I kind of blab Dialogue: 0,0:01:05.59,0:01:08.84,Default,,0000,0000,0000,,on about some other stuff. If not, I'm gonna Dialogue: 0,0:01:08.84,0:01:11.45,Default,,0000,0000,0000,,grab these mics and I'm gonna run around,\Nand Dialogue: 0,0:01:11.45,0:01:15.05,Default,,0000,0000,0000,,do a, I don't know, a Maury, maybe. I Dialogue: 0,0:01:15.05,0:01:18.64,Default,,0000,0000,0000,,don't know who's, is he still around? Dialogue: 0,0:01:18.64,0:01:22.27,Default,,0000,0000,0000,,Anyway. So, again, thank you for all, everybody\Nfor Dialogue: 0,0:01:22.27,0:01:25.71,Default,,0000,0000,0000,,coming here. Who is familiar, at least somewhat,\Nwith Dialogue: 0,0:01:25.71,0:01:31.73,Default,,0000,0000,0000,,pair programming? I'm gonna call that eighty\Nto ninety Dialogue: 0,0:01:31.73,0:01:33.94,Default,,0000,0000,0000,,percent. That's great. So, for those of you\Nwho Dialogue: 0,0:01:33.94,0:01:37.11,Default,,0000,0000,0000,,don't know, pair programming is a software\Ndevelopment technique, Dialogue: 0,0:01:37.11,0:01:40.09,Default,,0000,0000,0000,,by which two programmers work on the same\Ncode, Dialogue: 0,0:01:40.09,0:01:42.69,Default,,0000,0000,0000,,at the same time, solving the same software\Nproblem Dialogue: 0,0:01:42.69,0:01:45.82,Default,,0000,0000,0000,,on the same computer. That's what pair programming\Nis. Dialogue: 0,0:01:45.82,0:01:47.49,Default,,0000,0000,0000,,And you can throw the word remote on there, Dialogue: 0,0:01:47.49,0:01:49.46,Default,,0000,0000,0000,,and guess what, that's all that stuff, just\Nusing Dialogue: 0,0:01:49.46,0:01:54.51,Default,,0000,0000,0000,,some remote collaboration softwares, such\Nas video chat and Dialogue: 0,0:01:54.51,0:01:56.72,Default,,0000,0000,0000,,audio chat and screen sharing and such. Dialogue: 0,0:01:56.72,0:01:59.72,Default,,0000,0000,0000,,So what are the benefits of pair programming?\NI Dialogue: 0,0:01:59.72,0:02:01.81,Default,,0000,0000,0000,,could have slides and slides and slides, but\NI'll Dialogue: 0,0:02:01.81,0:02:03.91,Default,,0000,0000,0000,,just give you a few. It's everything from\Nhaving Dialogue: 0,0:02:03.91,0:02:09.83,Default,,0000,0000,0000,,a continuous code review to cross-training\Njunior people and Dialogue: 0,0:02:09.83,0:02:13.56,Default,,0000,0000,0000,,older people, or, or more experienced people.\NCross-training people Dialogue: 0,0:02:13.56,0:02:16.75,Default,,0000,0000,0000,,from different disciplines. You tend to introduce\Nfewer bugs Dialogue: 0,0:02:16.75,0:02:21.01,Default,,0000,0000,0000,,because you have two eyes on the same thing. Dialogue: 0,0:02:21.01,0:02:23.73,Default,,0000,0000,0000,,You have differing opinions, which is really\Ngreat, because Dialogue: 0,0:02:23.73,0:02:26.26,Default,,0000,0000,0000,,that ends up raising what I call the whole Dialogue: 0,0:02:26.26,0:02:30.17,Default,,0000,0000,0000,,team to what I call the highest common denominator. Dialogue: 0,0:02:30.17,0:02:32.88,Default,,0000,0000,0000,,Because that kind of disagreement and such\Nis really Dialogue: 0,0:02:32.88,0:02:34.39,Default,,0000,0000,0000,,great. And it goes on and on and on Dialogue: 0,0:02:34.39,0:02:37.73,Default,,0000,0000,0000,,and on from there. In general, the general\Nprinciple, Dialogue: 0,0:02:37.73,0:02:40.10,Default,,0000,0000,0000,,I think as most of us know, in almost Dialogue: 0,0:02:40.10,0:02:42.11,Default,,0000,0000,0000,,everything, two heads are better than one\Nwhen you're Dialogue: 0,0:02:42.11,0:02:44.88,Default,,0000,0000,0000,,trying to solve hard problems. Dialogue: 0,0:02:44.88,0:02:49.75,Default,,0000,0000,0000,,What are the challenges of pair programming?\NIt's extremely, Dialogue: 0,0:02:49.75,0:02:53.91,Default,,0000,0000,0000,,it can be very exhausting. Personality conflicts\Ncan be Dialogue: 0,0:02:53.91,0:02:57.60,Default,,0000,0000,0000,,difficult when people don't necessarily get\Nalong. It's definitely Dialogue: 0,0:02:57.60,0:03:01.10,Default,,0000,0000,0000,,what I would consider to be the most difficult Dialogue: 0,0:03:01.10,0:03:06.17,Default,,0000,0000,0000,,software development practice to implement,\Nboth from a social Dialogue: 0,0:03:06.17,0:03:08.64,Default,,0000,0000,0000,,point of view, from selling it to people on Dialogue: 0,0:03:08.64,0:03:11.96,Default,,0000,0000,0000,,the ground people, to selling it to management\Nthat Dialogue: 0,0:03:11.96,0:03:14.89,Default,,0000,0000,0000,,it's, not it's not just, it's not double the Dialogue: 0,0:03:14.89,0:03:18.11,Default,,0000,0000,0000,,money and twice the time, et cetera. But it Dialogue: 0,0:03:18.11,0:03:20.98,Default,,0000,0000,0000,,also, I feel, has the greatest benefits. So,\Nit's Dialogue: 0,0:03:20.98,0:03:22.82,Default,,0000,0000,0000,,the hardest, but it's got the biggest pay\Noff, Dialogue: 0,0:03:22.82,0:03:26.79,Default,,0000,0000,0000,,if you're willing to dedicate yourself to\Nit. Dialogue: 0,0:03:26.79,0:03:30.23,Default,,0000,0000,0000,,And this is the, one of the top three Dialogue: 0,0:03:30.23,0:03:32.60,Default,,0000,0000,0000,,questions, so I thought I'd go ahead and take Dialogue: 0,0:03:32.60,0:03:34.23,Default,,0000,0000,0000,,care of that now. When do you decide to Dialogue: 0,0:03:34.23,0:03:35.88,Default,,0000,0000,0000,,breaks? When do you decide to go to the Dialogue: 0,0:03:35.88,0:03:39.29,Default,,0000,0000,0000,,bathroom? And the answer is, whenever you\Nneed to Dialogue: 0,0:03:39.29,0:03:42.70,Default,,0000,0000,0000,,go to the bathroom is the optimum time when Dialogue: 0,0:03:42.70,0:03:46.54,Default,,0000,0000,0000,,you should probably do so. And it kind of Dialogue: 0,0:03:46.54,0:03:51.01,Default,,0000,0000,0000,,points to, you know, you're just people working\Ntogether. Dialogue: 0,0:03:51.01,0:03:52.47,Default,,0000,0000,0000,,You know, you, you decide to take breaks when Dialogue: 0,0:03:52.47,0:03:54.73,Default,,0000,0000,0000,,you're ready to take breaks. If you've been\Ngoing Dialogue: 0,0:03:54.73,0:03:56.64,Default,,0000,0000,0000,,for an hour, you've been going for more than Dialogue: 0,0:03:56.64,0:03:58.95,Default,,0000,0000,0000,,an hour. Yeah, take a break. Stretch your\Nlegs. Dialogue: 0,0:03:58.95,0:04:01.57,Default,,0000,0000,0000,,Play from ping pong. Use facilities. What\Nyou're kind Dialogue: 0,0:04:01.57,0:04:04.35,Default,,0000,0000,0000,,of into. Take breaks. It's a super intense\Ndiscipline. Dialogue: 0,0:04:04.35,0:04:07.47,Default,,0000,0000,0000,,You, you do get tired, and taking breaks is Dialogue: 0,0:04:07.47,0:04:09.72,Default,,0000,0000,0000,,super important. And do so whenever you feel\Nlike Dialogue: 0,0:04:09.72,0:04:12.68,Default,,0000,0000,0000,,you need it. Need to. Dialogue: 0,0:04:12.68,0:04:16.85,Default,,0000,0000,0000,,And with that, ask me anything. Who's got\Na Dialogue: 0,0:04:16.85,0:04:18.77,Default,,0000,0000,0000,,question? Over here there's a question. Dialogue: 0,0:04:18.77,0:04:21.98,Default,,0000,0000,0000,,QUESTION: So, my team has been doing pairing,\Nbut Dialogue: 0,0:04:21.98,0:04:25.09,Default,,0000,0000,0000,,we find that, just subjectively, that it tends\Nto Dialogue: 0,0:04:25.09,0:04:26.79,Default,,0000,0000,0000,,slow things down by maybe fifty to a hundred Dialogue: 0,0:04:26.79,0:04:30.41,Default,,0000,0000,0000,,QUESTION: In other words, things tend to go\Nup Dialogue: 0,0:04:30.41,0:04:33.26,Default,,0000,0000,0000,,to twice as slow when we do it. But Dialogue: 0,0:04:33.26,0:04:35.07,Default,,0000,0000,0000,,we still use it for our hard things, like Dialogue: 0,0:04:35.07,0:04:39.80,Default,,0000,0000,0000,,ramping up a new developer on a project, or Dialogue: 0,0:04:39.80,0:04:43.59,Default,,0000,0000,0000,,laying the, the foundations for a new project.\NBut Dialogue: 0,0:04:43.59,0:04:45.15,Default,,0000,0000,0000,,not for a lot of other things, because of Dialogue: 0,0:04:45.15,0:04:46.25,Default,,0000,0000,0000,,the time cost. And I was wondering if you Dialogue: 0,0:04:46.25,0:04:49.10,Default,,0000,0000,0000,,could comment on how it effects your velocity\Nand Dialogue: 0,0:04:49.10,0:04:50.68,Default,,0000,0000,0000,,maybe we just need to look further down the Dialogue: 0,0:04:50.68,0:04:52.40,Default,,0000,0000,0000,,road to see pay offs and velocity? Is it Dialogue: 0,0:04:52.40,0:04:54.46,Default,,0000,0000,0000,,one of those things? Dialogue: 0,0:04:54.46,0:04:57.50,Default,,0000,0000,0000,,J.M.: Sure. So, I'm hopefully not going. Raise\Nyour Dialogue: 0,0:04:57.50,0:05:01.18,Default,,0000,0000,0000,,hand if you could not hear the question. Everybody Dialogue: 0,0:05:01.18,0:05:03.22,Default,,0000,0000,0000,,could hear the question. That's great. Cause\Nit'd be Dialogue: 0,0:05:03.22,0:05:05.75,Default,,0000,0000,0000,,great not to spend time repeating. So it looks Dialogue: 0,0:05:05.75,0:05:08.03,Default,,0000,0000,0000,,like the mics are working. Dialogue: 0,0:05:08.03,0:05:09.10,Default,,0000,0000,0000,,So, you all heard the question. Velocity seems\Nto Dialogue: 0,0:05:09.10,0:05:13.92,Default,,0000,0000,0000,,slow down. I think that the empirical evidence\Nhas Dialogue: 0,0:05:13.92,0:05:17.59,Default,,0000,0000,0000,,shown that, at least in a controlled environment,\Npair Dialogue: 0,0:05:17.59,0:05:20.40,Default,,0000,0000,0000,,programming has been shown to slow down accomplishment\Nof Dialogue: 0,0:05:20.40,0:05:24.00,Default,,0000,0000,0000,,tasks by fifteen - one five - percent in Dialogue: 0,0:05:24.00,0:05:27.37,Default,,0000,0000,0000,,a controlled environment. And I think that\Nthis is Dialogue: 0,0:05:27.37,0:05:30.40,Default,,0000,0000,0000,,often with college students who are either\Npaired up Dialogue: 0,0:05:30.40,0:05:33.33,Default,,0000,0000,0000,,or doing solo. So that's certainly not fifty\N- Dialogue: 0,0:05:33.33,0:05:37.21,Default,,0000,0000,0000,,well, five-zero - to a hundred percent. Dialogue: 0,0:05:37.21,0:05:38.73,Default,,0000,0000,0000,,And there, there are other pay offs. But I Dialogue: 0,0:05:38.73,0:05:42.78,Default,,0000,0000,0000,,guess my initial reaction would be, you know,\Npair Dialogue: 0,0:05:42.78,0:05:46.08,Default,,0000,0000,0000,,programming is a tool, and the, you know,\Nthe, Dialogue: 0,0:05:46.08,0:05:49.21,Default,,0000,0000,0000,,I would call it the lower-case agile toolbox.\NYou Dialogue: 0,0:05:49.21,0:05:51.91,Default,,0000,0000,0000,,know, not the, you know, it doesn't, it's\Nnot Dialogue: 0,0:05:51.91,0:05:55.05,Default,,0000,0000,0000,,necessarily mandated. But there are other\Nthings that you Dialogue: 0,0:05:55.05,0:05:57.30,Default,,0000,0000,0000,,might be able to apply if you find that Dialogue: 0,0:05:57.30,0:05:58.79,Default,,0000,0000,0000,,things are just going really slow. And that\Nis Dialogue: 0,0:05:58.79,0:06:01.64,Default,,0000,0000,0000,,identifying the issue. And maybe you've already\Ndone this. Dialogue: 0,0:06:01.64,0:06:05.26,Default,,0000,0000,0000,,You've already identified, this is taking\Ntwice as long Dialogue: 0,0:06:05.26,0:06:08.30,Default,,0000,0000,0000,,and here are the five reasons why. And they're Dialogue: 0,0:06:08.30,0:06:10.21,Default,,0000,0000,0000,,insurmountable reasons. Dialogue: 0,0:06:10.21,0:06:13.59,Default,,0000,0000,0000,,So, I would say, you might want to use, Dialogue: 0,0:06:13.59,0:06:16.17,Default,,0000,0000,0000,,you know, what's called a retrospective, or\Ninvestigate, you Dialogue: 0,0:06:16.17,0:06:18.18,Default,,0000,0000,0000,,know, dig deep into why things are taking\Ntoo Dialogue: 0,0:06:18.18,0:06:21.56,Default,,0000,0000,0000,,long. Are you arguing about stuff? Are, are\Nthe Dialogue: 0,0:06:21.56,0:06:24.51,Default,,0000,0000,0000,,pairings so unbalanced that the senior people\Nare constantly Dialogue: 0,0:06:24.51,0:06:28.40,Default,,0000,0000,0000,,trying to pull up people who are, are, are Dialogue: 0,0:06:28.40,0:06:31.25,Default,,0000,0000,0000,,more junior? Are there differing opinions\Nand people are Dialogue: 0,0:06:31.25,0:06:33.53,Default,,0000,0000,0000,,just constantly arguing? Those are, you know,\Nthere could Dialogue: 0,0:06:33.53,0:06:35.76,Default,,0000,0000,0000,,be many, many reasons, so identifying the\Nproblem is Dialogue: 0,0:06:35.76,0:06:37.85,Default,,0000,0000,0000,,the first step to figuring out maybe why it's Dialogue: 0,0:06:37.85,0:06:41.41,Default,,0000,0000,0000,,taking that long, because in my experience,\Nit should, Dialogue: 0,0:06:41.41,0:06:46.89,Default,,0000,0000,0000,,potentially be a bit slower, on the metric\Nof Dialogue: 0,0:06:46.89,0:06:49.53,Default,,0000,0000,0000,,from moments on the keyboard typing the first\Ncharacters Dialogue: 0,0:06:49.53,0:06:52.88,Default,,0000,0000,0000,,to maybe doing a commit. And that's not what Dialogue: 0,0:06:52.88,0:06:56.97,Default,,0000,0000,0000,,encompasses done software. That's just two\Npeople coming up Dialogue: 0,0:06:56.97,0:06:58.57,Default,,0000,0000,0000,,with the best solution. And you can have other Dialogue: 0,0:06:58.57,0:07:02.23,Default,,0000,0000,0000,,pay offs further down the line, such as your Dialogue: 0,0:07:02.23,0:07:05.94,Default,,0000,0000,0000,,code is not as buggy. Your code is hopefully Dialogue: 0,0:07:05.94,0:07:07.93,Default,,0000,0000,0000,,better-factored because two people are coming\Nup with the Dialogue: 0,0:07:07.93,0:07:10.64,Default,,0000,0000,0000,,design versus just one, et cetera, et cetera.\NSo Dialogue: 0,0:07:10.64,0:07:12.83,Default,,0000,0000,0000,,I would encourage you to dig deep into why Dialogue: 0,0:07:12.83,0:07:14.82,Default,,0000,0000,0000,,you're having these problems, and see if you\Ncan Dialogue: 0,0:07:14.82,0:07:16.88,Default,,0000,0000,0000,,address those problems. And then try it again,\Nand, Dialogue: 0,0:07:16.88,0:07:19.44,Default,,0000,0000,0000,,and measure again. Thank you. Dialogue: 0,0:07:19.44,0:07:23.14,Default,,0000,0000,0000,,QUESTION: Just as a, kind of following, my\Nbig Dialogue: 0,0:07:23.14,0:07:26.21,Default,,0000,0000,0000,,impression is that, in many cases, the tasks\Nare Dialogue: 0,0:07:26.21,0:07:30.45,Default,,0000,0000,0000,,relatively straight-forward, and so it just,\Nyou know, wouldn't Dialogue: 0,0:07:30.45,0:07:33.67,Default,,0000,0000,0000,,take a single person much longer to do them. Dialogue: 0,0:07:33.67,0:07:33.97,Default,,0000,0000,0000,,J.M.: Sure. Dialogue: 0,0:07:33.97,0:07:35.48,Default,,0000,0000,0000,,QUESTION: And then, so the other person is\Nkind Dialogue: 0,0:07:35.48,0:07:39.36,Default,,0000,0000,0000,,of, you know, avoiding, helping avoid typos\Nand, and, Dialogue: 0,0:07:39.36,0:07:40.92,Default,,0000,0000,0000,,you know, that sort of thing. But maybe not Dialogue: 0,0:07:40.92,0:07:42.32,Default,,0000,0000,0000,,adding as much value as they might be doing. Dialogue: 0,0:07:42.32,0:07:46.57,Default,,0000,0000,0000,,J.M.: Right. So we've, we've had clients decide\Nthat, Dialogue: 0,0:07:46.57,0:07:50.35,Default,,0000,0000,0000,,you know, they measure, you know, we use a Dialogue: 0,0:07:50.35,0:07:54.93,Default,,0000,0000,0000,,particular project management tool that lets\Nus estimate stuff. Dialogue: 0,0:07:54.93,0:07:56.36,Default,,0000,0000,0000,,And it's called Pivotal Tracker. You don't\Nhave to Dialogue: 0,0:07:56.36,0:07:58.06,Default,,0000,0000,0000,,use it. Cards on a wall. Whatever works for Dialogue: 0,0:07:58.06,0:07:59.65,Default,,0000,0000,0000,,you. So we tend to estimate things sort of Dialogue: 0,0:07:59.65,0:08:02.77,Default,,0000,0000,0000,,on like a one to eight scale. And we've Dialogue: 0,0:08:02.77,0:08:05.30,Default,,0000,0000,0000,,had clients who have said, after they disengage\Nwith Dialogue: 0,0:08:05.30,0:08:08.01,Default,,0000,0000,0000,,us, you know, anything that's a zero or a Dialogue: 0,0:08:08.01,0:08:09.98,Default,,0000,0000,0000,,one, I guess I should have said zero to Dialogue: 0,0:08:09.98,0:08:12.03,Default,,0000,0000,0000,,eight, they choose not to pair on those things, Dialogue: 0,0:08:12.03,0:08:14.04,Default,,0000,0000,0000,,cause they find they don't get much value.\NThat's, Dialogue: 0,0:08:14.04,0:08:15.76,Default,,0000,0000,0000,,that's great for them. But they have made\Na Dialogue: 0,0:08:15.76,0:08:18.63,Default,,0000,0000,0000,,rule that, well anything that's more of a,\Nthan Dialogue: 0,0:08:18.63,0:08:20.84,Default,,0000,0000,0000,,a zero to a one on an eight point Dialogue: 0,0:08:20.84,0:08:23.21,Default,,0000,0000,0000,,scale, that that must be paired. Dialogue: 0,0:08:23.21,0:08:25.14,Default,,0000,0000,0000,,And so then maybe you re-evaluate the twos\Nand Dialogue: 0,0:08:25.14,0:08:26.90,Default,,0000,0000,0000,,the threes and then ah, looks like maybe the Dialogue: 0,0:08:26.90,0:08:29.93,Default,,0000,0000,0000,,threes, they have, they're, those are getting\Npretty buggy. Dialogue: 0,0:08:29.93,0:08:31.96,Default,,0000,0000,0000,,So let's bring pairing back into that. So\Nthat's Dialogue: 0,0:08:31.96,0:08:33.99,Default,,0000,0000,0000,,a strategy as well. Dialogue: 0,0:08:33.99,0:08:35.23,Default,,0000,0000,0000,,Let's go over here. Dialogue: 0,0:08:35.23,0:08:37.83,Default,,0000,0000,0000,,QUESTION: If you could clarify, I have another\Nquestion, Dialogue: 0,0:08:37.83,0:08:39.44,Default,,0000,0000,0000,,but, if you could clarify just for a moment Dialogue: 0,0:08:39.44,0:08:45.26,Default,,0000,0000,0000,,that fifteen percent increase, was that compared\Nto one Dialogue: 0,0:08:45.26,0:08:48.15,Default,,0000,0000,0000,,developer doing the task? Or was that compared\Nto Dialogue: 0,0:08:48.15,0:08:50.35,Default,,0000,0000,0000,,the relative work that two developers would\Ndo, you Dialogue: 0,0:08:50.35,0:08:55.08,Default,,0000,0000,0000,,know, each individually, right? So, one developer\Ndoing a Dialogue: 0,0:08:55.08,0:08:58.19,Default,,0000,0000,0000,,task takes this much time. Two developers\Ndoing the Dialogue: 0,0:08:58.19,0:09:01.64,Default,,0000,0000,0000,,same task takes fifteen percent more time?\NBut then Dialogue: 0,0:09:01.64,0:09:03.75,Default,,0000,0000,0000,,that other developer isn't doing any work,\Nright? So Dialogue: 0,0:09:03.75,0:09:07.67,Default,,0000,0000,0000,,there's actually less benefit than might,\Nmight be- Dialogue: 0,0:09:07.67,0:09:11.49,Default,,0000,0000,0000,,J.M.: Right. So the, I believe it was against Dialogue: 0,0:09:11.49,0:09:12.37,Default,,0000,0000,0000,,a solo programmer- Dialogue: 0,0:09:12.37,0:09:12.84,Default,,0000,0000,0000,,QUESTION: Right. Dialogue: 0,0:09:12.84,0:09:13.79,Default,,0000,0000,0000,,J.M.: -working by themselves. Dialogue: 0,0:09:13.79,0:09:14.27,Default,,0000,0000,0000,,QUESTION: OK. Dialogue: 0,0:09:14.27,0:09:16.49,Default,,0000,0000,0000,,J.M.: But there, you know, but I, there were Dialogue: 0,0:09:16.49,0:09:19.24,Default,,0000,0000,0000,,lots of other measures that showed, you know\Nbenefit Dialogue: 0,0:09:19.24,0:09:20.07,Default,,0000,0000,0000,,of pair programming- Dialogue: 0,0:09:20.07,0:09:20.48,Default,,0000,0000,0000,,QUESTION: Sure. Dialogue: 0,0:09:20.48,0:09:22.46,Default,,0000,0000,0000,,J.M.: -above, you know, it sort of out, in Dialogue: 0,0:09:22.46,0:09:25.15,Default,,0000,0000,0000,,the opinion of the report, outweighed this,\Nthis particular Dialogue: 0,0:09:25.15,0:09:25.99,Default,,0000,0000,0000,,slow-down. Dialogue: 0,0:09:25.99,0:09:29.69,Default,,0000,0000,0000,,QUESTION: So I, I think that kind of plays Dialogue: 0,0:09:29.69,0:09:32.44,Default,,0000,0000,0000,,into my, my main question, which was how do Dialogue: 0,0:09:32.44,0:09:36.56,Default,,0000,0000,0000,,you quantify to other stake-holders, particularly\Nin the business, Dialogue: 0,0:09:36.56,0:09:40.54,Default,,0000,0000,0000,,even other developers, and maybe measure the\Nbenefits of Dialogue: 0,0:09:40.54,0:09:42.96,Default,,0000,0000,0000,,pair programming? I'm trying to incorporate\Nit into our Dialogue: 0,0:09:42.96,0:09:47.45,Default,,0000,0000,0000,,process more, but getting some resistance.\NWe, we've given Dialogue: 0,0:09:47.45,0:09:50.29,Default,,0000,0000,0000,,it enough to like experiment with, but how\Ndo Dialogue: 0,0:09:50.29,0:09:52.71,Default,,0000,0000,0000,,we actually measure the benefits and say whether\Nit's, Dialogue: 0,0:09:52.71,0:09:53.85,Default,,0000,0000,0000,,you know, working for us? Dialogue: 0,0:09:53.85,0:09:56.26,Default,,0000,0000,0000,,J.M.: That's a great question. Measuring the\Nbenefits and Dialogue: 0,0:09:56.26,0:09:58.33,Default,,0000,0000,0000,,selling it to management, or your team. Selling\Nit Dialogue: 0,0:09:58.33,0:10:01.70,Default,,0000,0000,0000,,to anybody is I, I feel one of the Dialogue: 0,0:10:01.70,0:10:04.76,Default,,0000,0000,0000,,hardest things to do. And even when I've been Dialogue: 0,0:10:04.76,0:10:07.52,Default,,0000,0000,0000,,going over the empirical evidence, even the\Nempirical evidence Dialogue: 0,0:10:07.52,0:10:10.08,Default,,0000,0000,0000,,has said, like, more studies need to be done. Dialogue: 0,0:10:10.08,0:10:12.75,Default,,0000,0000,0000,,More sort of metrics for measuring this, this\Nstuff Dialogue: 0,0:10:12.75,0:10:15.97,Default,,0000,0000,0000,,needs to, need to be developed. Dialogue: 0,0:10:15.97,0:10:19.93,Default,,0000,0000,0000,,It's, it is really, really hard to sell it, Dialogue: 0,0:10:19.93,0:10:22.99,Default,,0000,0000,0000,,because the math is just too easy. One plus Dialogue: 0,0:10:22.99,0:10:27.77,Default,,0000,0000,0000,,one equals two. You just can't, like, fight\Nthat Dialogue: 0,0:10:27.77,0:10:30.18,Default,,0000,0000,0000,,math. It's going to be, take twice as long Dialogue: 0,0:10:30.18,0:10:32.24,Default,,0000,0000,0000,,and it's gonna be twice as expensive, right?\NAnd Dialogue: 0,0:10:32.24,0:10:34.60,Default,,0000,0000,0000,,why would anybody ever do that? And I think, Dialogue: 0,0:10:34.60,0:10:38.62,Default,,0000,0000,0000,,yeah, and in my experience, you, you know,\NI Dialogue: 0,0:10:38.62,0:10:39.83,Default,,0000,0000,0000,,could, I could, we could try to come up Dialogue: 0,0:10:39.83,0:10:41.17,Default,,0000,0000,0000,,with some metrics and we could look at, you Dialogue: 0,0:10:41.17,0:10:43.02,Default,,0000,0000,0000,,know, I could point you towards these empirical\Nstudies Dialogue: 0,0:10:43.02,0:10:45.75,Default,,0000,0000,0000,,and they have particular measures of how they\Nmeasured, Dialogue: 0,0:10:45.75,0:10:48.27,Default,,0000,0000,0000,,you know, different kind of factors. And I,\NI Dialogue: 0,0:10:48.27,0:10:51.46,Default,,0000,0000,0000,,find that stuff it, it bounces off people.\NYou're Dialogue: 0,0:10:51.46,0:10:53.99,Default,,0000,0000,0000,,like, ah, yeah, that's all neat. But you've\Nheard Dialogue: 0,0:10:53.99,0:10:56.89,Default,,0000,0000,0000,,of one plus one equals two, right? Dialogue: 0,0:10:56.89,0:10:59.99,Default,,0000,0000,0000,,And I think that this is an unsatisfying answer Dialogue: 0,0:10:59.99,0:11:02.41,Default,,0000,0000,0000,,that I'm about to give you. There's a leap Dialogue: 0,0:11:02.41,0:11:04.80,Default,,0000,0000,0000,,of faith that needs to happen, and I think Dialogue: 0,0:11:04.80,0:11:07.30,Default,,0000,0000,0000,,you can kind of come back to like, let's Dialogue: 0,0:11:07.30,0:11:08.51,Default,,0000,0000,0000,,pretend we're in a world where we can still Dialogue: 0,0:11:08.51,0:11:13.80,Default,,0000,0000,0000,,do TDD. In a world where we did TDD, Dialogue: 0,0:11:13.80,0:11:15.70,Default,,0000,0000,0000,,that was a leap of faith, too. Because it's Dialogue: 0,0:11:15.70,0:11:18.28,Default,,0000,0000,0000,,like, that's twice as long. Why would you,\Nyou Dialogue: 0,0:11:18.28,0:11:20.56,Default,,0000,0000,0000,,can't test something you haven't written yet.\NAnd that's Dialogue: 0,0:11:20.56,0:11:22.44,Default,,0000,0000,0000,,gonna take twice as long. And I'm willing\Nto Dialogue: 0,0:11:22.44,0:11:24.97,Default,,0000,0000,0000,,bet almost everybody in this room has had\Nthat Dialogue: 0,0:11:24.97,0:11:28.53,Default,,0000,0000,0000,,argument with somebody who doesn't practice,\Nlike, not just Dialogue: 0,0:11:28.53,0:11:31.84,Default,,0000,0000,0000,,TDD but any kind of testing. It's too slow Dialogue: 0,0:11:31.84,0:11:32.60,Default,,0000,0000,0000,,and it takes twice as long. Dialogue: 0,0:11:32.60,0:11:34.16,Default,,0000,0000,0000,,And, finally, you're spouting all this stuff\Nwhen you're Dialogue: 0,0:11:34.16,0:11:36.69,Default,,0000,0000,0000,,talking about all the things that you, make\Nalmost, Dialogue: 0,0:11:36.69,0:11:38.61,Default,,0000,0000,0000,,I'm willing to bet everybody in this room,\Nlove Dialogue: 0,0:11:38.61,0:11:40.88,Default,,0000,0000,0000,,testing, to somebody, and it's just bouncing\Noff and Dialogue: 0,0:11:40.88,0:11:42.95,Default,,0000,0000,0000,,it's just bouncing off. And finally you're\Njust like, Dialogue: 0,0:11:42.95,0:11:44.94,Default,,0000,0000,0000,,ah, you just gotta, you gotta try it. You're Dialogue: 0,0:11:44.94,0:11:47.16,Default,,0000,0000,0000,,going to see the benefit, I swear. And then Dialogue: 0,0:11:47.16,0:11:50.81,Default,,0000,0000,0000,,finally they do, and usually you win them\Nover. Dialogue: 0,0:11:50.81,0:11:52.28,Default,,0000,0000,0000,,But actually, and I'll turn this around, because\NI Dialogue: 0,0:11:52.28,0:11:53.54,Default,,0000,0000,0000,,know that there's lots of people in the audience Dialogue: 0,0:11:53.54,0:11:57.64,Default,,0000,0000,0000,,here who have been more on the sales side Dialogue: 0,0:11:57.64,0:12:01.46,Default,,0000,0000,0000,,of pair programming than, than I have. Has\Nanybody, Dialogue: 0,0:12:01.46,0:12:03.77,Default,,0000,0000,0000,,would anybody like to comment on success stories\Nthey Dialogue: 0,0:12:03.77,0:12:07.80,Default,,0000,0000,0000,,have had selling management or clients of\Nyour consultants Dialogue: 0,0:12:07.80,0:12:12.61,Default,,0000,0000,0000,,on how they've addressed this issue? Anybody?\NMaybe in Dialogue: 0,0:12:12.61,0:12:17.31,Default,,0000,0000,0000,,this row here? Could I encourage anybody?\NDoes anybody Dialogue: 0,0:12:17.31,0:12:19.38,Default,,0000,0000,0000,,have anything to say? I've got a mobile mic. Dialogue: 0,0:12:19.38,0:12:23.26,Default,,0000,0000,0000,,Ah, excellent sir. Don't break your ankle. Dialogue: 0,0:12:23.26,0:12:24.90,Default,,0000,0000,0000,,AUDIENCE MEMBER: Hello, hello. Dialogue: 0,0:12:24.90,0:12:26.54,Default,,0000,0000,0000,,J.M.: Does that work? Dialogue: 0,0:12:26.54,0:12:29.82,Default,,0000,0000,0000,,AUDIENCE MEMBER: So one the, is this working? Dialogue: 0,0:12:29.82,0:12:30.91,Default,,0000,0000,0000,,J.M.: Could I get this mic, this hand-held\Nmic Dialogue: 0,0:12:30.91,0:12:31.32,Default,,0000,0000,0000,,on? Dialogue: 0,0:12:31.32,0:12:32.55,Default,,0000,0000,0000,,V.O.: It's on. Dialogue: 0,0:12:32.55,0:12:33.79,Default,,0000,0000,0000,,J.M.: Oh, OK. Dialogue: 0,0:12:33.79,0:12:35.03,Default,,0000,0000,0000,,AUDIENCE MEMBER: Hello. Dialogue: 0,0:12:35.03,0:12:35.85,Default,,0000,0000,0000,,J.M.: Excellent. Dialogue: 0,0:12:35.85,0:12:37.50,Default,,0000,0000,0000,,AUDIENCE MEMBER: That's better. Dialogue: 0,0:12:37.50,0:12:41.37,Default,,0000,0000,0000,,One of the easiest ways that I've found to, Dialogue: 0,0:12:41.37,0:12:43.39,Default,,0000,0000,0000,,to get pair programming into a team is to Dialogue: 0,0:12:43.39,0:12:48.98,Default,,0000,0000,0000,,talk about the benefits of bringing, increasing\Nyour ability Dialogue: 0,0:12:48.98,0:12:52.35,Default,,0000,0000,0000,,to absorb junior developers into your team.\NA lot Dialogue: 0,0:12:52.35,0:12:54.78,Default,,0000,0000,0000,,of, I'm from San Francisco. A lot of companies Dialogue: 0,0:12:54.78,0:12:58.35,Default,,0000,0000,0000,,in San Francisco are hiring their first junior\Ndeveloper. Dialogue: 0,0:12:58.35,0:13:02.60,Default,,0000,0000,0000,,Like, right now. And so, one, a lot of Dialogue: 0,0:13:02.60,0:13:04.36,Default,,0000,0000,0000,,discussions I've had recently have been along\Nthe lines Dialogue: 0,0:13:04.36,0:13:07.10,Default,,0000,0000,0000,,of, OK, so we're bringing on our first junior Dialogue: 0,0:13:07.10,0:13:09.54,Default,,0000,0000,0000,,developer. Everything we do has to change,\Nbecause we Dialogue: 0,0:13:09.54,0:13:12.00,Default,,0000,0000,0000,,need to vocalize a lot more things that we Dialogue: 0,0:13:12.00,0:13:14.70,Default,,0000,0000,0000,,used to. And, so, what I tell them, oftentimes, Dialogue: 0,0:13:14.70,0:13:16.34,Default,,0000,0000,0000,,is like, OK, one of the ways you can Dialogue: 0,0:13:16.34,0:13:19.49,Default,,0000,0000,0000,,practice that, before the junior developer\Nshows up, is Dialogue: 0,0:13:19.49,0:13:22.56,Default,,0000,0000,0000,,by pairing amongst yourselves. Getting used\Nto this idea Dialogue: 0,0:13:22.56,0:13:25.93,Default,,0000,0000,0000,,of, like, vocalizing your thought process,\Nunderstanding how you Dialogue: 0,0:13:25.93,0:13:28.91,Default,,0000,0000,0000,,talk about writing code with each other, and\Nthen Dialogue: 0,0:13:28.91,0:13:31.10,Default,,0000,0000,0000,,you can bring someone in who's in a very Dialogue: 0,0:13:31.10,0:13:33.77,Default,,0000,0000,0000,,different place, and you'll be better-equipped\Nto talk to Dialogue: 0,0:13:33.77,0:13:34.75,Default,,0000,0000,0000,,them about it. Dialogue: 0,0:13:34.75,0:13:38.59,Default,,0000,0000,0000,,J.M.: Thanks a lot. Thank you so much. Dialogue: 0,0:13:38.59,0:13:39.87,Default,,0000,0000,0000,,Excellent. So, go ahead. Dialogue: 0,0:13:39.87,0:13:42.75,Default,,0000,0000,0000,,AUDIENCE MEMBER: I had two things to say.\NPart Dialogue: 0,0:13:42.75,0:13:44.95,Default,,0000,0000,0000,,of like, selling pair programming, like, for\Nme, as Dialogue: 0,0:13:44.95,0:13:48.47,Default,,0000,0000,0000,,a developer, it's been really awesome, just\Ncause it Dialogue: 0,0:13:48.47,0:13:50.16,Default,,0000,0000,0000,,forces you to get out of your own box Dialogue: 0,0:13:50.16,0:13:51.95,Default,,0000,0000,0000,,of thinking and see how other people think\Nabout Dialogue: 0,0:13:51.95,0:13:54.70,Default,,0000,0000,0000,,writing code and sort of, like, maybe you\Nthought Dialogue: 0,0:13:54.70,0:13:56.53,Default,,0000,0000,0000,,this one practice of how to do something was Dialogue: 0,0:13:56.53,0:13:57.90,Default,,0000,0000,0000,,bad because you got bitten by it once, but Dialogue: 0,0:13:57.90,0:14:00.54,Default,,0000,0000,0000,,maybe you can be convinced that, oh, no that's Dialogue: 0,0:14:00.54,0:14:03.22,Default,,0000,0000,0000,,actually worth doing. It's a great way to\Nlike Dialogue: 0,0:14:03.22,0:14:05.48,Default,,0000,0000,0000,,just share knowledge about gems that someone\Nfound on Dialogue: 0,0:14:05.48,0:14:07.31,Default,,0000,0000,0000,,another project if you're coming into something. Dialogue: 0,0:14:07.31,0:14:09.56,Default,,0000,0000,0000,,And then, like, to the junior developer point,\Nlike Dialogue: 0,0:14:09.56,0:14:11.45,Default,,0000,0000,0000,,it's great cause you're there and you know,\Nyou Dialogue: 0,0:14:11.45,0:14:13.12,Default,,0000,0000,0000,,ask, have you seen this part of the code Dialogue: 0,0:14:13.12,0:14:15.42,Default,,0000,0000,0000,,yet? No? Then you go through and you explain, Dialogue: 0,0:14:15.42,0:14:17.56,Default,,0000,0000,0000,,like, everything about it, cause you, you\Nknow, have, Dialogue: 0,0:14:17.56,0:14:21.55,Default,,0000,0000,0000,,you write it and you can, or you understand Dialogue: 0,0:14:21.55,0:14:23.16,Default,,0000,0000,0000,,it, and so that helps bring them in more Dialogue: 0,0:14:23.16,0:14:24.77,Default,,0000,0000,0000,,than just sort of looking through all this\Ncode Dialogue: 0,0:14:24.77,0:14:26.37,Default,,0000,0000,0000,,that may not have comments or was written\Nby Dialogue: 0,0:14:26.37,0:14:29.65,Default,,0000,0000,0000,,someone who left the company later. So those\Nare Dialogue: 0,0:14:29.65,0:14:32.28,Default,,0000,0000,0000,,my, like, big selling points. Like, I think\Nit's Dialogue: 0,0:14:32.28,0:14:35.94,Default,,0000,0000,0000,,made me much better and much more open minded Dialogue: 0,0:14:35.94,0:14:38.74,Default,,0000,0000,0000,,developer, and like, made it much easier for\Nme Dialogue: 0,0:14:38.74,0:14:41.99,Default,,0000,0000,0000,,to collaborate, which yields, I think, like\Nbetter code, Dialogue: 0,0:14:41.99,0:14:46.03,Default,,0000,0000,0000,,and like, you know, over all makes your, your Dialogue: 0,0:14:46.03,0:14:46.34,Default,,0000,0000,0000,,group better cause you're just better at collaborating\Nand Dialogue: 0,0:14:46.34,0:14:49.20,Default,,0000,0000,0000,,sharing ideas. And it sort of tears down the Dialogue: 0,0:14:49.20,0:14:54.02,Default,,0000,0000,0000,,barriers of like worrying about, about bumping\Nshoulders in Dialogue: 0,0:14:54.02,0:14:54.05,Default,,0000,0000,0000,,communication. Dialogue: 0,0:14:54.05,0:14:55.25,Default,,0000,0000,0000,,We'll get kind of heated, like you said, like Dialogue: 0,0:14:55.25,0:14:59.94,Default,,0000,0000,0000,,and we'll just get through it, and in the, Dialogue: 0,0:14:59.94,0:15:03.82,Default,,0000,0000,0000,,in the end come to an agreement on what Dialogue: 0,0:15:03.82,0:15:04.92,Default,,0000,0000,0000,,will hopefully be a better idea or revisit\Nit Dialogue: 0,0:15:04.92,0:15:08.21,Default,,0000,0000,0000,,My question was kind of around pair rotation.\NSo, Dialogue: 0,0:15:08.21,0:15:10.21,Default,,0000,0000,0000,,like, if you're working on, on a team in Dialogue: 0,0:15:10.21,0:15:12.35,Default,,0000,0000,0000,,an office or, we work with one of, we Dialogue: 0,0:15:12.35,0:15:15.13,Default,,0000,0000,0000,,work with the clients' developers separately,\Nlike remote pairing, Dialogue: 0,0:15:15.13,0:15:17.52,Default,,0000,0000,0000,,like we'll spin up an EC2 instance and we're Dialogue: 0,0:15:17.52,0:15:19.51,Default,,0000,0000,0000,,trying to sort of figure out, like, proper\Npair Dialogue: 0,0:15:19.51,0:15:23.00,Default,,0000,0000,0000,,rotations, so like, on a particular feature,\Ntwo developers Dialogue: 0,0:15:23.00,0:15:25.54,Default,,0000,0000,0000,,won't be the only ones like, who work on Dialogue: 0,0:15:25.54,0:15:28.16,Default,,0000,0000,0000,,it, know it, and make, like, to some extent Dialogue: 0,0:15:28.16,0:15:31.29,Default,,0000,0000,0000,,make all the decisions. And I'm curious, like,\Nwhat Dialogue: 0,0:15:31.29,0:15:34.77,Default,,0000,0000,0000,,your thoughts are on that, and like sort of, Dialogue: 0,0:15:34.77,0:15:36.78,Default,,0000,0000,0000,,what you have found to be a good way Dialogue: 0,0:15:36.78,0:15:37.26,Default,,0000,0000,0000,,of pair rotation, if, if you've practiced\Nthat at Dialogue: 0,0:15:37.26,0:15:37.47,Default,,0000,0000,0000,,all. Dialogue: 0,0:15:37.47,0:15:37.90,Default,,0000,0000,0000,,J.M.: Sure. Dialogue: 0,0:15:37.90,0:15:39.20,Default,,0000,0000,0000,,AUDIENCE MEMBER: And things like that. Dialogue: 0,0:15:39.20,0:15:43.15,Default,,0000,0000,0000,,J.M.: Yeah. Absolutely. So pair rotation.\NSuper important. I Dialogue: 0,0:15:43.15,0:15:46.60,Default,,0000,0000,0000,,think, several things can help encourage pair\Nrotation. So Dialogue: 0,0:15:46.60,0:15:49.26,Default,,0000,0000,0000,,one, yes, we do rotate pairs on a regular Dialogue: 0,0:15:49.26,0:15:53.47,Default,,0000,0000,0000,,basis. There are extremes to this. There's\Nsomething called, Dialogue: 0,0:15:53.47,0:15:56.07,Default,,0000,0000,0000,,I've never done this, but it's been dubbed\Npromiscuous Dialogue: 0,0:15:56.07,0:15:57.27,Default,,0000,0000,0000,,pairing. I don't know if anybody has heard\Nof Dialogue: 0,0:15:57.27,0:16:00.61,Default,,0000,0000,0000,,this. And it's where you pair many times per Dialogue: 0,0:16:00.61,0:16:03.28,Default,,0000,0000,0000,,day, like, on a timer basically. And there's\Nbeen Dialogue: 0,0:16:03.28,0:16:06.60,Default,,0000,0000,0000,,a little bit of evidence to show that that Dialogue: 0,0:16:06.60,0:16:09.30,Default,,0000,0000,0000,,can be very productive. It's also shown to\Nbe Dialogue: 0,0:16:09.30,0:16:13.05,Default,,0000,0000,0000,,disruptive and exhausting. So I think that,\Ngive it Dialogue: 0,0:16:13.05,0:16:15.92,Default,,0000,0000,0000,,a, give it a try, perhaps. Dialogue: 0,0:16:15.92,0:16:17.79,Default,,0000,0000,0000,,But for us, for practical purposes, what we\Ntend Dialogue: 0,0:16:17.79,0:16:21.95,Default,,0000,0000,0000,,to do is, it, it ties into the art Dialogue: 0,0:16:21.95,0:16:25.05,Default,,0000,0000,0000,,of breaking down work. So we call our, the Dialogue: 0,0:16:25.05,0:16:28.46,Default,,0000,0000,0000,,stuff we're working on, we call them stories.\NAnd Dialogue: 0,0:16:28.46,0:16:30.37,Default,,0000,0000,0000,,we've gotten quite good at being able to break Dialogue: 0,0:16:30.37,0:16:34.93,Default,,0000,0000,0000,,down deliverable stories to small enough pieces.\NThis is Dialogue: 0,0:16:34.93,0:16:37.47,Default,,0000,0000,0000,,all, in almost every case. To small enough\Npieces Dialogue: 0,0:16:37.47,0:16:40.33,Default,,0000,0000,0000,,that, ideally, our pair developers will be\Nable to Dialogue: 0,0:16:40.33,0:16:42.16,Default,,0000,0000,0000,,get one or two of them done per day. Dialogue: 0,0:16:42.16,0:16:45.61,Default,,0000,0000,0000,,And a long story, we'll say a big story, Dialogue: 0,0:16:45.61,0:16:47.21,Default,,0000,0000,0000,,that's gonna take a long time, quote on quote Dialogue: 0,0:16:47.21,0:16:50.95,Default,,0000,0000,0000,,long, that might be several days. Two days,\Nmaybe. Dialogue: 0,0:16:50.95,0:16:51.92,Default,,0000,0000,0000,,Three days. Dialogue: 0,0:16:51.92,0:16:54.78,Default,,0000,0000,0000,,So what I'm not saying is, this is going Dialogue: 0,0:16:54.78,0:16:56.88,Default,,0000,0000,0000,,to take three weeks to do. Now, maybe there Dialogue: 0,0:16:56.88,0:16:58.95,Default,,0000,0000,0000,,is a giant track of features, a huge feature Dialogue: 0,0:16:58.95,0:17:01.49,Default,,0000,0000,0000,,set - the entire profile page rewrite. That\Nmight Dialogue: 0,0:17:01.49,0:17:04.75,Default,,0000,0000,0000,,be weeks of work. But getting that link photo Dialogue: 0,0:17:04.75,0:17:08.15,Default,,0000,0000,0000,,upload thing, just that small thing, that\Nmight be Dialogue: 0,0:17:08.15,0:17:10.34,Default,,0000,0000,0000,,a day's worth of work or less. And so Dialogue: 0,0:17:10.34,0:17:13.02,Default,,0000,0000,0000,,we tend to rotate pairs every day, if we Dialogue: 0,0:17:13.02,0:17:17.14,Default,,0000,0000,0000,,can, at our morning stand up meeting. And,\Nbecause Dialogue: 0,0:17:17.14,0:17:19.78,Default,,0000,0000,0000,,ideally people will have completed one or\Ntwo things Dialogue: 0,0:17:19.78,0:17:21.75,Default,,0000,0000,0000,,the previous day and they're, they're ready\Nto move Dialogue: 0,0:17:21.75,0:17:23.19,Default,,0000,0000,0000,,on. And if they're not, and if they didn't Dialogue: 0,0:17:23.19,0:17:26.26,Default,,0000,0000,0000,,complete it, there's, like, just a little\Nbit left, Dialogue: 0,0:17:26.26,0:17:27.25,Default,,0000,0000,0000,,and you could wrap it up with a new Dialogue: 0,0:17:27.25,0:17:30.36,Default,,0000,0000,0000,,pair the next day and, and go on from Dialogue: 0,0:17:30.36,0:17:31.51,Default,,0000,0000,0000,,there. Dialogue: 0,0:17:31.51,0:17:33.98,Default,,0000,0000,0000,,What will happen, sometimes, is that pairs\Nwill request Dialogue: 0,0:17:33.98,0:17:36.04,Default,,0000,0000,0000,,to stick, we call it. We're working on this Dialogue: 0,0:17:36.04,0:17:37.27,Default,,0000,0000,0000,,thing, it's really long. We have a lot of Dialogue: 0,0:17:37.27,0:17:39.70,Default,,0000,0000,0000,,context. We'd like to stick on this. OK, second, Dialogue: 0,0:17:39.70,0:17:42.35,Default,,0000,0000,0000,,you know, that's the next day. Cool. Then\Nthe, Dialogue: 0,0:17:42.35,0:17:44.20,Default,,0000,0000,0000,,you know, the third day comes around. Like,\Nwe Dialogue: 0,0:17:44.20,0:17:47.42,Default,,0000,0000,0000,,still. We're almost done. We'd like to stick.\NAnd Dialogue: 0,0:17:47.42,0:17:52.63,Default,,0000,0000,0000,,the whole team collectively is like, hmm.\NMaybe. OK. Dialogue: 0,0:17:52.63,0:17:56.60,Default,,0000,0000,0000,,Maybe. OK. Go ahead. Dialogue: 0,0:17:56.60,0:17:59.95,Default,,0000,0000,0000,,Fourth day rolls around. We're really almost\Ndone, I Dialogue: 0,0:17:59.95,0:18:01.80,Default,,0000,0000,0000,,swear. And then at that point, like we, as Dialogue: 0,0:18:01.80,0:18:04.09,Default,,0000,0000,0000,,a group, agree as a team collectively, like,\Nwe Dialogue: 0,0:18:04.09,0:18:06.40,Default,,0000,0000,0000,,should get somebody else in. Often, at that\Npoint, Dialogue: 0,0:18:06.40,0:18:09.02,Default,,0000,0000,0000,,the pair will say, one of us is gonna Dialogue: 0,0:18:09.02,0:18:12.04,Default,,0000,0000,0000,,swap out. You know, Bob's gonna stay on. Let's Dialogue: 0,0:18:12.04,0:18:15.30,Default,,0000,0000,0000,,get, who's available? Sally, you're available.\NJump in. Fresh Dialogue: 0,0:18:15.30,0:18:18.08,Default,,0000,0000,0000,,pair of eyes. They're probably stuck. You\Nneed a Dialogue: 0,0:18:18.08,0:18:21.53,Default,,0000,0000,0000,,new perspective. And so we will force rotation\Nthat Dialogue: 0,0:18:21.53,0:18:23.56,Default,,0000,0000,0000,,way, too. And just maybe taking it a step Dialogue: 0,0:18:23.56,0:18:26.15,Default,,0000,0000,0000,,further, something that will often come up\Nafter this Dialogue: 0,0:18:26.15,0:18:28.63,Default,,0000,0000,0000,,is, yeah, we rotate very often, but it's kind Dialogue: 0,0:18:28.63,0:18:30.44,Default,,0000,0000,0000,,of like the same people, like. We're the same Dialogue: 0,0:18:30.44,0:18:31.45,Default,,0000,0000,0000,,people on the time and kind of the same Dialogue: 0,0:18:31.45,0:18:34.03,Default,,0000,0000,0000,,four people just kind of, like, go around\Nand Dialogue: 0,0:18:34.03,0:18:36.05,Default,,0000,0000,0000,,around and around, what you can do to combat Dialogue: 0,0:18:36.05,0:18:38.69,Default,,0000,0000,0000,,that kind of a situation, where there's, there's\Nrotation, Dialogue: 0,0:18:38.69,0:18:41.08,Default,,0000,0000,0000,,but it's not balanced amongst the entire team,\Nis Dialogue: 0,0:18:41.08,0:18:43.13,Default,,0000,0000,0000,,you can just start tracking it. Just, you\Ncould Dialogue: 0,0:18:43.13,0:18:45.02,Default,,0000,0000,0000,,do a white board. Like, keeping track of who's Dialogue: 0,0:18:45.02,0:18:47.38,Default,,0000,0000,0000,,paired with who how many times, all the way Dialogue: 0,0:18:47.38,0:18:50.95,Default,,0000,0000,0000,,to, there's even a website called pair tricks,\NI Dialogue: 0,0:18:50.95,0:18:53.96,Default,,0000,0000,0000,,believe. Where you can sign up your company\Nand, Dialogue: 0,0:18:53.96,0:18:55.05,Default,,0000,0000,0000,,and you can put all the pairs in and Dialogue: 0,0:18:55.05,0:18:57.72,Default,,0000,0000,0000,,it'll randomly assign people and do weighting\Nbased on Dialogue: 0,0:18:57.72,0:18:59.68,Default,,0000,0000,0000,,how long, how long it's been since they've\Npaired Dialogue: 0,0:18:59.68,0:19:00.67,Default,,0000,0000,0000,,and things like that, but. Dialogue: 0,0:19:00.67,0:19:02.89,Default,,0000,0000,0000,,So you can do something like that, like, every, Dialogue: 0,0:19:02.89,0:19:04.63,Default,,0000,0000,0000,,or just keep track of it on a white Dialogue: 0,0:19:04.63,0:19:06.60,Default,,0000,0000,0000,,board or a Google doc or something like that. Dialogue: 0,0:19:06.60,0:19:07.55,Default,,0000,0000,0000,,K. Good questions. Dialogue: 0,0:19:07.55,0:19:09.80,Default,,0000,0000,0000,,AUDIENCE MEMBER: Kind of a follow-up to that. Dialogue: 0,0:19:09.80,0:19:10.42,Default,,0000,0000,0000,,H.M.: Sure. Dialogue: 0,0:19:10.42,0:19:13.29,Default,,0000,0000,0000,,AUDIENCE MEMBER: How do you combine that with,\Nlike, Dialogue: 0,0:19:13.29,0:19:16.32,Default,,0000,0000,0000,,sort of junior developers, like, sort of making\Nsure Dialogue: 0,0:19:16.32,0:19:18.49,Default,,0000,0000,0000,,that they're not going through so much context-switching\Nthat Dialogue: 0,0:19:18.49,0:19:20.11,Default,,0000,0000,0000,,they're not really getting anything out of\Nit, they're Dialogue: 0,0:19:20.11,0:19:21.68,Default,,0000,0000,0000,,just sort of starting a feature and then,\Nlike, Dialogue: 0,0:19:21.68,0:19:23.59,Default,,0000,0000,0000,,you know. So like, in our case, we'll start Dialogue: 0,0:19:23.59,0:19:24.75,Default,,0000,0000,0000,,something and it won't, won't be done in one Dialogue: 0,0:19:24.75,0:19:27.29,Default,,0000,0000,0000,,day, and then sort of, they'll switch and\Nit's Dialogue: 0,0:19:27.29,0:19:30.70,Default,,0000,0000,0000,,just kind of like, well like, I'm kind of Dialogue: 0,0:19:30.70,0:19:32.02,Default,,0000,0000,0000,,like lost. Like I- Dialogue: 0,0:19:32.02,0:19:33.10,Default,,0000,0000,0000,,J.M.: Right. Right. Dialogue: 0,0:19:33.10,0:19:34.33,Default,,0000,0000,0000,,AUDIENCE MEMBER: I was barely beginning to\Ngrasp, like- Dialogue: 0,0:19:34.33,0:19:34.34,Default,,0000,0000,0000,,J.M.: Sure. Dialogue: 0,0:19:34.34,0:19:35.64,Default,,0000,0000,0000,,AUDIENCE MEMBER: -that part of the code that\NI Dialogue: 0,0:19:35.64,0:19:36.42,Default,,0000,0000,0000,,was working on. Dialogue: 0,0:19:36.42,0:19:38.71,Default,,0000,0000,0000,,J.M.: So I think just being flexible, you\Nknow, Dialogue: 0,0:19:38.71,0:19:40.83,Default,,0000,0000,0000,,just because it's nine o'clock the next day\Ndoesn't Dialogue: 0,0:19:40.83,0:19:43.20,Default,,0000,0000,0000,,mean that, you know, the judge comes in and, Dialogue: 0,0:19:43.20,0:19:44.80,Default,,0000,0000,0000,,you know, breaks everybody up or something\Nlike that. Dialogue: 0,0:19:44.80,0:19:46.72,Default,,0000,0000,0000,,And I think that if, if the team decides, Dialogue: 0,0:19:46.72,0:19:49.86,Default,,0000,0000,0000,,you know, hey, it seems like this junior developer, Dialogue: 0,0:19:49.86,0:19:51.88,Default,,0000,0000,0000,,they're three-quarters of the way, the, the\Nsenior and Dialogue: 0,0:19:51.88,0:19:54.92,Default,,0000,0000,0000,,junior developer, they're three-quarters of\Nthe way through this Dialogue: 0,0:19:54.92,0:19:58.33,Default,,0000,0000,0000,,task. They're trying to complete, yeah. Let\Nthem. Let Dialogue: 0,0:19:58.33,0:20:01.36,Default,,0000,0000,0000,,them complete the task. And, because they're\Ngonna get Dialogue: 0,0:20:01.36,0:20:02.84,Default,,0000,0000,0000,,a lot of benefit out of seeing it from Dialogue: 0,0:20:02.84,0:20:03.78,Default,,0000,0000,0000,,beginning to end. Dialogue: 0,0:20:03.78,0:20:07.58,Default,,0000,0000,0000,,So don't be, I'm personally an advocate of\Njust Dialogue: 0,0:20:07.58,0:20:08.86,Default,,0000,0000,0000,,kind of playing it by ear. Just kind of Dialogue: 0,0:20:08.86,0:20:11.20,Default,,0000,0000,0000,,seeing how it works out. Don't be so strict Dialogue: 0,0:20:11.20,0:20:14.85,Default,,0000,0000,0000,,that you're being too disruptive, but don't\Nbe so, Dialogue: 0,0:20:14.85,0:20:16.92,Default,,0000,0000,0000,,don't let people stick so long that you get Dialogue: 0,0:20:16.92,0:20:19.86,Default,,0000,0000,0000,,these little sort of knowledge cylos and ownership\Nand Dialogue: 0,0:20:19.86,0:20:20.70,Default,,0000,0000,0000,,such. Great. Dialogue: 0,0:20:20.70,0:20:22.37,Default,,0000,0000,0000,,AUDIENCE MEMBER: Thank you. Dialogue: 0,0:20:22.37,0:20:23.20,Default,,0000,0000,0000,,J.M.: Sure. Dialogue: 0,0:20:23.20,0:20:26.52,Default,,0000,0000,0000,,AUDIENCE MEMBER: A few questions on, I guess,\Nteam Dialogue: 0,0:20:26.52,0:20:29.15,Default,,0000,0000,0000,,dynamics with pairing. This one's kind of\Na follow Dialogue: 0,0:20:29.15,0:20:29.75,Default,,0000,0000,0000,,onto this one. Dialogue: 0,0:20:29.75,0:20:30.01,Default,,0000,0000,0000,,J.M.: Sure. Dialogue: 0,0:20:30.01,0:20:31.21,Default,,0000,0000,0000,,AUDIENCE MEMBER: I guess I'll spit them all\Nout. Dialogue: 0,0:20:31.21,0:20:31.75,Default,,0000,0000,0000,,J.M.: Go for it. Dialogue: 0,0:20:31.75,0:20:32.55,Default,,0000,0000,0000,,AUDIENCE MEMBER: Monopolize things a little. Dialogue: 0,0:20:32.55,0:20:34.26,Default,,0000,0000,0000,,One is, do you have any thoughts on, if Dialogue: 0,0:20:34.26,0:20:38.100,Default,,0000,0000,0000,,you have a group of, a spectrum of people Dialogue: 0,0:20:38.100,0:20:41.60,Default,,0000,0000,0000,,at different experience levels, are, can you\Ntalk about Dialogue: 0,0:20:41.60,0:20:44.90,Default,,0000,0000,0000,,sort of the pros and cons of going with, Dialogue: 0,0:20:44.90,0:20:47.55,Default,,0000,0000,0000,,like, senior senior, junior, junior, people\Nat like levels, Dialogue: 0,0:20:47.55,0:20:51.29,Default,,0000,0000,0000,,or to go junior senior to get more mentoring. Dialogue: 0,0:20:51.29,0:20:54.43,Default,,0000,0000,0000,,Have you had any barriers with tools, where\Npeople Dialogue: 0,0:20:54.43,0:20:56.89,Default,,0000,0000,0000,,just would be incompatible, say one guy likes\NVim Dialogue: 0,0:20:56.89,0:21:01.14,Default,,0000,0000,0000,,and one guy likes Sublime? And then, thirdly,\Ndo Dialogue: 0,0:21:01.14,0:21:05.97,Default,,0000,0000,0000,,you have any, any wisdom to share on adding Dialogue: 0,0:21:05.97,0:21:09.14,Default,,0000,0000,0000,,a test or QA person to a pair to Dialogue: 0,0:21:09.14,0:21:11.80,Default,,0000,0000,0000,,get that person involved early in what role\Na, Dialogue: 0,0:21:11.80,0:21:15.64,Default,,0000,0000,0000,,a QA engineer would play throughout a, a,\Nworking Dialogue: 0,0:21:15.64,0:21:17.18,Default,,0000,0000,0000,,on a story with a pair. Dialogue: 0,0:21:17.18,0:21:19.60,Default,,0000,0000,0000,,J.M.: OK. I may have to refer back to Dialogue: 0,0:21:19.60,0:21:21.01,Default,,0000,0000,0000,,you to remind me what all those are. But Dialogue: 0,0:21:21.01,0:21:27.34,Default,,0000,0000,0000,,I believe they were, experience level pairings,\Ntool conflicts, Dialogue: 0,0:21:27.34,0:21:29.01,Default,,0000,0000,0000,,and adding, like, a QA or a support person Dialogue: 0,0:21:29.01,0:21:29.65,Default,,0000,0000,0000,,to the team. Dialogue: 0,0:21:29.65,0:21:34.24,Default,,0000,0000,0000,,So let's do, let's do experience level pairings.\NI, Dialogue: 0,0:21:34.24,0:21:37.02,Default,,0000,0000,0000,,I like, personally, I don't, I don't consider\Nit Dialogue: 0,0:21:37.02,0:21:40.85,Default,,0000,0000,0000,,being a big deal to mix up almost any Dialogue: 0,0:21:40.85,0:21:47.53,Default,,0000,0000,0000,,kind of experience level pairs. Except the\Njunior-junior situation. Dialogue: 0,0:21:47.53,0:21:50.11,Default,,0000,0000,0000,,I wouldn't just randomly, personally, do that.\NSo the Dialogue: 0,0:21:50.11,0:21:55.24,Default,,0000,0000,0000,,obviously one is senior and junior. Those\Ncan be Dialogue: 0,0:21:55.24,0:21:57.57,Default,,0000,0000,0000,,great pairings, right. Just, especially for\Nthe junior person. Dialogue: 0,0:21:57.57,0:21:59.74,Default,,0000,0000,0000,,And that, maybe, a lot of people talk about Dialogue: 0,0:21:59.74,0:22:02.20,Default,,0000,0000,0000,,pairing and say, oh, you know, we pair when Dialogue: 0,0:22:02.20,0:22:04.22,Default,,0000,0000,0000,,we're wrapping somebody up. And they'll kind\Nof use Dialogue: 0,0:22:04.22,0:22:06.34,Default,,0000,0000,0000,,that as the only excuse for pairing. You know, Dialogue: 0,0:22:06.34,0:22:08.47,Default,,0000,0000,0000,,we're wrapping up this junior person. Dialogue: 0,0:22:08.47,0:22:10.84,Default,,0000,0000,0000,,But, that can put a lot of burden on Dialogue: 0,0:22:10.84,0:22:13.42,Default,,0000,0000,0000,,the senior person. If they're always ramping\Nsomebody up. Dialogue: 0,0:22:13.42,0:22:14.33,Default,,0000,0000,0000,,You know, if they're, if you get a new Dialogue: 0,0:22:14.33,0:22:17.20,Default,,0000,0000,0000,,person every so often, then they're, if they're\Na Dialogue: 0,0:22:17.20,0:22:18.85,Default,,0000,0000,0000,,senior person they might feel like they're\Nalways wrapping Dialogue: 0,0:22:18.85,0:22:21.23,Default,,0000,0000,0000,,somebody up. I'm gonna encourage everybody\Nto have the Dialogue: 0,0:22:21.23,0:22:24.22,Default,,0000,0000,0000,,attitude of, well, one, share, share the load.\NLike, Dialogue: 0,0:22:24.22,0:22:26.10,Default,,0000,0000,0000,,the junior person shouldn't just stick with\Nthe same Dialogue: 0,0:22:26.10,0:22:28.72,Default,,0000,0000,0000,,person all the time. And also have the attitude, Dialogue: 0,0:22:28.72,0:22:30.47,Default,,0000,0000,0000,,if you're a senior person, or have your senior Dialogue: 0,0:22:30.47,0:22:32.97,Default,,0000,0000,0000,,people have the attitude that, they can always\Nlearn Dialogue: 0,0:22:32.97,0:22:33.62,Default,,0000,0000,0000,,the junior person. Dialogue: 0,0:22:33.62,0:22:36.08,Default,,0000,0000,0000,,On the last project I was on, you know, Dialogue: 0,0:22:36.08,0:22:41.67,Default,,0000,0000,0000,,I've been doing software development for sixteen\Nyears. And Dialogue: 0,0:22:41.67,0:22:43.11,Default,,0000,0000,0000,,I was pairing with a guy who was fresh Dialogue: 0,0:22:43.11,0:22:44.85,Default,,0000,0000,0000,,out of college. And he didn't even have a Dialogue: 0,0:22:44.85,0:22:46.54,Default,,0000,0000,0000,,CS degree or anything. He was just, well,\Nyou Dialogue: 0,0:22:46.54,0:22:48.21,Default,,0000,0000,0000,,know, one of those smart people who just graduated Dialogue: 0,0:22:48.21,0:22:49.93,Default,,0000,0000,0000,,from college, and he was doing something that\Nwas Dialogue: 0,0:22:49.93,0:22:51.97,Default,,0000,0000,0000,,clearly way below his skill level. We're like,\Nyou Dialogue: 0,0:22:51.97,0:22:56.26,Default,,0000,0000,0000,,should probably do some programming. Here,\Nget over here. Dialogue: 0,0:22:56.26,0:22:58.28,Default,,0000,0000,0000,,And, I learned something new from him every\Nsingle Dialogue: 0,0:22:58.28,0:23:02.46,Default,,0000,0000,0000,,day. You know, and I, the supposed expert,\Nand Dialogue: 0,0:23:02.46,0:23:04.28,Default,,0000,0000,0000,,everyday he's like, oh, did you know about\Nthis? Dialogue: 0,0:23:04.28,0:23:07.07,Default,,0000,0000,0000,,Whoa. No. That's really cool. I would usually\Nwrite Dialogue: 0,0:23:07.07,0:23:09.27,Default,,0000,0000,0000,,it down. I kept trying to keep track of Dialogue: 0,0:23:09.27,0:23:11.32,Default,,0000,0000,0000,,the things I learned each day. And then people Dialogue: 0,0:23:11.32,0:23:15.27,Default,,0000,0000,0000,,at the same experience level, that's, that's\Ngreat as Dialogue: 0,0:23:15.27,0:23:17.27,Default,,0000,0000,0000,,well. You do sometimes have to watch out for Dialogue: 0,0:23:17.27,0:23:21.11,Default,,0000,0000,0000,,people, especially senior, senior people,\Nwho maybe, let's say Dialogue: 0,0:23:21.11,0:23:26.05,Default,,0000,0000,0000,,they once had the word architect on their\Nnames. Dialogue: 0,0:23:26.05,0:23:28.97,Default,,0000,0000,0000,,Sometimes people are gonna be extremely opinionated\Nand not Dialogue: 0,0:23:28.97,0:23:31.29,Default,,0000,0000,0000,,want to budge from ideas. It's something to\Nwatch Dialogue: 0,0:23:31.29,0:23:35.14,Default,,0000,0000,0000,,out for. People kind of, we call it thrashing. Dialogue: 0,0:23:35.14,0:23:37.43,Default,,0000,0000,0000,,Junior-junior. Should you ever pair junior\Npeople together? And Dialogue: 0,0:23:37.43,0:23:41.02,Default,,0000,0000,0000,,I think the answer is sometimes yes. Especially\Nif Dialogue: 0,0:23:41.02,0:23:44.13,Default,,0000,0000,0000,,they've both been through multiple, been through\Nmultiple pair Dialogue: 0,0:23:44.13,0:23:46.43,Default,,0000,0000,0000,,rotations. They're kind of, maybe one of them\Nhas Dialogue: 0,0:23:46.43,0:23:48.03,Default,,0000,0000,0000,,kind of been on that, let's make up the Dialogue: 0,0:23:48.03,0:23:50.41,Default,,0000,0000,0000,,user, new user profile rewrite or something\Nlike that. Dialogue: 0,0:23:50.41,0:23:52.26,Default,,0000,0000,0000,,And that junior person has kind of bounced\Nbetween Dialogue: 0,0:23:52.26,0:23:54.48,Default,,0000,0000,0000,,pairs, all kind of in that area. And they're Dialogue: 0,0:23:54.48,0:23:56.59,Default,,0000,0000,0000,,kind of getting pretty good at learning some\Nstuff. Dialogue: 0,0:23:56.59,0:23:58.62,Default,,0000,0000,0000,,It might be good to swap in and have Dialogue: 0,0:23:58.62,0:24:01.69,Default,,0000,0000,0000,,a junior person who doesn't have any experience\Nin Dialogue: 0,0:24:01.69,0:24:05.57,Default,,0000,0000,0000,,that area pair with this newbie but newbie\Nwith Dialogue: 0,0:24:05.57,0:24:08.42,Default,,0000,0000,0000,,a lot of context. And then you can really Dialogue: 0,0:24:08.42,0:24:10.95,Default,,0000,0000,0000,,help them exercise what it's like to have\Nthem Dialogue: 0,0:24:10.95,0:24:13.17,Default,,0000,0000,0000,,own something. You know, own's a bad word.\NBut Dialogue: 0,0:24:13.17,0:24:15.38,Default,,0000,0000,0000,,whatever. You know what I mean. Dialogue: 0,0:24:15.38,0:24:17.12,Default,,0000,0000,0000,,Tre- you know, bringing this other person\Nup to Dialogue: 0,0:24:17.12,0:24:20.37,Default,,0000,0000,0000,,speed. Transferring that context. And it,\NI've always found Dialogue: 0,0:24:20.37,0:24:23.77,Default,,0000,0000,0000,,it amazing how, when I feel like I don't Dialogue: 0,0:24:23.77,0:24:25.53,Default,,0000,0000,0000,,really know anything and I'm really relying\Non this Dialogue: 0,0:24:25.53,0:24:27.82,Default,,0000,0000,0000,,other person, and suddenly the person I'm\Nrelying on Dialogue: 0,0:24:27.82,0:24:29.69,Default,,0000,0000,0000,,kind of drops off, and I have to explain Dialogue: 0,0:24:29.69,0:24:32.70,Default,,0000,0000,0000,,it to somebody else, it really forces me,\Npersonally, Dialogue: 0,0:24:32.70,0:24:35.35,Default,,0000,0000,0000,,to dig deep, understand the problem much better.\NAnd Dialogue: 0,0:24:35.35,0:24:37.69,Default,,0000,0000,0000,,I almost always surprise myself, both in how\Nmuch Dialogue: 0,0:24:37.69,0:24:40.70,Default,,0000,0000,0000,,I actually do know, and how much I don't Dialogue: 0,0:24:40.70,0:24:41.72,Default,,0000,0000,0000,,know. Dialogue: 0,0:24:41.72,0:24:44.32,Default,,0000,0000,0000,,So, once in awhile, having those junior people\Npair Dialogue: 0,0:24:44.32,0:24:48.82,Default,,0000,0000,0000,,up and, and yes, struggle, like, have problems.\NHave Dialogue: 0,0:24:48.82,0:24:50.45,Default,,0000,0000,0000,,to figure some stuff out, the way we all Dialogue: 0,0:24:50.45,0:24:52.91,Default,,0000,0000,0000,,used to have to do when we were working Dialogue: 0,0:24:52.91,0:24:54.48,Default,,0000,0000,0000,,by ourselves. OK. So that was a lot of Dialogue: 0,0:24:54.48,0:24:56.68,Default,,0000,0000,0000,,that stuff. Dialogue: 0,0:24:56.68,0:25:01.40,Default,,0000,0000,0000,,Tools. Wow. If you could see the email threads Dialogue: 0,0:25:01.40,0:25:04.73,Default,,0000,0000,0000,,go around at our company, these guys know.\NThese Dialogue: 0,0:25:04.73,0:25:09.74,Default,,0000,0000,0000,,guys know. Key bindings. Tools. Vim versus\NRubyMine versus, Dialogue: 0,0:25:09.74,0:25:16.68,Default,,0000,0000,0000,,versus Sublime versus TextMate versus frikin'\NDecorak. I mean, Dialogue: 0,0:25:16.68,0:25:20.21,Default,,0000,0000,0000,,give me a break. Come on people. Dialogue: 0,0:25:20.21,0:25:22.75,Default,,0000,0000,0000,,Yeah. That, that's, that's, it's a, it can\Nbe Dialogue: 0,0:25:22.75,0:25:26.14,Default,,0000,0000,0000,,a huge struggle. And you can go to an Dialogue: 0,0:25:26.14,0:25:28.70,Default,,0000,0000,0000,,extreme, that I don't really know of anybody\Nelse Dialogue: 0,0:25:28.70,0:25:31.07,Default,,0000,0000,0000,,doing. Maybe some of you do this. I don't Dialogue: 0,0:25:31.07,0:25:34.46,Default,,0000,0000,0000,,know. But we pretty much standardize on a\Nparticular Dialogue: 0,0:25:34.46,0:25:37.52,Default,,0000,0000,0000,,kind of keybinding, and often an editor. It,\Nit Dialogue: 0,0:25:37.52,0:25:40.38,Default,,0000,0000,0000,,evolves. It isn't like, the manager doesn't\Ncome down Dialogue: 0,0:25:40.38,0:25:43.97,Default,,0000,0000,0000,,and say, today we're a Vim company. The, the Dialogue: 0,0:25:43.97,0:25:48.17,Default,,0000,0000,0000,,team ends up, you know, adopting, and the\Npeople Dialogue: 0,0:25:48.17,0:25:51.53,Default,,0000,0000,0000,,who are kind of holding onto those other texts, Dialogue: 0,0:25:51.53,0:25:53.98,Default,,0000,0000,0000,,they inevitably kind of like, OK, fine. Fine,\NI'll Dialogue: 0,0:25:53.98,0:25:55.65,Default,,0000,0000,0000,,do it. And I did that, because I used Dialogue: 0,0:25:55.65,0:25:57.39,Default,,0000,0000,0000,,to work out of the San Francisco office. Now Dialogue: 0,0:25:57.39,0:25:58.70,Default,,0000,0000,0000,,I'm working out of the New York office. And Dialogue: 0,0:25:58.70,0:26:01.20,Default,,0000,0000,0000,,they use different tool sets. It just evolved\Nthat Dialogue: 0,0:26:01.20,0:26:03.89,Default,,0000,0000,0000,,way. And rather than stomp that out, we've\Nlet, Dialogue: 0,0:26:03.89,0:26:06.13,Default,,0000,0000,0000,,we've let it evolve. And it's been great. Dialogue: 0,0:26:06.13,0:26:07.89,Default,,0000,0000,0000,,My advice on that front would at least be Dialogue: 0,0:26:07.89,0:26:11.87,Default,,0000,0000,0000,,this. One, be open to learning new things.\NTwo, Dialogue: 0,0:26:11.87,0:26:14.20,Default,,0000,0000,0000,,if you have your super awesome custom setup\Nthat's Dialogue: 0,0:26:14.20,0:26:17.36,Default,,0000,0000,0000,,just for you, and your own, your precious,\NVim Dialogue: 0,0:26:17.36,0:26:21.01,Default,,0000,0000,0000,,bindings, don't stomp the defaults. Because\Nmaybe that person Dialogue: 0,0:26:21.01,0:26:23.67,Default,,0000,0000,0000,,who doesn't really know Vim very well, they\Nmight Dialogue: 0,0:26:23.67,0:26:25.84,Default,,0000,0000,0000,,at, or, or RubyMine or whatever your editor\Nor Dialogue: 0,0:26:25.84,0:26:28.04,Default,,0000,0000,0000,,tool of choice is, they may not know your Dialogue: 0,0:26:28.04,0:26:29.100,Default,,0000,0000,0000,,thing. But they may know kind of enough of Dialogue: 0,0:26:29.100,0:26:32.62,Default,,0000,0000,0000,,the default settings, that they can kind of\Nget Dialogue: 0,0:26:32.62,0:26:35.39,Default,,0000,0000,0000,,around and maybe, maybe they start adopting\Nyours. Or Dialogue: 0,0:26:35.39,0:26:37.23,Default,,0000,0000,0000,,maybe they say, yeah, I don't really use that Dialogue: 0,0:26:37.23,0:26:39.68,Default,,0000,0000,0000,,key binding for this, I use it for something Dialogue: 0,0:26:39.68,0:26:42.79,Default,,0000,0000,0000,,else. And, and be open for that. But people Dialogue: 0,0:26:42.79,0:26:48.61,Default,,0000,0000,0000,,can sometimes be too closed minded about,\Nyou know, Dialogue: 0,0:26:48.61,0:26:52.58,Default,,0000,0000,0000,,they build this little ecosystem just for\Nthemselves, and, Dialogue: 0,0:26:52.58,0:26:54.87,Default,,0000,0000,0000,,and not want to, to change, and I encourage Dialogue: 0,0:26:54.87,0:26:57.41,Default,,0000,0000,0000,,people be open to change, but leave the defaults. Dialogue: 0,0:26:57.41,0:26:59.97,Default,,0000,0000,0000,,And be open to trying other stuff. But there's Dialogue: 0,0:26:59.97,0:27:03.36,Default,,0000,0000,0000,,no silver bullet unless you mandate, our office\Nis Dialogue: 0,0:27:03.36,0:27:07.68,Default,,0000,0000,0000,,an X office and everybody just learn it. Dialogue: 0,0:27:07.68,0:27:11.64,Default,,0000,0000,0000,,OK. Integrating other people into the team.\NLike, QA Dialogue: 0,0:27:11.64,0:27:14.04,Default,,0000,0000,0000,,folks. And if you don't mind, I'll sort of Dialogue: 0,0:27:14.04,0:27:19.16,Default,,0000,0000,0000,,mutate that question into pairing across different\Ndisciplines, or Dialogue: 0,0:27:19.16,0:27:21.22,Default,,0000,0000,0000,,integrating anybody of any other discipline\Ninto the pairing Dialogue: 0,0:27:21.22,0:27:24.24,Default,,0000,0000,0000,,structure. I'm a big fan of that. Be it Dialogue: 0,0:27:24.24,0:27:27.81,Default,,0000,0000,0000,,a QA person, design people, design, you know,\Nfront Dialogue: 0,0:27:27.81,0:27:31.39,Default,,0000,0000,0000,,end design or visual design, designers. Even\Nyour product Dialogue: 0,0:27:31.39,0:27:34.75,Default,,0000,0000,0000,,owners, product managers, whatever you want\Nto call them. Dialogue: 0,0:27:34.75,0:27:36.51,Default,,0000,0000,0000,,I think that that's great. One, it builds\Nup Dialogue: 0,0:27:36.51,0:27:39.01,Default,,0000,0000,0000,,a lot of empathy. Just from a person to Dialogue: 0,0:27:39.01,0:27:41.41,Default,,0000,0000,0000,,person point of view. Two, it can be super Dialogue: 0,0:27:41.41,0:27:45.18,Default,,0000,0000,0000,,practical, especially with, say, visual design.\NAnd, and actually Dialogue: 0,0:27:45.18,0:27:48.52,Default,,0000,0000,0000,,QA as well. Like, that last mile, I've always Dialogue: 0,0:27:48.52,0:27:51.41,Default,,0000,0000,0000,,found, of say a visual design, where, you\Nknow, Dialogue: 0,0:27:51.41,0:27:52.73,Default,,0000,0000,0000,,you've pretty much got all the assets in.\NLet's Dialogue: 0,0:27:52.73,0:27:53.96,Default,,0000,0000,0000,,say you're building a web page. Got all the Dialogue: 0,0:27:53.96,0:27:58.23,Default,,0000,0000,0000,,assets in and you're, you're tweaking the\Ncss, and Dialogue: 0,0:27:58.23,0:27:59.100,Default,,0000,0000,0000,,all the stuff that came from visual design,\Nit's Dialogue: 0,0:27:59.100,0:28:02.83,Default,,0000,0000,0000,,pretty good right now, but you know that field, Dialogue: 0,0:28:02.83,0:28:04.62,Default,,0000,0000,0000,,or that area of the page that looked great Dialogue: 0,0:28:04.62,0:28:07.52,Default,,0000,0000,0000,,with lorem ipsum, that only had like twenty-five\Ncharacters. Dialogue: 0,0:28:07.52,0:28:09.63,Default,,0000,0000,0000,,If somebody puts in a thousand characters,\Nand they Dialogue: 0,0:28:09.63,0:28:13.84,Default,,0000,0000,0000,,can, the whole thing goes blah. Right? Crazy. Dialogue: 0,0:28:13.84,0:28:17.11,Default,,0000,0000,0000,,Getting visual design in to say, hey, like,\Nthe, Dialogue: 0,0:28:17.11,0:28:19.98,Default,,0000,0000,0000,,the last bit, let's just sit here and work Dialogue: 0,0:28:19.98,0:28:22.08,Default,,0000,0000,0000,,on this. And then you can just, especially\Nif Dialogue: 0,0:28:22.08,0:28:23.44,Default,,0000,0000,0000,,you're using, like, web, if you're doing web\Ndevelopment, Dialogue: 0,0:28:23.44,0:28:25.35,Default,,0000,0000,0000,,and you can literally tweak it right there\Non Dialogue: 0,0:28:25.35,0:28:27.84,Default,,0000,0000,0000,,the screen together. That could be super powerful.\NAnd Dialogue: 0,0:28:27.84,0:28:30.88,Default,,0000,0000,0000,,I've even been in situations where you'll,\Nthey were Dialogue: 0,0:28:30.88,0:28:33.15,Default,,0000,0000,0000,,so good that they were working on this thing Dialogue: 0,0:28:33.15,0:28:34.89,Default,,0000,0000,0000,,and were like, moving stuff around. They're\Nlike, ah, Dialogue: 0,0:28:34.89,0:28:36.93,Default,,0000,0000,0000,,now that we've moved this from here to here, Dialogue: 0,0:28:36.93,0:28:40.22,Default,,0000,0000,0000,,those icons look terrible. Hold on, and they're\Nlike, Dialogue: 0,0:28:40.22,0:28:42.20,Default,,0000,0000,0000,,somehow spew out an icon out of their fingertips. Dialogue: 0,0:28:42.20,0:28:44.30,Default,,0000,0000,0000,,And they're like, OK, now pull in this icon. Dialogue: 0,0:28:44.30,0:28:46.100,Default,,0000,0000,0000,,And wow, it's just. It's like the most rapid Dialogue: 0,0:28:46.100,0:28:50.67,Default,,0000,0000,0000,,changing finalization wrapping up of, of something\NI've ever Dialogue: 0,0:28:50.67,0:28:52.53,Default,,0000,0000,0000,,worked in, and that was one of the best Dialogue: 0,0:28:52.53,0:28:53.91,Default,,0000,0000,0000,,experiences I've ever had pairing was with\Nthis person Dialogue: 0,0:28:53.91,0:28:59.71,Default,,0000,0000,0000,,who was not technically a software developer. Dialogue: 0,0:28:59.71,0:29:02.04,Default,,0000,0000,0000,,QA, as well. I think, like, a really good Dialogue: 0,0:29:02.04,0:29:04.100,Default,,0000,0000,0000,,QA person is worth their weight in, in gold. Dialogue: 0,0:29:04.100,0:29:07.31,Default,,0000,0000,0000,,I think if anybody here is kind of tied Dialogue: 0,0:29:07.31,0:29:11.15,Default,,0000,0000,0000,,into the capital A Agile community, or at\Nleast Dialogue: 0,0:29:11.15,0:29:14.84,Default,,0000,0000,0000,,extreme programming, you know, somehow this\Nstrange notion came Dialogue: 0,0:29:14.84,0:29:17.80,Default,,0000,0000,0000,,up that, like, you don't need QA. We've got Dialogue: 0,0:29:17.80,0:29:20.65,Default,,0000,0000,0000,,tests for that. And it's like, nah. Those\Nare Dialogue: 0,0:29:20.65,0:29:23.24,Default,,0000,0000,0000,,two different things. So, integrating QA people\Ncan be Dialogue: 0,0:29:23.24,0:29:26.25,Default,,0000,0000,0000,,really good, especially if you're, if they're\Nin a Dialogue: 0,0:29:26.25,0:29:28.69,Default,,0000,0000,0000,,mode of, maybe you've got a big release coming Dialogue: 0,0:29:28.69,0:29:32.46,Default,,0000,0000,0000,,up, and they're hammering the site and finding\Nall Dialogue: 0,0:29:32.46,0:29:36.58,Default,,0000,0000,0000,,these bugs, and you know, pairing with them\Nas Dialogue: 0,0:29:36.58,0:29:40.28,Default,,0000,0000,0000,,you're fixing the bugs, as they're like pressing,\Nyou Dialogue: 0,0:29:40.28,0:29:42.58,Default,,0000,0000,0000,,know, trying all their different attacks on\Nthe system. Dialogue: 0,0:29:42.58,0:29:44.32,Default,,0000,0000,0000,,They're saying, OK, well you fixed that one,\Nbut Dialogue: 0,0:29:44.32,0:29:46.10,Default,,0000,0000,0000,,that makes me think of this other thing. Oh, Dialogue: 0,0:29:46.10,0:29:48.15,Default,,0000,0000,0000,,look. It's broken. OK. Try this. Try this.\NAnd Dialogue: 0,0:29:48.15,0:29:53.42,Default,,0000,0000,0000,,just, like, just kind of, you know, purpose,\Npurposeful Dialogue: 0,0:29:53.42,0:29:56.46,Default,,0000,0000,0000,,pairing when it's needed can be super valuable\Nas Dialogue: 0,0:29:56.46,0:29:56.96,Default,,0000,0000,0000,,well. Dialogue: 0,0:29:56.96,0:30:01.24,Default,,0000,0000,0000,,Now I haven't, say, just, you know, like,\Nwhere, Dialogue: 0,0:30:01.24,0:30:03.44,Default,,0000,0000,0000,,hey, we're making an android application and\Ntoday I'm Dialogue: 0,0:30:03.44,0:30:06.22,Default,,0000,0000,0000,,doing some, you know, a big feature, and it Dialogue: 0,0:30:06.22,0:30:09.46,Default,,0000,0000,0000,,just pair with a QA person instead of another Dialogue: 0,0:30:09.46,0:30:11.61,Default,,0000,0000,0000,,software developer, in the middle or at the\Nbeginning Dialogue: 0,0:30:11.61,0:30:15.01,Default,,0000,0000,0000,,of the development process. I haven't done\Nthat. But Dialogue: 0,0:30:15.01,0:30:15.76,Default,,0000,0000,0000,,give it a shot. Dialogue: 0,0:30:15.76,0:30:19.49,Default,,0000,0000,0000,,All right. That was three. I hope they were Dialogue: 0,0:30:19.49,0:30:20.12,Default,,0000,0000,0000,,good. Cool. Dialogue: 0,0:30:20.12,0:30:23.13,Default,,0000,0000,0000,,AUDIENCE MEMBER: Quick comment about the cross-tooling, Dialogue: 0,0:30:23.13,0:30:23.56,Default,,0000,0000,0000,,or cross-editor, Dialogue: 0,0:30:23.56,0:30:29.99,Default,,0000,0000,0000,,there's a tool called Floobits - F-L-O-O bits,\Nwhich Dialogue: 0,0:30:29.99,0:30:32.35,Default,,0000,0000,0000,,lets your Vim people work with your Emacs\Npeople, Dialogue: 0,0:30:32.35,0:30:34.63,Default,,0000,0000,0000,,and the idea is, like, one of them's got Dialogue: 0,0:30:34.63,0:30:36.18,Default,,0000,0000,0000,,their computer and the other one's got their\Ncomputer, Dialogue: 0,0:30:36.18,0:30:37.84,Default,,0000,0000,0000,,and they're each running the same damn thing,\Nbut Dialogue: 0,0:30:37.84,0:30:40.90,Default,,0000,0000,0000,,it's all synced and good and there's a fall Dialogue: 0,0:30:40.90,0:30:43.58,Default,,0000,0000,0000,,back, which is like a diff shipper for other Dialogue: 0,0:30:43.58,0:30:44.21,Default,,0000,0000,0000,,apps. So it's- Dialogue: 0,0:30:44.21,0:30:45.05,Default,,0000,0000,0000,,J.M.: OK. Cool. Floobits. Dialogue: 0,0:30:45.05,0:30:45.67,Default,,0000,0000,0000,,AUDIENCE MEMBER: Yeah. Dialogue: 0,0:30:45.67,0:30:47.20,Default,,0000,0000,0000,,J.M.: I've heard of it. I haven't, well, I Dialogue: 0,0:30:47.20,0:30:48.65,Default,,0000,0000,0000,,did, I technically did try it when it was Dialogue: 0,0:30:48.65,0:30:50.75,Default,,0000,0000,0000,,early. And it didn't really work very well,\Nbut Dialogue: 0,0:30:50.75,0:30:51.68,Default,,0000,0000,0000,,I'm gonna try it again, cause people- Dialogue: 0,0:30:51.68,0:30:52.99,Default,,0000,0000,0000,,AUDIENCE MEMBER: Yeah. It's, it's still- Dialogue: 0,0:30:52.99,0:30:54.98,Default,,0000,0000,0000,,AUDIENCE MEMBER: -fairly early, I think. But\Nthe promise Dialogue: 0,0:30:54.98,0:30:57.51,Default,,0000,0000,0000,,is there and more plugins would probably help\Nit. Dialogue: 0,0:30:57.51,0:30:58.05,Default,,0000,0000,0000,,But. Dialogue: 0,0:30:58.05,0:30:59.13,Default,,0000,0000,0000,,J.M.: Excellent. Dialogue: 0,0:30:59.13,0:31:01.90,Default,,0000,0000,0000,,AUDIENCE MEMBER: So, a couple questions. One,\Nwhen you're Dialogue: 0,0:31:01.90,0:31:04.74,Default,,0000,0000,0000,,driving, how much vocalization do you do to\Nthe Dialogue: 0,0:31:04.74,0:31:07.47,Default,,0000,0000,0000,,other person explaining your thoughts? And\Nthe other one Dialogue: 0,0:31:07.47,0:31:11.40,Default,,0000,0000,0000,,is, when you've got a senior developer paired\Nwith Dialogue: 0,0:31:11.40,0:31:14.100,Default,,0000,0000,0000,,a junior developer, there's, you know, I frequently\Nfind, Dialogue: 0,0:31:14.100,0:31:17.31,Default,,0000,0000,0000,,I'm the senior one on this side. And there's, Dialogue: 0,0:31:17.31,0:31:20.67,Default,,0000,0000,0000,,I know I need to let them work through Dialogue: 0,0:31:20.67,0:31:22.17,Default,,0000,0000,0000,,it, but at the same time I want to Dialogue: 0,0:31:22.17,0:31:23.38,Default,,0000,0000,0000,,rip it out of their hands and type it, Dialogue: 0,0:31:23.38,0:31:24.03,Default,,0000,0000,0000,,you know, it's like, how- Dialogue: 0,0:31:24.03,0:31:24.42,Default,,0000,0000,0000,,J.M.: It's hard. Dialogue: 0,0:31:24.42,0:31:26.03,Default,,0000,0000,0000,,AUDIENCE MEMBER: -what tools do you, techniques\Ndo you Dialogue: 0,0:31:26.03,0:31:28.35,Default,,0000,0000,0000,,use to combat that and work with that and Dialogue: 0,0:31:28.35,0:31:29.99,Default,,0000,0000,0000,,help them to learn? Dialogue: 0,0:31:29.99,0:31:32.55,Default,,0000,0000,0000,,J.M.: Sure. So, the first question was. Wow,\Nthis Dialogue: 0,0:31:32.55,0:31:35.59,Default,,0000,0000,0000,,is really terrible. What was the first question\Nagain? Dialogue: 0,0:31:35.59,0:31:36.93,Default,,0000,0000,0000,,AUDIENCE MEMBER: Vocalization. Dialogue: 0,0:31:36.93,0:31:41.55,Default,,0000,0000,0000,,J.M.: Vocalization. Yes. Ironically. So vocalization\Nand then being Dialogue: 0,0:31:41.55,0:31:43.22,Default,,0000,0000,0000,,a keyboard hog, right? I'm that, like, I'll,\NI'll, Dialogue: 0,0:31:43.22,0:31:44.77,Default,,0000,0000,0000,,I'll take on a trip with that one. Cause Dialogue: 0,0:31:44.77,0:31:46.17,Default,,0000,0000,0000,,I'm, I can be that way. Dialogue: 0,0:31:46.17,0:31:49.82,Default,,0000,0000,0000,,Or, at least, letting new people struggle\Nthrough something Dialogue: 0,0:31:49.82,0:31:52.42,Default,,0000,0000,0000,,when you already know the answer, for example. Dialogue: 0,0:31:52.42,0:31:55.46,Default,,0000,0000,0000,,Vocalization. I vocalize a lot. Especially\Nbecause I do Dialogue: 0,0:31:55.46,0:31:58.01,Default,,0000,0000,0000,,remote pair programming. And I lose a lot\Nof Dialogue: 0,0:31:58.01,0:32:01.49,Default,,0000,0000,0000,,the, a lot of the visual cues and physical Dialogue: 0,0:32:01.49,0:32:04.15,Default,,0000,0000,0000,,cues that you might pick up sitting side-by-side.\NI Dialogue: 0,0:32:04.15,0:32:06.62,Default,,0000,0000,0000,,lose a lot of those. So, when my whole Dialogue: 0,0:32:06.62,0:32:09.75,Default,,0000,0000,0000,,view into somebody is from, say, the neck\Nup, Dialogue: 0,0:32:09.75,0:32:12.28,Default,,0000,0000,0000,,you know, or like the midsection up, it's\Nharder Dialogue: 0,0:32:12.28,0:32:14.74,Default,,0000,0000,0000,,for me to say, see anybody's hands. I almost Dialogue: 0,0:32:14.74,0:32:16.82,Default,,0000,0000,0000,,never see anybody's hands. So are they reaching\Nfor Dialogue: 0,0:32:16.82,0:32:18.61,Default,,0000,0000,0000,,the keyboard right now? Are they reaching\Nfor the Dialogue: 0,0:32:18.61,0:32:20.98,Default,,0000,0000,0000,,mouse? Are their hands on their laps? You\Nknow, Dialogue: 0,0:32:20.98,0:32:21.100,Default,,0000,0000,0000,,what are they about - are they about to Dialogue: 0,0:32:21.100,0:32:23.45,Default,,0000,0000,0000,,do something? I don't really know. Well like,\Nwhen Dialogue: 0,0:32:23.45,0:32:26.02,Default,,0000,0000,0000,,you pair side by side, and out of, you Dialogue: 0,0:32:26.02,0:32:27.32,Default,,0000,0000,0000,,know, right now I can still kind of see Dialogue: 0,0:32:27.32,0:32:29.49,Default,,0000,0000,0000,,you over there. And if I see this hand Dialogue: 0,0:32:29.49,0:32:31.31,Default,,0000,0000,0000,,going out then that's a cue for me to Dialogue: 0,0:32:31.31,0:32:32.63,Default,,0000,0000,0000,,be like, oh, it looks like they want to Dialogue: 0,0:32:32.63,0:32:34.64,Default,,0000,0000,0000,,do something. I wasn't in the middle of doing Dialogue: 0,0:32:34.64,0:32:37.11,Default,,0000,0000,0000,,something, so I'll kind of back off. Dialogue: 0,0:32:37.11,0:32:41.62,Default,,0000,0000,0000,,So, maybe a little bit less verbalization,\Nconsciously verbalizing, Dialogue: 0,0:32:41.62,0:32:45.57,Default,,0000,0000,0000,,anyway. But, when I'm remote, I'm constantly\Nsaying things Dialogue: 0,0:32:45.57,0:32:47.23,Default,,0000,0000,0000,,like, I'm gonna grab the mouse. Can I look Dialogue: 0,0:32:47.23,0:32:49.12,Default,,0000,0000,0000,,at this? Would you like to drive? Do you Dialogue: 0,0:32:49.12,0:32:51.25,Default,,0000,0000,0000,,mind if I drive? All that kind of stuff. Dialogue: 0,0:32:51.25,0:32:54.11,Default,,0000,0000,0000,,And, you know, to the point where, I've pair Dialogue: 0,0:32:54.11,0:32:56.76,Default,,0000,0000,0000,,programmed with, remote paired with people,\Nand they've told Dialogue: 0,0:32:56.76,0:32:59.81,Default,,0000,0000,0000,,me later that they, they found themselves\Ndoing that Dialogue: 0,0:32:59.81,0:33:03.78,Default,,0000,0000,0000,,much more when they were pairing side by side, Dialogue: 0,0:33:03.78,0:33:06.67,Default,,0000,0000,0000,,and they felt it made them a better programmer, Dialogue: 0,0:33:06.67,0:33:09.21,Default,,0000,0000,0000,,or a better pair anyway, because they found\Nthemselves Dialogue: 0,0:33:09.21,0:33:11.82,Default,,0000,0000,0000,,being more vocal even when they were in person. Dialogue: 0,0:33:11.82,0:33:14.02,Default,,0000,0000,0000,,Which was, which I thought was great. Dialogue: 0,0:33:14.02,0:33:16.30,Default,,0000,0000,0000,,AUDIENCE MEMBER: What about vocalizing, like,\NOK, now I'm Dialogue: 0,0:33:16.30,0:33:18.78,Default,,0000,0000,0000,,making this case statement because of such\Nand such, Dialogue: 0,0:33:18.78,0:33:19.88,Default,,0000,0000,0000,,do you go to that level, or? Dialogue: 0,0:33:19.88,0:33:21.98,Default,,0000,0000,0000,,J.M.: Yeah. We, I will sometimes go to that Dialogue: 0,0:33:21.98,0:33:25.24,Default,,0000,0000,0000,,level if, if I feel like that it's needed. Dialogue: 0,0:33:25.24,0:33:28.88,Default,,0000,0000,0000,,Often, yeah, I'm kind of like, constantly\Ntalking. And Dialogue: 0,0:33:28.88,0:33:31.09,Default,,0000,0000,0000,,I've recorded myself doing it, so I could\Nshow, Dialogue: 0,0:33:31.09,0:33:32.69,Default,,0000,0000,0000,,like, for a presentation or something like\Nthat. I Dialogue: 0,0:33:32.69,0:33:34.94,Default,,0000,0000,0000,,actually kind of hate listening to myself\Ndo all Dialogue: 0,0:33:34.94,0:33:38.41,Default,,0000,0000,0000,,that. But I, I think it's valuable. And I Dialogue: 0,0:33:38.41,0:33:41.91,Default,,0000,0000,0000,,find that often, my pair will in, sort of Dialogue: 0,0:33:41.91,0:33:43.44,Default,,0000,0000,0000,,call me out when I'm not doing that. You Dialogue: 0,0:33:43.44,0:33:45.15,Default,,0000,0000,0000,,know, I'll be kind of, like, in a zone Dialogue: 0,0:33:45.15,0:33:46.54,Default,,0000,0000,0000,,and kind of going and like the thoughts are Dialogue: 0,0:33:46.54,0:33:48.61,Default,,0000,0000,0000,,coming out and they'll say, like, well, what,\Nwhat, Dialogue: 0,0:33:48.61,0:33:50.29,Default,,0000,0000,0000,,what do you, what are you, what are you Dialogue: 0,0:33:50.29,0:33:53.34,Default,,0000,0000,0000,,doing? And I'll realize, ooh, I haven't, I'll\Nrealize Dialogue: 0,0:33:53.34,0:33:55.55,Default,,0000,0000,0000,,I haven't been, I haven't been saying anything.\NI Dialogue: 0,0:33:55.55,0:33:59.58,Default,,0000,0000,0000,,haven't been vocalizing it. And so, you know,\Nthat, Dialogue: 0,0:33:59.58,0:34:01.64,Default,,0000,0000,0000,,I think, is also kind of a tick mark Dialogue: 0,0:34:01.64,0:34:06.25,Default,,0000,0000,0000,,in the be more vocal column. Dialogue: 0,0:34:06.25,0:34:09.41,Default,,0000,0000,0000,,Were those the two questions? Dialogue: 0,0:34:09.41,0:34:09.63,Default,,0000,0000,0000,,AUDIENCE MEMBER: Junior developers. Dialogue: 0,0:34:09.63,0:34:09.89,Default,,0000,0000,0000,,J.M.: Junior developers. My god. Dialogue: 0,0:34:09.89,0:34:10.11,Default,,0000,0000,0000,,AUDIENCE MEMBER: Letting them- Dialogue: 0,0:34:10.11,0:34:10.81,Default,,0000,0000,0000,,J.M.: What's happening to me? Dialogue: 0,0:34:10.81,0:34:13.97,Default,,0000,0000,0000,,AUDIENCE MEMBER: -work through the problem\Nwhen you know Dialogue: 0,0:34:13.97,0:34:14.32,Default,,0000,0000,0000,,it. Dialogue: 0,0:34:14.32,0:34:17.85,Default,,0000,0000,0000,,J.M.: Yes. So, techniques for trying to let\Nthe Dialogue: 0,0:34:17.85,0:34:22.14,Default,,0000,0000,0000,,junior people drive more when you're more\Nsenior. It's Dialogue: 0,0:34:22.14,0:34:25.65,Default,,0000,0000,0000,,certainly hard. Some people never get it.\NSome people, Dialogue: 0,0:34:25.65,0:34:26.96,Default,,0000,0000,0000,,it can be especially bad if you have a Dialogue: 0,0:34:26.96,0:34:29.49,Default,,0000,0000,0000,,person who is, let's say, naturally, or professionally\Nmore Dialogue: 0,0:34:29.49,0:34:32.34,Default,,0000,0000,0000,,passive, and somebody who is naturally or\Nprofessionally more Dialogue: 0,0:34:32.34,0:34:39.06,Default,,0000,0000,0000,,assertive. Tricks for that are just both sides\Ntrying Dialogue: 0,0:34:39.06,0:34:40.99,Default,,0000,0000,0000,,to be more honest and vocal about things. Dialogue: 0,0:34:40.99,0:34:42.99,Default,,0000,0000,0000,,Like, oh, in saying, like, hey, do you mind Dialogue: 0,0:34:42.99,0:34:45.20,Default,,0000,0000,0000,,if I drive now? Would you like to drive? Dialogue: 0,0:34:45.20,0:34:49.03,Default,,0000,0000,0000,,I have physically sat on my hands. Like, underneath Dialogue: 0,0:34:49.03,0:34:52.82,Default,,0000,0000,0000,,my thighs. And when I feel myself, like, pull Dialogue: 0,0:34:52.82,0:34:54.26,Default,,0000,0000,0000,,my hand out, I'm like, ah, get it back Dialogue: 0,0:34:54.26,0:34:59.78,Default,,0000,0000,0000,,in there. Sit down. And ping pong pairing,\Nif Dialogue: 0,0:34:59.78,0:35:01.89,Default,,0000,0000,0000,,people haven't heard of that, is a great sort Dialogue: 0,0:35:01.89,0:35:07.12,Default,,0000,0000,0000,,of structure to, to implement, to kind of\Nenforce Dialogue: 0,0:35:07.12,0:35:09.69,Default,,0000,0000,0000,,a rigidity in the bounce back and forth. So, Dialogue: 0,0:35:09.69,0:35:12.50,Default,,0000,0000,0000,,again, this is testing, test-driven development.\NSo if you're Dialogue: 0,0:35:12.50,0:35:14.32,Default,,0000,0000,0000,,doing test-driven development, you can have\None person write Dialogue: 0,0:35:14.32,0:35:17.43,Default,,0000,0000,0000,,a failing test, and the other person implement\Nthe Dialogue: 0,0:35:17.43,0:35:20.60,Default,,0000,0000,0000,,code to make it pass. And then they, the Dialogue: 0,0:35:20.60,0:35:22.84,Default,,0000,0000,0000,,second person, writes a failing test, and\Nthe other Dialogue: 0,0:35:22.84,0:35:24.73,Default,,0000,0000,0000,,person writes the code to make it pass. And Dialogue: 0,0:35:24.73,0:35:27.40,Default,,0000,0000,0000,,you can sort of enforce that rigidity while\Nyou Dialogue: 0,0:35:27.40,0:35:28.28,Default,,0000,0000,0000,,need it. Dialogue: 0,0:35:28.28,0:35:31.33,Default,,0000,0000,0000,,And it was, it can actually be a not-so-subtle Dialogue: 0,0:35:31.33,0:35:34.23,Default,,0000,0000,0000,,cue, that somebody is being a keyboard hog.\NAnd Dialogue: 0,0:35:34.23,0:35:36.67,Default,,0000,0000,0000,,I encourage people to do this if they maybe Dialogue: 0,0:35:36.67,0:35:39.95,Default,,0000,0000,0000,,don't want to be confrontational about, like,\Ngimme the Dialogue: 0,0:35:39.95,0:35:42.14,Default,,0000,0000,0000,,damn keyboard. But if somebody's kind of going,\Nor Dialogue: 0,0:35:42.14,0:35:44.39,Default,,0000,0000,0000,,let's say, if you're going along, and your\Ncoding Dialogue: 0,0:35:44.39,0:35:46.04,Default,,0000,0000,0000,,and everything is great, and then your pair\Nsays, Dialogue: 0,0:35:46.04,0:35:48.80,Default,,0000,0000,0000,,hey, how about if we do some ping pong? Dialogue: 0,0:35:48.80,0:35:54.28,Default,,0000,0000,0000,,Like, oh. Hmm. Maybe I'm driving too much.\NOr Dialogue: 0,0:35:54.28,0:35:56.10,Default,,0000,0000,0000,,you can, you can say, like, oh, let's ping Dialogue: 0,0:35:56.10,0:35:58.12,Default,,0000,0000,0000,,pong this one. What do you say? Like, that Dialogue: 0,0:35:58.12,0:36:00.65,Default,,0000,0000,0000,,can be a, maybe a less assertive way of Dialogue: 0,0:36:00.65,0:36:02.88,Default,,0000,0000,0000,,saying let's balance it out. Dialogue: 0,0:36:02.88,0:36:04.70,Default,,0000,0000,0000,,Trace, you have something to say? Dialogue: 0,0:36:04.70,0:36:07.43,Default,,0000,0000,0000,,AUDIENCE MEMBER: Oh, just, I'm really glad\Nyou mentioned. Dialogue: 0,0:36:07.43,0:36:09.77,Default,,0000,0000,0000,,Thanks. I'm really glad you mentioned ping\Npong as Dialogue: 0,0:36:09.77,0:36:12.65,Default,,0000,0000,0000,,a, a technique to help manage that. When I Dialogue: 0,0:36:12.65,0:36:13.90,Default,,0000,0000,0000,,first started pairing, it was definitely something\Nthat was Dialogue: 0,0:36:13.90,0:36:16.04,Default,,0000,0000,0000,,very hard for me to do, and I had Dialogue: 0,0:36:16.04,0:36:17.00,Default,,0000,0000,0000,,to do the same thing. I sat on my Dialogue: 0,0:36:17.00,0:36:19.91,Default,,0000,0000,0000,,hands for three weeks. I, I saw people like, Dialogue: 0,0:36:19.91,0:36:21.73,Default,,0000,0000,0000,,you know, when I sat side by side with Dialogue: 0,0:36:21.73,0:36:22.99,Default,,0000,0000,0000,,someone, I'll see their hands come near the\Nkeyboard, Dialogue: 0,0:36:22.99,0:36:24.47,Default,,0000,0000,0000,,and my will always leave. Or if their hands Dialogue: 0,0:36:24.47,0:36:26.61,Default,,0000,0000,0000,,leave the keyboard, I'm, OK. It's my time\Nto Dialogue: 0,0:36:26.61,0:36:29.05,Default,,0000,0000,0000,,speak. And I'll raise them up. Dialogue: 0,0:36:29.05,0:36:31.62,Default,,0000,0000,0000,,So I've heard of some of the other paradigms, Dialogue: 0,0:36:31.62,0:36:34.47,Default,,0000,0000,0000,,like driver-navigator, for example. What are\Nsome of the Dialogue: 0,0:36:34.47,0:36:37.81,Default,,0000,0000,0000,,other pairing patterns in addition to ping\Npong and Dialogue: 0,0:36:37.81,0:36:40.02,Default,,0000,0000,0000,,when might they be good to use, and what Dialogue: 0,0:36:40.02,0:36:40.68,Default,,0000,0000,0000,,are their names? Dialogue: 0,0:36:40.68,0:36:44.40,Default,,0000,0000,0000,,J.M.: Oh, let's see. Yeah, driver-navigator\Nis sort of Dialogue: 0,0:36:44.40,0:36:48.19,Default,,0000,0000,0000,,the, the canonical pairing structure people\Nthink about, where Dialogue: 0,0:36:48.19,0:36:50.40,Default,,0000,0000,0000,,one person is literally driving and one person\Nis Dialogue: 0,0:36:50.40,0:36:54.14,Default,,0000,0000,0000,,literally saying, oh, OK, well you missed\Nthis and, Dialogue: 0,0:36:54.14,0:36:56.51,Default,,0000,0000,0000,,hey, maybe, you know, let's use an if and Dialogue: 0,0:36:56.51,0:36:58.58,Default,,0000,0000,0000,,not an unless there, and that kind of a Dialogue: 0,0:36:58.58,0:36:59.80,Default,,0000,0000,0000,,thing. And they're kind of also kind of looking Dialogue: 0,0:36:59.80,0:37:01.06,Default,,0000,0000,0000,,over the rest of the code and say, like, Dialogue: 0,0:37:01.06,0:37:03.29,Default,,0000,0000,0000,,hey, how about we extract, you know, finish\Nthat Dialogue: 0,0:37:03.29,0:37:05.24,Default,,0000,0000,0000,,up, but let's extract that as a method next. Dialogue: 0,0:37:05.24,0:37:06.33,Default,,0000,0000,0000,,And kind of a thing. Dialogue: 0,0:37:06.33,0:37:07.96,Default,,0000,0000,0000,,As far as, those, that's the one I'm most Dialogue: 0,0:37:07.96,0:37:11.40,Default,,0000,0000,0000,,familiar with. The, and, and that can be great. Dialogue: 0,0:37:11.40,0:37:13.22,Default,,0000,0000,0000,,I think that's kind of the natural mode of Dialogue: 0,0:37:13.22,0:37:15.73,Default,,0000,0000,0000,,most pairings. Is like, one person is like\Nactively Dialogue: 0,0:37:15.73,0:37:19.10,Default,,0000,0000,0000,,engaged and, and driving, the other one, or,\Nactively Dialogue: 0,0:37:19.10,0:37:21.31,Default,,0000,0000,0000,,engaged in typing, the other person is, is\Ndoing Dialogue: 0,0:37:21.31,0:37:23.60,Default,,0000,0000,0000,,more navigating. I think that the challenge\Ncan be Dialogue: 0,0:37:23.60,0:37:27.70,Default,,0000,0000,0000,,figuring out when, when to switch. Testing\Nreally helps Dialogue: 0,0:37:27.70,0:37:29.76,Default,,0000,0000,0000,,for that. And if you don't do testing, let's Dialogue: 0,0:37:29.76,0:37:32.63,Default,,0000,0000,0000,,say you don't, then maybe you can use some Dialogue: 0,0:37:32.63,0:37:35.05,Default,,0000,0000,0000,,other kind of bounds. Like, you know, you\Njust Dialogue: 0,0:37:35.05,0:37:36.91,Default,,0000,0000,0000,,wrote this method. OK, now the next guy writes Dialogue: 0,0:37:36.91,0:37:40.02,Default,,0000,0000,0000,,the next method. Or, you know, you're doing\Na Dialogue: 0,0:37:40.02,0:37:43.82,Default,,0000,0000,0000,,bunch of refactoring and extracting classes\Nand, and methods Dialogue: 0,0:37:43.82,0:37:45.45,Default,,0000,0000,0000,,or something like that, then, you know, you\Nbounce Dialogue: 0,0:37:45.45,0:37:49.19,Default,,0000,0000,0000,,back and forth between the thing you're extracting,\Nfor Dialogue: 0,0:37:49.19,0:37:49.93,Default,,0000,0000,0000,,example. Dialogue: 0,0:37:49.93,0:37:54.10,Default,,0000,0000,0000,,OK. We gotta couple minutes. One minute actually. Dialogue: 0,0:37:54.10,0:37:57.44,Default,,0000,0000,0000,,AUDIENCE MEMBER: The most useful thing that\NI ever Dialogue: 0,0:37:57.44,0:38:00.36,Default,,0000,0000,0000,,did for stopping myself from over driving\Nwas getting Dialogue: 0,0:38:00.36,0:38:02.73,Default,,0000,0000,0000,,a chess clock. So that we could actually see Dialogue: 0,0:38:02.73,0:38:05.35,Default,,0000,0000,0000,,how much time I spent driving. And so when Dialogue: 0,0:38:05.35,0:38:07.55,Default,,0000,0000,0000,,I'm looking at the clock and I'm forty-five\Nminutes Dialogue: 0,0:38:07.55,0:38:10.25,Default,,0000,0000,0000,,ahead, it, it's very helpful. Dialogue: 0,0:38:10.25,0:38:12.25,Default,,0000,0000,0000,,J.M.: That is excellent. Dialogue: 0,0:38:12.25,0:38:14.86,Default,,0000,0000,0000,,AUDIENCE MEMBER: And another technique is\Nto just turn Dialogue: 0,0:38:14.86,0:38:17.01,Default,,0000,0000,0000,,your keyboard over if you have two keyboards.\NJust Dialogue: 0,0:38:17.01,0:38:19.06,Default,,0000,0000,0000,,make it so you can't type. Dialogue: 0,0:38:19.06,0:38:20.86,Default,,0000,0000,0000,,J.M.: That's a really good one, too. Dialogue: 0,0:38:20.86,0:38:22.10,Default,,0000,0000,0000,,OK. Forty seconds, go. Dialogue: 0,0:38:22.10,0:38:25.02,Default,,0000,0000,0000,,AUDIENCE MEMBER: Based on your experience,\Ncan you share Dialogue: 0,0:38:25.02,0:38:27.34,Default,,0000,0000,0000,,what you consider to be good habits and effective Dialogue: 0,0:38:27.34,0:38:30.31,Default,,0000,0000,0000,,habits in pair programming? And then can you,\Nare Dialogue: 0,0:38:30.31,0:38:33.00,Default,,0000,0000,0000,,there, are there pitfalls that people tend\Nto fall Dialogue: 0,0:38:33.00,0:38:36.58,Default,,0000,0000,0000,,into that, are there commonalities that you\Nsee in, Dialogue: 0,0:38:36.58,0:38:37.11,Default,,0000,0000,0000,,in? Dialogue: 0,0:38:37.11,0:38:39.91,Default,,0000,0000,0000,,J.M.: Sure. In twenty-five seconds I will,\NI'll put Dialogue: 0,0:38:39.91,0:38:42.17,Default,,0000,0000,0000,,it this way. I think it's, the main thing Dialogue: 0,0:38:42.17,0:38:44.57,Default,,0000,0000,0000,,is to remember that we're all human, and that Dialogue: 0,0:38:44.57,0:38:47.52,Default,,0000,0000,0000,,it's not really about technology or, really,\Nabout programming, Dialogue: 0,0:38:47.52,0:38:50.59,Default,,0000,0000,0000,,per se. It's about being patient and having\Na Dialogue: 0,0:38:50.59,0:38:54.04,Default,,0000,0000,0000,,good attitude and building trust. So as long\Nas Dialogue: 0,0:38:54.04,0:38:56.39,Default,,0000,0000,0000,,we all have a good attitude with each other, Dialogue: 0,0:38:56.39,0:38:59.15,Default,,0000,0000,0000,,trust each other, are patient with each other\Nas Dialogue: 0,0:38:59.15,0:39:01.97,Default,,0000,0000,0000,,we're all learning, I think that's really\Nthe key Dialogue: 0,0:39:01.97,0:39:03.98,Default,,0000,0000,0000,,to pair programming. You can apply that to\Nalmost Dialogue: 0,0:39:03.98,0:39:07.92,Default,,0000,0000,0000,,any situation, but especially this very strange\Nand extreme Dialogue: 0,0:39:07.92,0:39:11.16,Default,,0000,0000,0000,,version of software development. I hope that\Nhelps. Dialogue: 0,0:39:11.16,0:39:15.60,Default,,0000,0000,0000,,That's it. We're out of time. Like I said, Dialogue: 0,0:39:15.60,0:39:16.68,Default,,0000,0000,0000,,thank you.