Agile Event Session

Remote Mob Programming AMA

This video content is for Agile Alliance members only

If you’re already an active member, please log in now.

To view this content, and gain access to many more valuable resources, conference discounts, and invitations to exclusive networking and learning events, please consider becoming an Agile Alliance member.

Abstract/Description

There is nothing quite like the feeling of mob programming: everyone seated around a single screen, all oriented toward the same goal, problem solving together. The practice supports good quality, increases knowledge transfer, and builds a sense of team. But is it even possible mob program in a remote setting? And if it is possible, will the same benefits be gained?

Join the deliver:Agile team for an AMA (Ask Me Anything) with several practicing mob programming experts. Ask questions and learn from their experience adapting mob programming to a remote setting.

Transcript

SPEAKERS

Chris Lucian, Mike Clement, Jon Turner, Ellen Grove, Cat Swetel, Austin Chadwick

 

Ellen Grove  00:05

My name is Ellen Grove, I am the managing director of Agile Alliance and on behalf of Agile Alliance, I would like to welcome all of you to what am I the first in our series of deliver agile live online events. We were quite sad when we had to cancel deliver agile earlier this year because of COVID. And I’ll just say this summer was a little bit turbulent. But this is the soft launch of what we’re hoping will be a really great series of technical talks, conversations, presentations, maybe workshops that we’re going to offer under the deliver agile live banner. In addition to thanking all of you for joining us today, I just want to say a special thank you to Cat, john, Austin, Mike and Chris, who are experts today for our mob programming, ask me anything. I’ve already talked about the fact that we are going to record this and we will make it available to you on the Agile Alliance website after the fact. There is a hashtag for today’s event, if you want to talk about it online, if you can use hashtag deliver agile live. That way we can pick it up and retweet it and let people know what’s going on. This is an Ask me anything session cat. We’ll talk a little bit more about the format. But we’re going to make heavy use of the chat feature in zoom, as well as the presentation feature. So please make sure that you have access to that. If you want to be able to ask a question. I just before I hand the stage over I just want to talk a little tiny bit about agile Alliance. Agile Alliance is a global nonprofit association for agile practitioners. It was started in 2001 by some of the folks who wrote the Agile Manifesto. And what we do is we try to create spaces for people who are interested in working in agile way to come together to share learning to learn from each other to connect. We offer a whole variety of content and events to our members. And this session in particular, we made it available to members and subscribers alike. I just want to give you a heads up about that because later sessions in the series will probably be only for our members. And so I would encourage you to check out agile Alliance membership, you can go to agile alliance.org. And there’s lots of information there about how to become a member. And that’s also where information about future sessions in this series will be made available. There are some other agile Alliance events coming up too that you might want to check out if, if you find today’s experience useful on starting on September 26, there is a whole week of conference events. The world agility forea forum experience agile and agile human factors. That will be it will be primarily an online event, although there’s actually going to be an in person component because it’s based in Lisbon, Portugal, you can find information about that on the Agile Alliance website. We’re also going to be running a webinar on our to feature some of our experience reports talking about agile transformations. That session is October 6, it’s called shared sharing agile experiences, I think. And again, I would direct you to the Agile Alliance website, if you’re interested in finding out more about that or taking part in that we’re starting to spin up a lot of online events that are going to happen over the fall and winter. And I would encourage you to keep an eye out because we’re going to be offering all kinds of different experiences, talks, presentations, maybe some workshops. But you didn’t come here to hear me so I want to get out of the way and turn the floor over to the people who are We are here to speak with today. So I’m going to introduce cats Mattel cat is going to be facilitating today’s session. And cat is a technology leader who specializes in lean inspired data informed coaching for technology organizations. They love the way that sounds cat is amazing. She is passionate about increasing diversity in steam as a means of creating possibilities for a more equitable human future. I’m in favor of that too, based on generative institutions By the way, sir, and in her leisure time, cat enjoys making jokes about Bitcoin, hiking and reading feminist literature, and also does a fair bit of being snarky on Twitter, which I admire greatly. And on that note, cat, I’m gonna hand it over to you.

 

Cat Swetel  04:42

Thanks, Ellen. Yes, I am cat I’m going to be the moderator today for ama so if you have a question, you can pop it in the chat or you can private message me in the chat and I will read out those questions to our panelists how this all came to be. So as soon as we went remote, which for me was March started getting a lot of questions about how do we, how do we do these things that we were doing in the office in a remote fashion and a lot of questions about mob programming. And as I started doing more remote events, tons and tons more questions. So here we are, it seems like we should address some of those questions with some of the experts at mob programming. So that’s what we’ve gathered up here today. And I will have each of our experts introduce themselves. And I think it makes sense to start with Chris, who’s kind of been there since the beginning.

 

Chris Lucian  05:53

I thank you. So I’m Chris Lucian. I am the director of software development at Hunter industries. Part of that original mob that worked with woody Zul and and the others that kind of started the mob programming stuff.

So I’ve been there, you know, I’ve been part of mob programming and mob programming on a regular basis for the last eight going on nine years now. I’m also a co host of the mob mentality show with Austin as well. And so he’s one of our speakers today. And yeah, I really love my programming. I love remote mob programming and in person mob programming. And it’s been pretty, pretty good so far, so maybe I’ll pass it on to Austin.

 

Austin Chadwick  06:40

Hi, my name is Austin Chadwick and co host the mob mentality show working hunter industries as well. Did very waterfall development early in my career and then transition to experimenting with many different agile roles. I’ve been Scrum Master tester, analyst, programmer, etc. And then a few years ago became exposed to my programming. I loved it so much that I want to do it full time. I’ve been doing it for a while. And to be honest, I started very skeptical of remote my programming heard of people doing it while I was doing in person. But then since COVID been doing remote mob programming and absolutely loving it. So I’m looking forward today. And I will turn it over to my comment.

 

Mike Clement  07:24

Hi, I’m Mike Clement, I’m VP of Engineering at immersion. We do automated sorry, automated spoken language assessment. And I have the opportunity I was very lucky to come in contact with mob programming via Llewellyn Falco and what he’s all very early on. And I had the chance to go out and actually spend a day with Chris and the mob at Hunter, when there was just one mob at Hunter and was able to bring back those ideas to Pluralsight where I was working at the time and start mopping there. And then moved on in the last couple years ran a company where we helped educate people using mob programming. So people with that were just starting their cruise and software. We’d have the mob together and really helped to accelerate their learning. And then for about the almost last year, I’ve been at immersion you know, helping to lead the org and we currently have two mobs that we we run and it’s had a blast doing it. So john, I guess you’re the last one.

 

Jon Turner  08:46

All right, thank you. I’m Jon Turner. I also work at emerging Mike. I’m a senior software engineer there I think that’s what my title is something like that I write code. So I participate in those two moms that Mike mentioned every day. I’ve been doing remote mobbing since I joined emerging earlier this year. Before that I did modeling full time I worked at Pluralsight I worked at full site with Mike in the past didn’t bobbing there before maybe three years something like that three, four years something like that before that. A lot of pair programming. So if you have questions about differences between pair mob programming and programming that might be interesting to talk about.

Yeah, I was like Austin said I was also in the past have been skeptical about remote mobbing. But you know, then life happened and it’s been surprising how well it can work.

 

Cat Swetel  09:50

Cool. Sounds good. Thank you all very much for being here. Yes. Okay. So what the first time question, but I got it. So I solicited some questions on Twitter and LinkedIn and all that kind of stuff beforehand. I’m giving you all a chance to warm up and get your questions in the chat. But the first question that we had is, literally how does it work to remote mob program? So the idea with mob programming is by we get together, all of our smart people, we’re all working on the same thing. We’re in the same place, and we’re working on the same computer. Some of those things are impossible now. So literally, how does this work? What tools are available? And I don’t know who wants to start with this. But Chris looked like he was nodding enthusiastically. So let’s go with that.

 

Chris Lucian  10:50

I think I think Austin and john should take this one, because I think they’re the ones that are taking a better doing it every day, right?

 

Cat Swetel  10:58

Jon did seem to have opinions about tools when we were chatting beforehand. So Jon, I don’t know, if you want to share your opinions with the group,

 

Jon Turner  11:07

I am happy to share my opinions. Some of them may or may not be wrong, but I’m happy to share them. So yes, I’ll start by by talking about some of the tools that we use. And then I’d be super interested to hear Austin and Chris, some of the other tools that you guys perhaps use. So we’re not in the same place. So we need some way to communicate, right? For us, we use zoom. So for our team, we just have a persistent zoom meeting. Every morning, when you start work, you will click on the link in Slack, it’s pinned in our Slack channel. And that’s sort of like the team room as as it were. And that’s just where we start ever, everything. All of the developers are in there pretty much every day, our product manager in there isn’t there a lot during the day, or UX designers in there a lot during the day, people need to pop in and talk to the whole team, they just go to that zoom channel, we then you need some way to collaborate on whatever you’re working on. The way we do that there are different ways to do to do that. The way we do it is we there’s a command line tool, it’s just called mob, which is a terrible search term. But it’s a command line tool. And you can start a modeling session or move to another person or say you’re done with this modeling, modeling activity, right? This this feature or something like that, that that does, it will create a branch for you and commit your changes to a branch automatically and push that branch to your remote repository, then when the next person comes in, pull down that branch and switches to it. And when they’re done it commit stuff to that branch. And at the end, it smashes it all down into a single commit. And so we use that so that everybody can work on their own machine. So whenever you’re whenever you’re the driver for the mobs and you’re working on your machine, that’s not the only way to do it. But that’s the way that’s the way we’ve been doing it. We can talk more about that if you want. And then also we use a remote or distributed if you will, mob timer so that we can we can all see the same timer. We use an online one i can i can post the link to it. But there again, there are different ways to do that as well. But that’s those are the kinds of things that we’ve been using.

 

Cat Swetel  13:37

Yeah, yes. attention to the fact that Austin posted his list of resources. Go ahead, Austin.

 

Austin Chadwick  13:45

Oh, sure. Yeah. And I’ll probably be verbose in the chat as we go. So I apologize in advance with links and resources. But yeah, thanks for sharing Jon at what I thought was fantastic about hearing how you guys do it is it’s very different from us. And I think that highlights something important about remote my programming my programming in general, and just software development and agile in general, which is, you know, we’re just sharing our experiences. You know, it’s hard to recommend anything for your context. So it’s, you know, experiment, inspect, adapt often. And, you know, just keep trying things to fight, figure out what works. And so to get specific of what my current mob is doing, and what many of the mobs at Hunter are doing is, I’ll maybe do the small mob scale. And I’ll pass it to Chris for kind of the meta scale where he’s looking at multiple mobs at once. But yeah, so we have, we use Microsoft Teams. And within teams, it’s kind of slack like where there’s different channels, and then each channel is like a different mob. And then you go into there, and then there’s a video chat, you can just start and you can see who’s already in the mob, you can join the mob. And so that’s what you use for a video conferencing aspect of it and that has chat built into it. And then as far as working on code Or we start the morning working on emails and we’ll work on code and we’ll work on diagrams or whatever is needed to get the work done. All the way to done all the way to production, we do something very different than using the kind of get way of passing the code back and forth, is that we’re all remote, raw remoting into a machine that is not physically with any of us. So back at the company facility, there is a machine we used to in person ma program and actually still has the two big screens up. Even though no one’s in front of the museum. So we’re using a tool called any desk, or some teams use TeamViewer. And then so we’re all remotely controlling that machine. And then it feels just like in person mob programming. Because we use the same timer. Often people use mobster. And and so then we just do the driver navigator is the timer has a switch just like we did in person. And then I find with video on mob programming is very, very similar to in person programming, because you can still see the cues and body language and things like that. And maybe I’ll pass it over to Chris, who has the kind of the view of multiple mobs all going on at once.

 

Chris Lucian  16:13

Yeah, I think the main thing, so yeah, I’ve kind of like seven, seven to eight mobs at any one time going. And so as Austin said, in Microsoft Teams, one thing I liked doing back when we were in person was being able to just kind of go and sit down with a mob and work with them for a few hours, and then like walk over to another mob and work with them for a few hours, whatever. And so I was worried that I wouldn’t be able to do that, like I couldn’t just kind of like drop in and say hi to people. And the The nice thing about teams is every channel has a camera icon by it where a mod is currently active. And you can just click on that and see who’s in there. And then you can hit join and join that call. So you know, I know that a number of I’ve seen a couple of implementations where there have been like links to permanent zoom meetings and things like that. And so this, this had like a little bit more of an integrated experience. Also, the chats were kind of visible for the call, even if the even if the you’re not in the call. And so there are times where people get mentioned something, I go look at it, and it’s like, oh, they’re talking about something I know about and then I can just drop in. And so serendipity, I think was my biggest worry that we would lose serendipity. And I don’t I don’t think we’ve felt a lot of that loss with teams. So I was really happy with it. I was surprised by it. But yeah, in general. You know, I think I saw a question in there. But how do you manage confidential info, so there’s tooling for that. And so, you know, distributed password managers and other like confidential notes systems. And then using any desk, you also have all of that information kind of isolated to the remote machine. So you’re not really, you’re not really using that stuff on your personal computers, you kind of have everything kind of still on site, quote unquote, through that system. So that’s, that’s been really useful as well.

 

Mike Clement  18:25

So one thing I wanted to bring up was, Austin mentioned that, you know, obviously, how immersion and hunter are doing remote mob programming is different. And, in fact, how we’re doing remote mob programming has changed over time, some as well. As I’m sure it has Hunter. We had a little bit of an advantage in that. We had had remote people pre pre COVID and that john and immersion are based in Utah, I’m actually based in Atlanta, we have now three other developers that are based in different parts of the country, mostly here in the Atlanta area. And, and as well as a sizable contingent of people who are in Utah, but now are remote but even before the pandemic we were we were already starting to experiment with remote mobbing because, you know, we had people in different different locations. And obviously, we’ve gotten better at it. We have done this as an example, we have stood up a virtual machine in Azure that we had people log into in order to try that out as a as a technique. Maybe john can talk to a little bit how well that does or doesn’t work but you No, we can continue to refine it. You know, again, the biggest kind of concepts are like principles that we’ve been trying to reinforce are like the the speed of the handoffs, right, the transaction cost around the handoffs allow, as long as you’re driving those down allow you to switch more often, early on, we were doing switching much less frequently than we would if we were in person, because we were, we weren’t using the mob tool, we were we trying different things, and it was a little bit less structured. But as we’ve worked to drive those transaction costs down, we’ve been able to allow for the timer to be shorter, and so switching to happen more frequently, switching in the driver. Cool.

 

Cat Swetel  20:52

Thank you all anything, that was a great little overview of all the different approaches, and it doesn’t sound like there’s one right way, but a lot of ways that are working depending on context. So I think all of you mentioned some idea of like, there’s the persistent zoom, or there’s video associated with this team’s channel. And I know some folks are doing discord or something like that, depending on the case. And we got a lot of questions about that right now that we are not constrained by physical space. Is there? Like, can there be too many people in the mob? And, you know, sometimes you get just like a lot of lurkers who aren’t just listening in and is that a bad thing? So now that we’re not constrained by physical space, can there be too many people in your mob? and Austin gave a very funny grin when I said that. So I think I’ll go to him first.

 

Austin Chadwick  22:02

Yeah, sure. So I mean, I think there’s, you know, we’ve talked to several people are doing mob programming around the world. And one of them came up with something called team oriented programming, where they’re constantly switching between like pairing kind of more strict mavi, loose mobbing or parallel programming where there might be two pairs working independently or people working independently, but the video is on. There’s also a mobbing pattern that was discovered before remote called edge of the mob, and where someone is part of the mob, but they’re not like actively participating and just kind of listening in or a lurker, as you said, and I mostly see this as a very good thing. I mean, especially for someone who’s working on something related to the mob, or, as Mike and john mentioned, someone UX or product management related. It’s very good for them to be listening in. Because, you know, we could be going down in direction that like, No, no, no, no, no, no, that’s not that’s not the right way. Maybe try this first, or we have a question instead of having to go find them, they’re already there. So if they’re not in the video chat to at least be easily accessible. So they can join us at any minute. And then we just click a few buttons, and they we pull them in. So in my perspective, it’s a very healthy thing, and I have yet to see it the have negative effects. And even I’ve seen someone part of the mobs like hey, I’m gonna go research something you’re doing, they’ll, uh, they’ll turn our volume down, and they’ll be researching, but they’ll still be on the video chat. And that’s been very healthy, because then they can focus and do what they want to do. And then they’ll pop in and provide insight for something we’re working on. Or of course, practice as we’re going, but I’m interested in other’s experiences on the panel.

 

Cat Swetel  23:55

JOHN, or Mike is a much different emotion.

 

Jon Turner  24:03

I’ll talk about current state in the mic might have some interesting thoughts about previous state when we had one larger mob and so the two smaller mobs of four for us currently on our team where usually for those rotating through driver and navigation responsibilities, we usually have at most five people. We haven’t experimented with larger mob sizes much since we split into two mobs. So it’ll be interesting to see how that goes. The thing that I would be concerned about is if there are people who are disengaging, and you know, when it comes back to their turn to drive or to navigate, they’re like, Ah, what were we doing I lost context and you know, that that would be my concern. As often said, we do also have our product manager and UX people come in sometimes they don’t, they’re not usually in the driver and navigator rotation but they are available to help work collaboratively, collaboratively with us?

 

Mike Clement  25:06

Yeah, like john said, I think the, the, the constraint around mob size is less around the number of people that can physically fit into a space and is more based off of the, at least in my experience more based off the time between the times you are either assigned the navigator or driver role, specifically, usually the driver role. And so the more people you have, the longer it takes to get to your turn again. And one of the things that I discovered early on my programming was the hard work wasn’t when you were at the keyboard, the hard work was when you were not at the keyboard, meaning that’s when you’re actually doing the design work. And you’re trying to understand the problem, like being at the keyboard is almost a relief, because all you have to do is type and that’s the part that you’re probably most comfortable in is the easiest for a lot of programmers. Now, that dynamic does switch, if you’re a less experienced programmer, in which case, the part time you’re at the keyboard is usually the most nerve wracking. But that does change over time, kind of as you mature in your career. Yeah. So in terms of like people who are working, I guess, are watching. As Austin said, the edge of the mob, I think. I don’t I don’t see any upper bound per se, other than what technology dictates. Because, but like, they both said, we have the PMD UX designer. I mean, if I even you know, sometimes if I have 1520 minutes, I will often work with the mob. Just to kind of get a feel for what’s going on if I don’t have enough time to actually jump in and, and and take a turn. So yeah, I don’t think there’s an upper limit. I mean, we haven’t at least discovered it yet.

 

Chris Lucian  27:07

I think anecdotally I’ll just say like some of the best mobs that I’ve been in, have been at conferences where everybody’s really into it. And so one aspect, so the general rule, right is that if you’re not learning and you’re not contributing, then go to a different mob, right. And so it basically means that the model can be any size, no matter how big or how small, you know, if if there are people that are learning from just being there that has value, but its level of engagement, for sure. But if you’re not learning and you’re not contributing to a different mob, a lot of the time if everybody leaves the mob, that means that the work is not interesting enough and could otherwise automate it. So that’s where I propose that mobbing is kind of a full time thing because you can automate the simple stuff that can be done alone. And then I would just say that, going back to the conference reference, I’ve been part of a 20 person mob mobbing on a quantum computer script. And in that that was fascinating because everybody was fully engaged. And because it was quantum computing was new to everyone. And you know, 20, greater than 20 people everybody was contributing and researching. And there is like popcorn around the room ideas being thrown out. And so because it was it was just kind of mind bending in general. So it was really cool.

 

Cat Swetel  28:31

Awesome, thank you for sharing. I know my colleague, Heidi is on this today. And she knows I’m a chronic lurker. I’m always just popping in for like, I have 15 minutes, and I just have FOMO I always want to, I just want to hang out, you know? Yes. And we got some we have some questions in the chat. And then I got some questions before when I was collecting, I about like, zoom 15 right. I don’t know if everyone has read about this. But there’s this idea that now you’re always on camera, you’re always kind of on stage and there’s no sort of downtime from that. And do you think that it’s bad to say that we’re just going to have like, two to three hours of mobbing or have you discovered that mobbing doesn’t tend to cause that zoom fatigue that many of us are feeling now in this brand new worlds. Let’s go to john because he’s making a face

 

Jon Turner  29:46

or I’m just thinking of from head to toe fatigue. I think it is like like pairing in Mali. I think it’s kind of a skill. It’s something you can get more used to and get better at For me doing, doing one on one conference calls tends to be more fatiguing than doing mobbing conference calls. Because with one person, you’re engaged with just that one person. And if you like zone out or you go close the door, because your seven year old open it, you know that one person notices that a lot. But in a mob, it’s easier to. It’s easier to disengage for a short period of time to get little breaks like that. So if there are five other people working in the mob, it’s really easy for me to be like, Oh, let me go look at slack for just a second answer this question and I can come back, I find it. Like I said, I find it less fatiguing than, than a one on one conversation, doing a one on one video chat for eight hours. Sounds terrifying. But doing it with four or five of my, you know, close friends that I mean, that’s it’s usually fine. That’s coming from an introvert.

 

Cat Swetel  31:05

I want to grab on really quick to the remark you made about close friends, because we’ve had some questions in the chat about now that we’re all remote. How do you part of mobbing and my experience a lot about like trust, right and having safety? And, you know, that’s what gives rise to those great discussions and things of that sort and the exchange of knowledge and skills? Is there anything in a remote setting that you all have found is really important to focus on in order to build that sense of team so that there is a productive mob? Mike, I’d be really interested to hear from you since you are far from your colleagues. And we’re starting to do remote before COVID even hit?

 

Mike Clement  32:01

Yeah, I think it is an interesting question. I’ve heard. I’ve heard people say that we’re kind of coasting on the exhaust of the social capital that we built when we were in person. And that as we’re going remote, like, everybody’s like, it’s great. It’s all working great. And it’s like, well, like it’s working great, potentially, because, you know, we develop those relationships ahead of time. And so, I mean, we’ll find out over time, as this continues, like how those types of things work, in terms of what we do, specifically. I mean, I think that the teams do regular retrospectives. I mean, they’re doing kind of the things that help to, to make sure that issues are surfaced, like the team that Johnson just had, we have daylong offsites once a quarter for each of our teams so that they can, you know, we do I would hesitate to call them team building activities, because that kind of has a almost a negative weird connotation now, but like we did, you’re going to Apollo smoothing motivators exercise, which gives additional insight into what motivates the team members, and, you know, kind of how different things might affect their motivation. And so that gives you an additional toolset that, you know, we that that toolset allows you to be able to interact with the people that you’re working with in a more effective way. So, we, as a department, you know, try to do short trainings and different things, we meet together daily as a whole department for about 15 minutes. And usually that includes at least once or twice a week, a little five to 10 minute training on hey, here’s some technique that you could use. Or here’s some concept that might be useful. And so by doing that, we’re able to give people the tools. Additionally, we’ve tried different things like doing remote games. Like I know that certain people within our department have done like we’ve done like department wide jackbox games, and that’s one that can be easily done very remotely. We have some people who just meet over lunch and play Dominion online and or other other games. So we’re also doing a program right now where it’s called immersion eats local, which is more company wide thing where we are basically helping to support local restaurants, but then also getting to get in small groups, and for those that are remote, just having, you know, three or four people over over zoom, or zoom meeting, eating together and talking together in a more relaxed, non work constrained session. So there’s a lot of different things really quick, so hopefully, but I’m sure that Hunter is doing something similar. Or at least, maybe completely different, which I’m actually interested to hear cuz then I can

 

Chris Lucian  35:32

jackbox games thing from you. So that worked out pretty good. Yeah, the, I think like, once again, like, this kind of goes back to serendipity for me. So you had chance meetings with colleagues that you don’t normally talk to. And so, you know, one thing that we typically do is, we do cross team lean coffees, and these lean copies can be about anything, the business, the work that’s going on in different teams, the, you know, personal lives, whatever. And, and so, I’ve been focusing kind of primarily on serendipity and and then, you know, the interpersonal relationships are every part of that. Because, you know, I think like, an outcome of people being willing to talk to each other on a regular basis, especially about things that are affecting them negatively, is that they can get out of it faster at the health help of other people. And so, you know, tingling, coffees costing and coffees, you start getting, you know, stuff like morning check ins and asking people, you know, what’s, what’s your favorite hobby and in like a general chat, and just trying to establish those connections and do what you can to, like, make that knowledge available to people. Because if you just continue working without doing any of these things, then what happens is people you know, never discovered that they both like cycling, or something like that, right. And then and then because they didn’t start talking, then they never ended up talking about that problem, those having production that the that somebody on another team you had to solve. And because they didn’t know that, then you had some big negative impact to the business, right. So, you know, speaking from like a purely financial standpoint, you need to create as much serendipity as possible amongst your teams, and especially cross team where people are moving in between things. Other things are things like, people not being able to stay on a team for more than two years, they must switch teams. So this means that they establish longer relationships with different people, rather than like a single group of people and making like a really kind of isolated bubble. And then yeah, just things like that. Just anything to encourage serendipity, as much as possible, has been a big factor for me.

 

Austin Chadwick  37:58

Yeah, now I’ll kind of tack on a couple other events that have helped with kind of cross pollination remotely. So we’ve been doing, like the Agile opens remote open spaces. So we’ve been doing those once a quarter. And that’s a great way to, you know, people ask their questions, or they host their sessions, and then teams cross pollinate. And then also having a dedicated learning time where you can do solo learning time or group learning time. So it’s about once a week we’re doing group learning of some kind, together for wants to participate. So that’s kind of more at the meta level, and then kind of more at the one mob level, kind of the smaller scale. And kind of circling back around is even fatigue. I like so one thing that we heard that I kind of stuck with me early on was, you know, even though you remote doesn’t mean it’s, you don’t talk to people like their people, you know, it’s not like the zoom or the team’s meeting starts and instantly we’re coding and I’m on five do this, you know, it’s, hey, how is your day last night? how, you know, how was your day would you do last night? Hey, did you see this on TV the other day, and it just becomes a casual conversation among friends. And you get to know each other. And then as you start rolling the conversation, it just turns to be about code and the product and what you’re working on. And for me, I I’ve heard a lot about zoom fatigue. And this may be just me, but there is just like a switch my brain did after full time programming where it was basically the same thing as being with other people in the same room in the mob building. And so I haven’t experienced the same fatigue but I’m sure some have and so some things to maybe try out are just retrospect often and experiment with the brakes, you know what I mean? And so I like I like our mob always has like if you need to take a break, just take it you don’t need to wait for the official break. But there’s mob timer tools that have the brake built in so that when the brake hits you respect the brake, you have people there time to go refresh and then come back. And I kind of I kind of feel like it might be a set to change model thing that it you You might be feeling fatigued for a while, but then you it becomes the new norm and your team starts performing. But your mileage may vary. So you have to try it out to see.

 

Mike Clement  40:11

There are a couple of things I thought of when we’re just that we’re doing. One is we, even before COVID, we’re doing a personal maps exercise. This is another Juergen inspired management, three Oh, exercise that. Basically, it’s a mind map, but around you as a person. And so what we do is, every time somebody new joins the team, they create a mind map, we basically share it with the team, you got about a minute to read through it. And then we ask that person questions for about five minutes. And in addition to those five minutes, right, people continue to talk about them and ask about things later on. And it provides a way to, to quickly kind of ramp up on the background of different people as they join the team. And we’ve continued to refresh it like the the teams have occasionally gone back and like reviewed the personal maps together, which allows you to kind of ask deeper questions and continue to develop those relationships. The other thing that Austin kind of mentioned was that not that morning check in meeting that we do as a department. We, in addition to having maybe a little training or something, we also have a checking question. And so like basically, every Monday, we have a mirror board where people just dump like, Hey, here’s something that happened this weekend. And and that a you know, starts conversation and allows people to like, again, continue to try to continue to connect on a personal level with people across in their team as well as across the org.

 

Cat Swetel  42:02

Well, yeah, that’s awesome. And I see, Austin, you are just so good with the chat popping all kinds of resources in there. So definitely everyone check out the chat. So before we started this meeting, I mentioned how I don’t like to smell people. And so for me, that is definitely a benefit of remote mob programming. Because I don’t have to smell anyone’s lotion or whatever else. I don’t like to smell people. And I watched an episode of mob mentality flip the show that Chris and Austin have where you had I think one of your colleagues Sandra on his right. And she was talking about how all the benefits that she has noticed about remote mob programming. And then I I also got a couple questions, both in the chat here. And on Twitter. There were basically people asking, Will anyone want to go back to co located mobbing? Because there’s so many benefits of remote lobbying. So I’m curious to know what benefits you’ve noticed, that are unique to remote programming.

 

Chris Lucian  43:24

So I guess, you know, I’m very, like, kind of open with the team and they’re open with me. And so I could honestly say, like, you know, we, I would divide it into thirds and say, a third never want to go back a third don’t care either way, and a third really want to go back. And so it’s just something that I’ve noticed, people have very strong opinions about it, I asked for strong opinions so that I can help mitigate that. And so for the people that really want to go back, a lot of it is I think some of it relates to just separating out their work life in their home life is a lot easier, you know, back away from remote. I also noticed that the people that don’t want to do that really don’t want to come back in are ones that have longer commutes. And so I think like, a lot of it has to just do with like, systematic societal sort of things, right. But, and much less I think mob programming, but I think that the result of us going remote, we haven’t noticed any real loss. So you know, I think kind of key metrics for us will be released cycle time, zero bugs in production and product owner happiness, right. So like, all of our metrics have have kind of either stayed the same or gotten better going remote. So a lot of it is going to be the question of you know, well here’s the result of this. Um, you know, and people are less fatigued because they have, you know, two hours of their day back, because they’re not driving an hour each way to work. That’s, you know, different from somebody that’s living really close to their office and really just wants more mental space, because maybe their kids being at home, while they’re working has been hard on them or something like that. Right. So like, these are just examples. But the, I think the main idea is that, I do think that it’ll go both ways. And there’s definitely a gradient there. And, and so I actually think that most companies will end up with a hybrid model in the end, where they will likely still have remote positions available and on site visit positions available, and they’re going to just scale down their on site location. So that’s just a theory, but because I think depending on where you are in your life, and your personal life, and whatever, having remote or not, actually, and having the option between both is actually much more convenient, I think, and, and you might even switch between them based on what stage of life you’re at.

 

Mike Clement  46:20

Yeah, I think as an industry, it’s hard to know exactly what’s going to happen. Because the the times we’re living in are, are extraordinary, in that we do have, you know, those of us that have kids, the kids are at home a lot more than they would normally be, you know, you’re dealing with, you know, multiple people working remotely, potentially from a house, and all of those different things that are maybe heightening a desire to return to the office or making it better to be at home, it’s hard to know. So that being said for for us where we have, you know, three software engineers that are here in Atlanta, and remote from the rest of the company. And even I mean, if you’re all familiar with Atlanta is a very spread out. City. And so, you know, we’re, you know, to get to any other one of the people on my team, I went out to drive at least 4050 minutes. So like, we’re, we don’t have any plans necessarily even like, even to open an office here or anything, like the intent is to be remote. I joke with my boss, who’s the CTO, it’s like, I couldn’t move last weekend, and you wouldn’t know. I’ll just tell HR, what my new address is. And it’s, you know, they’ll just still be on a zoom call s o. So for us, it’s been actually a benefit to more people experimenting with remote programming, we’ve been able to, you know, share what we learned before. Everybody went remote, as well as continue to learn from everybody else’s experiences, which has been, which has been great.

 

Austin Chadwick 48:11

Yeah, I’ll say, for me, the immediate benefit of working remote was just, you know, I love being with my wife and kids. And we just got to be with them so much more, which was really, really cool. So the commute  time going from, it wasn’t bad before, it’s like 20 minutes. But now the commute time is five seconds to walk down the stairs. It’s been really, really nice. Some other things people have noted has been the controlled environments. Some people struggle with sound or with noise or the you know, a few mob programming a person, the big screen, the font size, not being what I want, or, you know, the distance between the computer and ergonomics, all that stuff. And as crystal toggle worked really hard in person to make those things not a problem, but they still they still were with sound walls and other things. And so, as soon as we went remote, those people could control their environment and layout everything just the way they wanted. And that was really nice. It’s not, it’s not, there are many benefits. But I think while the serendipity is largely there, there is some serendipity loss. Like I know there was one person who was in the math department, who we would have casual conversations all the time, just around the watercooler so to speak or just walking around the building. And I think remote we had very little since then, and and while there was lots of good serendipitous conversations between link coffees and other things we do to cross pollinate. It’s just different. It’s just a different kind of cross pollination. So it’s not one for one, but it’s still great in my opinion.

 

Cat Swetel  49:48

JOHN, do you have any thoughts?

 

Jon Turner 49:52

Yeah, I’ll echo the working remotely. Can you time things have been brought up less That’s really nice. That’s not exclusive to remote mob programming, though, one of the things that I have noticed specifically with remote mob programming that I think is a is a benefit is similar to what Austin was saying, where if part of the team is co located in the office and another part of the team is remote, that can that can lead to a an awkward imbalance, where things happen differently with those who are co located, versus those who are remote. When everyone’s remote, then it’s, it’s all the same for everyone, which is, which is nice. And so everyone’s on the, you know, coming from that same context. And so you don’t have these little side conversations as much things like that. So I think that’s good to also to Austin’s point. I think there are some things while there are some benefits, I think there are some drawbacks, some of which we can address, you know, the serendipitous stuff, which has been mentioned a few times. I don’t know if all the things can be addressed. And so maybe it’s uh, maybe they can, I don’t know. And so it can it remote mobbing can be strictly better, maybe it’s just a different set of problems. And you know, which set of problems and advantages is better? Depends on your context, maybe.

 

Cat Swetel  51:28

Yeah, yeah, I mean, I totally agree for me personally. Like, I definitely have the issues with the lighting and the sound, and the smells that I mentioned earlier, but like, I have a monitor for when my eyes hurt and a monitor for when my eyes don’t hurt. And I’ve always just been like, notorious for taking the keyboard that we all use for mobbing. And like this key isn’t right, I’m going to take it off and replace it with a different key, or just assemble the whole thing and clean it up. And so I personally am so happy that I have my own keyboard and my own monitors, then I’m just much more physically comfortable in the space. But of course, that comes with a lot of trade offs. And I think you’re right, and she’s going to be navigating those in the future. I talked with a couple folks the other day who are on a team with someone who’s hard of hearing. And for that person, it’s really important to be able to lip read. And so they are having to come up with ways where they can make the videos of the remote participants large enough where that person can I have those available for lip reading to augment hearing. No, everyone’s spoken word and participating in that way. So I think there’s just some challenges like that, that we’re going to have to adapt to. And I totally agree. And I think there’s gonna be a lot of hybrid now, right? Because it seems to be very regional, regional, like some offices are going to be able to go back before other offices. And we’ve already seen that. So I, I’m really curious how it’s going to be if it’s going to be like, we just treat this as remote first. So one of the folks had a previous job who had helped facilitate things like this, he had this policy, it’s remote first. And so everyone starts at their desk, even if later they kind of like migrate to some shared space or something like that. But you have to start at your desk to at least just be mindful that there are lots of remote participants who aren’t getting the benefit of body language or whatever the case may be. I got one really interesting question on Twitter. That is, I have no idea how feasible it would be but the question was, do you think that there’s any potential for like AR and VR, augmenting our our remote mobbing experience and I don’t know if anyone has heard of anything like that happening, but it definitely would be interesting. I mean, it’s probably cheaper to buy everyone a VR headset than it is to rent out a huge office, right? Yeah. Good, good, Chris.

 

Chris Lucian 54:42

Oh, I gotta say I have a lot of friends that work on VR and AR I’ll end up asking them but I think a lot of it so I know that there are some like VR programming languages for you. Drag nodes around in physical space and work like that. So there’s probably some whiteboarding applications, those sorts of things that you can do. But uh, yeah, I’m not sure that companies are going to invest in the VR headsets. But it’s a good idea.

 

55:17

Yeah, and this is definitely not fully in the realm of that tech. But we’ve, we had fun, especially early on when we were remote with the camera filters. So it you know, the snap cameras one, for example, but we can, when I start driving, it’ll throw a racing helmet on me. And so and then when someone else is navigating, they’ll have like a captain’s hat on. And so that’s kind of more fun, and nothing really serious tech, or when we’re Roman voting, we’ll put the Roman hats on for the camera filters. I also did see someone giving talks about marvine at a conference where it was done all Animal Crossing style. So I’ll put a link for that in the show notes. But then anything else for me on this one would be complete speculation, which you probably don’t want to hear.

 

Cat Swetel  56:04

Yeah, it has been interesting to see that Animal Crossing conferences pop up. And yeah, it’ll be interesting to see where that goes. If anywhere, but yeah, maybe we’ll all be mopping an animal crossing someday, soon. Yeah. Okay, another question. What gotchas have you encountered as you transition to remote mob programming? Was there anything that surprised you or anything that came up right away and your retrospectives or anything like that? Mike, I’d be interested to hear what you have to say here.

 

Mike Clement  56:49

Yeah, um, again, the, I think it kind of goes back to the things I said earlier, like the figuring out how to switch between drivers. Like that was kind of the thing that was most difficult for us early on. I don’t know if, you know, I did mob per pair programming remotely, where, you know, one person is hosting and the other person is like, using TeamViewer, or something to do remote control. And that can work. Okay. But like, in general, remote control via most tools is laggy. I remember even doing TeamViewer I get we were doing a this was like about six years ago, we’re doing an interview with somebody who is in South Africa, from the United States. And so, like, it was just painful for the other person to try to type. So I just ended up driving the whole time and led letting him navigate me. So, but I’ve been surprised at how innovative people have been around figuring out tooling solutions to to make it work how well I think the video conferencing solutions, especially now, give us an ability to, you know, see each other’s expressions be able to, you know, cat, you’ve demonstrated multiple times where you’re like, hmm, it looks like Austin may have something to say, huh? John’s making a face. Right. And, and by having those available to us, that gives us almost I mean, I guess it maybe leads to the Xoom fatigue you were talking about before in terms of having to always be on but we can also, you know, maybe more accurately assess the mood of the mob that way and kind of pick out when we know somebody’s mood has changed or something has shifted or, or somebody has something to say. Whereas in an in person mob that you know, that person might be behind you. That person may be squirming, but you just don’t see it. So that’s been a plus.

 

Austin Chadwick  59:10

Yeah, I think I think I’ll second that. I think if the whole mob or the whole team has camera on, there’s hardly much loss. But sometimes there’s connection issues, and some people are having issues with their ISP, or it’s just a preference. And so, so with the camera off, there is kind of a loss of body language and that kind of thing. So I think that that was one gotcha. Because I’ve been fortunate that for almost this whole time My mom has primarily had camera on which really helps with that nonverbal communication. But yeah, the tech issues in general, I think it’s kind of again, attached to your change thing has been one of the gotchas where the first couple first day or so it was pretty rough. A lot of crashing computers, a lot of tools, not working, a lot of figuring that out. laggy sharing. But then once we found I think Chris called it once like the, like the cocktail for each mob of tools that worked. It’s been really really smooth since then, even since we, we had a visitor from Austria come on with us for a week Harold. And he, we couldn’t tell we were all any destined to the same mob station. And he was experiencing No, no lag worse or better than us. And actually, in fact, we were experiencing a little more lag than him, which we found interesting because everything was far away from him. But after a while, you don’t even notice it. And it just just works. But again, your mileage may vary depending upon network connection, etc. Yeah, I think I think that’s it for the gotchas for me, anybody else have something to share?

 

Mike Clement  1:00:52

I just say one thing around the the webcam is that we have made sure to invest where we can in having good webcams available to everybody so that, you know, they’re not grainy, pixelated avatars of themselves, instead of being as you know, realistic to them, who they really are as possible. So that’s been thinking about thinking about those types of things, like where the boundary is, right? So like in person mob programming. And several people mentioned, like you worry about, you know, what size TVs do you do? How far are they from the people, like, where this where do they sit? What, what keyboard, or keyboards or mice Do you have available for people to use? So those interfaces. And so, in the remote situation, you know, it’s good to think about those same type of things. It’s just in a, you know, like, it’s the webcam, and, you know, we’ve made sure everybody has a good microphone so that they can, you know, they don’t have problems being able to be heard and things like that. So yeah, those would be the things that, you know, are most important to focus on, at least initially, just to get over that hurdle.

 

1:02:13

I think as long as you can get the technical experience above a certain level, you know, they tricks your brain. And your brain is like, Oh, I’m just, I’m just talking to people. Even though I’m not really I’m just talking to pixels, which is really, it’s really weird, if I think about it too hard. But once you get above that certain level, then then it’s just the normal, normal people, people interactions that you have to worry about, right? It’s not, but if you have to have that, in addition to all of the technical hurdles, then it’s then it’s just really, really challenging.

 

Mike Clement  1:02:52

Yeah, it’s, it’s, it is very interesting when the spell gets broken, right? When somebody internet drops off, or, or their, I don’t know, something happens to their audio settings on their computer, or whatever. So

 

Austin Chadwick  1:03:09

and 111 wonderful thing about mobbing that was true in person is true remote is that if someone has to go jump to another meeting, or go somewhere else or whatever, the code keeps moving, right, the code keeps moving and then once and I guess same thing remote, they drop off and that happens every once in a while for us when they come back online. Then they’ll they’ll acclimate in slowly but surely, or they’ll ask to be reset in the context and the code will keep moving as it was before and so it’s it’s basically a no worries and it’s just extend empathy to others experiencing those type issues because it’s not it’s not slowing down the product and we’ll we’ll keep moving.

 

Mike Clement  1:03:48

Yeah, mobbing? I mean that is one of the benefits overall to mobbing is the resilience to those interruptions, whatever they might be, whether they be people coming in from the outside or whatever, or people dropping off.

 

Austin Chadwick  1:04:02

So, our favorite thing to do when someone drops off is that it usually freezes their frame and they usually have an awkward face. So we usually take a screenshot of it and then put it up in display somewhere to remember the moment.

 

Mike Clement  1:04:17

Yeah, early on, I got frozen in a position that we eventually edited to include force lightning.

 

Cat Swetel  1:04:34

Yeah, I think that’s so true. But empathy becomes really important because there is the potential, the possibility right for this setting to exacerbate or highlight existing disparities, right? Because you you go into the office, you all have the same internet, right? You have the same connection speeds, and when we’re all at home, folks might not have access to that they might be in a shared living space, right. And so it could be that that setting can really play up the privilege that some people have, right, like having a separate office space, not having any caretaking duties are some of those things. So I think practicing empathy and just like, just like you’re saying, right that the, one of the great things about mobbing is it absorbs kind of some of those bits of variability from our surroundings, and that I feel like I’ve noticed some of those things, actually making us stronger, right, like a little bit of stress on the system, if someone has to step away and then pop back in, they have to go help the kid with school or something like that. Having to reiterate the context frequently, I think has made the groups I’ve been a part of kind of more focused and more mindful of the goals in some ways. So it is just interesting trade offs, I guess that we’re all being asked to navigate at this point. I got a really great question in the chat. I don’t know if you all saw that. But I, in your experience, what’s the right mix of mic? versus messages? How can you keep people talking? without talking over each other? Especially when there might be lag? Or something like that? I don’t know. Chris, if you want to take that one?

 

Chris Lucian  1:06:43

Yeah, I have some thoughts on this. So so I kind of tell people, you know, when you’re bobbing, you probably want to eat a rough quality of navigation, right. So if you have four people on a mob, and one person is talking all the time, then that’s probably an unhealthy situation. So this might be like over the course of a month, right? If one person has 90 90% of the speaking time, that’s probably an issue. And so the reason that relates to the question is because we’ve kind of developed this pattern over time, with remote mobbing that I’ve seen a lot more, which is the navigating the navigator role before used to be like whisper to the person who’s navigating because they’re right next to you, and and then they can navigate where it’s going. And so what I started doing a lot more recently to navigate less is I just send chats to one person, so no one can hear me and no one can even see me whispering it. And so that person then gets the time practicing just navigation in general, regardless of whether or not they need to think of a solution. And that’s been a really positive thing. And so I think, you know, with the lag, you might have dedicated driver navigator, but maybe the person that has the idea, or other people that have ideas can filter their ideas, person through chat, or hand or drawings. And so I think the best thing to do is to start by baselining everyone’s contacts with a drawing, usually using draw.io, or graph is for creating drawings, Visio, like programs, whatever, whatever you have available to you. And, and then once you have that drawing, then basically, you know, kind of in my ideal world, it’d be like the person with the least time then picks it up and navigates it. And then and then if that person can’t move forward at all, without somebody else’s help, then the only way that that person you know could be contributing is through the person who should be navigating via text message. And I really enjoy that. I know that there are people that really don’t enjoy it. But I think it’s very effective for creating a quality in the speaking time, which I think is important because it’s it’s too easy, while mob programming, if you’re not diligent to to allow somebody to kind of fall behind in their ability to practice navigation. And so that’s something that I think most mobs get conscious very quickly. But some people might be mad that somebody is not participating when in reality, it’s just that it’s a skill that people haven’t practiced enough to become to become effective at speaking even though they might have the idea and so removing either the variable of speaking or the variable of contribution can help level up one or the other of those skills separately from the whole the whole system right

 

Austin Chadwick  1:10:04

Nice. Yeah, I mean, this is a something my current mom has been talking about a lot is because we have diversity of experience with the tech stack and the domain and just experience in general in programming. And so we’ve been experimenting a lot with different patterns on how to encourage equality of navigation and make sure no one’s left out. So typically, we don’t really have the problem of stepping on each other. And kind of going back to the question in the chat. And I think it just kind of, again, maybe one of those sets here things is that we noticed that when Chris and I talked with people who wrote mob programming a long time before COVID, is that when we were on the video call with them, they had a natural flow of talking. And I think it just kind of develops once you get to know people around a team. Obviously, if you’re mobbing with people, you don’t know. And it’s going to have that set here, curve, or it’s going to be a little rough for a little while. But you, you pick it up as you go. But as far as equalizing navigation, we’ve, we’ve done things where in the mob timer will put, the person who has more learning to do or who has asked explicitly in retros, to navigate more will put their name multiple times in the timer, so they’ll get to navigate more often, or someone will just drive and they’ll navigate. We’ve done the My turn for learning pattern, which is where the person learning when it’s their turn to navigate, if they just want to ask questions and regain context, just using a timer, it always gives him a time to regain context and learn and grow. And I think it’s just something and some teams use no timers at all. And it just becomes more like a natural conversation where richer people and natural conversation will realize, hey, we haven’t heard from so. And so in a while. Let me ask him what he thinks about this, or, and you just make sure that the navigation is somewhat equalized, and that everyone’s contributing and taking part. So that’s what I have to share.

 

Jon Turner  1:12:02

With just that one thought to that to the I agree with the what Chris Tomasson said the only thing that I would recommend is his default to voice communication and then use other use messages for other things like Chris and Austin, were talking about. If you need to go and look up a gu ID of a user or something like that, definitely use a message for that. Don’t use Mike for that. But just for your normal communication during during your mob development, I would recommend favorite favoring mic communication? Because then it does that whole tricking your brain thing? It’s like, Oh, yeah, I’m just talking to these people. Even though they’re in various other parts of the world, where if you use messages, then it’s while there’s this picture, and then I’m getting this information from somewhere else Anyway, there’s more of a disconnect or anything.

 

Cat Swetel  1:13:08

Like you have any thoughts, or shall we move right along?

 

Mike Clement  1:13:13

Let’s move on.

 

Cat Swetel  1:13:15

Okay. Okay, so we’ve gotten a few questions about like, what are some natural ways to transition into remote mob programming, especially if the team has never done any kind of mob programming before? Um, we got one question that was like, kind of, what’s the difference between remote pairing and mopping? And can you transition from one to the other? We got another question that was about group code review. And if the team already has that practice, is it going to be easier to transition them into remote mob programming? And we did receive a request from the audience that john be the first to speak on this one. So we’ll go to john first about what are the differences there and do you do you have any experience with transitioning from other things into remote mob programming?

 

Jon Turner  1:14:14

Huh, so specifically for remote mob programming. I have kind of a nice transition point because I actually switched companies where I was doing my previous company I was doing in person mobbing and then I switched to immersion where it was right when COVID happened. Coincidentally, and so yeah. It was both a job change and how I was working change. For teams that are transitioning would recommend trying it. I mean, that’s obvious. At first you will probably do something will probably be terrible. Like the technology will be terrible? Or how do we even get each other’s code over or you know, we talk over top of each other during zoom or something will be terrible. But I would recommend sticking with it long enough that you can get past some of those initial terrible things. And then see, so then then you can start seeing some of the benefits. And then once you can see some of those benefits, you can you can start asking yourself, are these benefits worth it? in our context? are they worth are there? can we overcome those terrible things easily enough? You know, is the benefit worth the cost that we’re paying?

 

Cat Swetel  1:15:43

Well, yeah, that’s pretty lucky, good timing, to transition into that. But when you’re also changing jobs, just rip the band aid off, right?

 

Austin Chadwick  1:15:54

Yeah, so I can’t speak this one a little bit. Obviously, I’m in environment, our full time program. So it’s not as recent experience with transitioning from non programming to mob programming. But we recently spoke with Alan holub, who talks about how he would say, Hey, we have some code reviews to do, let’s, let’s do them in person, kind of a live code review, because then the feedback in the collaboration is much more efficient. And, and what often happens is the code review will turn into Hey, we should online 10, we should extract that to a method and, and then all of a sudden, you’re modeling. Because you’re you’re coming up with ideas as you’re reviewing the code. And so I’ve heard good stories of the transition happening that way. I’ve seen the transition happen, where previous places where we hired someone who’s mobbed before, who’s kind of an evangelist and really passionate about the topic. And so we do lunch and learns on the topic. We had professional training on parent Extreme Programming come in, and then we say, Hey, who wants to experiment with these styles, we’ve done, someone can facilitate and hosts just like an hour or two long session with whoever is interested, kind of investing in the early adopters, following Diffusion of Innovation type thing. Just like a kata, you know, do the fizzbuzz kata or there’s a whole handful of them I’ll put in the, in the chat where people can experiment in a safe way with it. And then what I’ve seen happen is the people who really like it will naturally want to keep doing it with real work. And and then there’s I’ve also heard of coaches who just come in and day one, were mobbing on real code or not doing any, you know, toy code, and they just kind of jump in fees for feet first. And so a lot of different things to experiment with them.

 

Mike Clement  1:17:46

Yeah, I don’t know if there’s, I don’t know if there’s one right way to introduce mobbing I know that. I know we’re talking specifically about remote mobbing but like mobbing in general, like, I mean, I can go back to my experience starting where, you know, I had been exposed to and been trying practice technique called randori, which is kind of a precursor to mob programming. And a lot of the principles from that ended up being part of what my programming at least a part of a lot of people smile programming practice today. But, and so I was kind of introduced to some of the concepts there. And then. And then, when we actually started to do it for real, like we actually picked a problem that we thought that nobody really knew how we were going to do it. So we kind of picked a nastier problem. And it wasn’t necessarily that it was like, really, really difficult. It was just we didn’t know how to do it. So there wasn’t like a clear person that was going to be driving it. So that means that we did have to collaborate. As well as we wanted the benefits of everybody understanding this part of the system that none of not nobody that was currently on the team understood. So, you know, we basically said, you know, in a retrospective, like, we’re going to try it for this next week, we know we’re going to be working on this thing. So let’s, let’s try it and then see. And we were already doing pair programming at the time. And we were doing what we were calling for our persistent promiscuous pair programming, meaning that we weren’t quite as promiscuous as our low. Sometimes advocates, but we were we were changing pairs every day. Or at least every day. And, and so we had, you know, we had a lot of the interaction techniques down. But we tried it for a week, we found to be super valuable. Some people were some people had been skeptical and kind of were like, this is good, at least for this type of problem. Some people were like, this is great. I want to keep doing this. And as we evolved the, you know, composition of teams, you know, certain teams tended to gravitate it to it more. And therefore, we’re attracted to those teams that were already doing it. The people that wanted to do it. So that being said, in other situations, like Austin said, starting with a toy problem can be a good way to at least expose people and be like, Hmm, okay, well, maybe this could actually work. But that also has the downside of I mean, there’s the benefit of that you’re not doing real work. And therefore you can work out a lot of the things that john said, initially are going to be awful, in an environment that you’re not impeding the flow of the normal work, but on the other hand, and you know, you also have the carry on well, it worked. Okay, while I was doing fizzbuzz. So, but what about I wanted to real. So one of the things that we’re, we’re doing an immersion right now is, Austin mentioned that they’re doing the same type of thing at Hunter where, but we’re kind of doing a guest mob or program basically, once a week, we’re now having somebody from the outside join one of our, our mods for a couple hours just to spend some time kind of see what we’re doing. Sometimes there are people that are doing mob programming in their own current practice, and they’re able to share some of what they’re doing. And we can have this exchange, sometimes it’s people that are like, I’m interested and curious and want to learn more and try it out. And, and so we have all sorts of different people. I’ll post a link in the chat, if you want to sign up, we just have a Google form to help help me to manage it, because I was getting just random, Twitter, DMS and stuff and I was just like, I can’t notice. I can’t. So just to kind of do that. But if you’re if anybody that’s on the call is interested, we’d love to have you.

 

Austin Chadwick  1:22:02

Same goes for us. That’s reach out to us.

 

Mike Clement  1:22:06

Yeah, probably largely depends on your your timezone, which might, you know, might be more or less buy or not, I mean, we’ve had, like, the Herald who asked him mentioned, spent a week at Hunter spent, I think, the next week or a week after that with us. And he again, was from somewhere in Europe, I can’t remember exactly where Austria, yeah. But you know, last a week or two ago, we had somebody from the UK, join us for a couple hours. So wherever you are. I’m sure both, both companies would love to have you and it actually be interesting to do both. So you can see the you know, as we’ve kind of said some of the differences and similarities between how we mob.

 

Chris Lucian  1:22:56

Um, I think I have one one thing to add to the question. So so I had the complete opposite experience with being introduced to modding it was it was an emergency that forced us to mod. And so you know, kind of a story of like where mobbing started was basically, one of the developers felt safe enough to say, Hey, I’m not going to meet this tax deadline, we’re going to be a lot of trouble if we don’t have this software. And there’s no way that I can finish. And so what ended up happening, just like Mike said, there was the randori style practices that we’ve been doing. We were doing cottas we’ve kind of doing tennis, TDD, you know, kind of tennis or Tic Tac Toe test driven development exercises and things like that. And so this developer said, Hey, can we all just get in the conference room and work on my projects, like we had been working on these randori exercises, and so it was kind of a big emergent emergency, we basically started the first day and we spent the whole day together just looking through it and trying to work out problems, you know, large structural problems, things like that. And so it was about a year and a half of development. we rewrote from the ground up while mobbing in less than three months and met the timeline for the project. And so, you know, it was kind of like hey, if you have this emergency, and nothing else has worked, then you can also try mobbing and a high risk situation and and I’ve seen that firsthand work. And, and, and we retroed regularly during that time, every day we’re just like, we need to do another day of this. We need to do another day this. This was before mob programming how to name and, and so there’s there’s definitely leeway to either dip your toe in and go slowly or rip the band aid off. So to So yeah, even as an organization, I think that there are organizations out there that have enough dysfunction that can, can do that. But I think also the number one most important thing for modding to work is safety. There needs to be psychological safety, and, and an abundance of it in order for somebody to put themselves out there like that and say, Hey, you can go ahead and scrutinize my work. And I won’t feel offended if you give me critical feedback, right? Like, that happens all the time in mobbing and there’s no way around that. And so you have to be okay with that. And you have to be okay, giving that feedback. Or it’s impossible to mob so. So you know, the number one thing that I’d established first is safety if you don’t have it.

 

Cat Swetel  1:25:47

Yeah, my first time mobbing was, I think a really similar situation where there was a compliance nightmare that just kind of popped up. And it was like, Hey, you have eight weeks to try to avoid this huge, fine. And of course, that seemed like, not at all possible. And it was kind of just like, What other choice do we have, all of us have to just work on this one thing together. Like, that’s literally the only choice that we have, we can’t afford to do the back and forth like, Oh, I got to reach out to the tester, I got to reach out to the DBA. I gotta. We just had to get everyone together. And we ended up taking over this conference room that you can’t reserve. And I remember facilities came and they’re like, you can’t reserve this. And you’ve been here for two days. And we just like for like compliance, get out. slam the door. But yet, so it’s exactly like that, I think. Yeah. And I mean, we ended up making it happen. But it was totally just like, What choice do we have? This is literally the only choice that we have if we want to actually make this happen. And that kind of leads into what I think will probably be the final question. But in which scenarios, would you not recommend mob programming, like Mike talked about, you know, scenarios where you definitely need the skills duplication, or where you need different skill sets in order to be able to deliver something, those are natural, good fits for mob programming. But in my experience, like honestly, when there’s something where everyone knows how to do it, you’re not really dependent on anyone else shirk off in a corner for an hour and do that. But I don’t know what experience any of you all have with that when when you not recommend not programming?

 

Chris Lucian  1:27:59

I’ve got opinion. Yeah.

 

Mike Clement  1:28:02

We all do.

 

Chris Lucian  1:28:07

Yeah, so. So I’ve seen one situation ever, that I would not recommend mob programming. And that was when we were told to follow another developer development, another development groups style and doing development. And we weren’t allowed to automate anything that they were doing. And so there was a kind of very remedial tasks that we were put on. And we’re basically like, hey, for for like a week just follow their practices and do this thing, right? And so we were mobbing or just like, this is like, probably the the most, I don’t know, I’d say boring work that I had done previously. And so it was just so boring, right? But But that was the whole thing. Like, our initial response was, well, let’s just mob on and a way to automate this. And so that’s, that’s where the core of my my philosophy around this has come from, is that I realized then that mobbing really makes sense. Because if you’re going to go and work on something by yourself, it probably could just be automated. And so, you know, basically, um, you know, say you had to, you know, update something everywhere in the code, it’s like, hey, let’s all split up and just get it done individually, so that we can all work on it on our own, and we’ll get it done faster, right, like, immediately when that like that font comes in your mind. You know, it’s it’s why my question is like, why not write a regular expression that searches for that thing in the code and just replaces it that takes a whole lot more brainpower and but you’ll probably get it done faster than if you all split up and worked on individually if you mobbed on that regular expression, right. And so, yeah, is basically the menial. Thank you, Rebecca, the menial repetitive work. That’s the stuff that I will I would not mob on but first you need to think how do you get rid of that work? Because if it’s if it’s not, if it’s so boring that you just do it in your sleep and you can’t mob on it because everybody’s disengaged, like, that is a key point to think about, like, how can we just automate this so that we never have to do it again. And I run into this like situation a lot our you know, if a team says, Hey, you know, we’re gonna just like work on this individually and get it done. It’s like, well, could you automate it? Oh, well never thought about it that way. Let’s let’s try it and then and then all of a sudden, it’s like, it was done in a fraction of the time then if they went and all did it themselves. So I think that really it’s it’s just if you feel like not mobbing then then evaluate like either some sort of a tea and some personal thing and yeah, maybe you don’t want him on because you need to disengage because of the people aspect. That’s fine. But if you’re not mopping for a technical reason, I would look at that as an opportunity to think about automation and and writing automation as a mom. So that’s, that’s my opinionated rant

 

1:31:13

Yeah, so it it earlier points. I’ve been on teams where we’ve experimented with doing a mixed approach where we’re like okay, well we’re gonna mob sometimes will not mob sometimes and like what things we not mob on and and you know, because we want to move on to things that are in like Chris said, most important, the most technically challenging the most, you know, that we need to develop, shared understanding and learning around. But what we found is that, you know, kind of to Chris’s point, those those opportunities to do those things that are less engaging, become few and far between. And we found like the the cost of switching between the mobbing mode and the non mobbing mode, even whether it was individuals or pairs, like that switching costs back and forth and the resynchronisation, like, actually took more effort and coordination than just, okay, well, we’ll mob on this thing that maybe is, maybe we should automate it, maybe we’ll just brute force it, because it’s a one time thing. And it’s not that big of a deal. Like, you know, like, sometimes you have to do you know, twiddling CSS, right? a, you know, something like that, where it’s like, well, you know, just getting all those right, like, you know, maybe can be one person by themselves, but, but even then, like, you know, I’ve had times where, you know, things that are seemingly innocuous, you know, may have been caught by having a mob there, that, you know, ended up being impactful in some way, maybe not catastrophic Lee but impactful in production, because it was somebody that was doing it by themselves. So so what we are philosophy, at least an immersion is mob first. And which ends up being mob 99% of the time. There are occasionally some things where one person, it makes sense for them to go off and do it. And then maybe, you know, kind of to Austin’s point, you know, you’re the researcher role or something like that, where they go learn something, and then they bring the learning back and integrate it into what the mod is doing. So there are there opportunities for people to maybe peel off and do other things, but like in terms of the main work of having code go into the product, we pretty much do everything via via modding.

 

1:33:47

Cool. Yeah, I guess I’ll jump in. And I realized that since I’ve been full time mob programming, I’ve I’ve grown an allergic reaction to waste in what did Rebecca call them? menial repetitive work. And so that anytime I’m given something like that, I’m just almost like, Ah, you know, like, and it’s been really fascinating to see my psychology change with that, where, as soon as I not mobbin and then we have to do something like code review, or I have to email this person and wait for this thing. And then you just start seeing from a lean perspective, all the cues start building up. It just like is really, really hard to watch after experiencing the flow of mobbing. And so I think like Chris and Mike, were saying, you’ll be surprised it sounds incredibly wasteful, to put all all the people on one thing, but it’s actually quite the opposite of how much waste goes away when you do that. So I would say, experiment first with mommy. But one thing I greatly respect is kind of more the people aspect as Chris was talking about his choice, right. So This is an incredibly controversial idea. Some people have, I’ve had people very publicly disparage the lobbying idea in front of the whole organization that previous places. And so it’s very controversial idea, it runs against most people’s intuitions about what efficiency means, like resource efficiency versus flow efficiency. And so basically, I would just leave room for respect for choice, right, you present the idea, you do something kata, and then people don’t want to do it, that’s fine. Or if you’re mobbing with someone, and they want to split away, maybe have a conversation about it. But basically, if they want to go off and research and come back, or if they want to work on this little part of the code and really learn for themselves and bring, I think that’s great, you know, you give them give them the choice. And I always respect that because you want people who are in who are doing it to be engaged and involved and really wanting to make it work. One pattern that we’ve done whenever we get these tasks that are more manual, and we’re like, we should just do this in solo, is we’ll split them up into someone will do the manual work, and the other part of the mob will try to automate it, even if it’s something that is seemingly ridiculous, like a status update or something like that. We’re like, how can we glean Git commits and turn that into the status updater. And so it turns into a fun task to split the mob where someone gets it done for that day, while the rest of the mob kind of scout rules it and makes it more and more automated every time we have to do something like that. But yeah, I think that’s what I had to say on that one.

 

1:36:35

Maybe john might have something but I just wanted to jump in on one thing that Rebecca asked as a follow up to it about time zones, like we deal with that in that we are, you know, partly in the Eastern Time Zone, partly in the mountain time zone in the United States. And so those are two hours apart. So we have not asked anybody explicitly do this, but people have shifted their hours either forward or backwards in order to have more time in the mob, because they feel that it’s more valuable. That being said, there have been times when people have either been in solo or pair situations. Usually, what we have recommended in those times is that oftentimes those people will be doing learning activities during those times. You know, again, where it’s, you know, half hour hour a day, having them do either research directly on something that we’re working on or, or something adjacent, you know, just learning new patterns or things like that, that ends up being more valuable than having to go through them working on something for an hour, then catching up the mob on it or doing a PR that needs to then get get reviewed and merged. So again, that’s, that’s just kind of one of the things that we’re dealing with, again, with in terms of time zones. So I know, john, you’re actually on a team that has dealt or least somewhat dealt with time zones. So maybe you could speak more to that.

 

1:38:15

Yeah, currently, so currently have people in the mountain time zone in Eastern Time Zone. And so we just kind of meet in the middle. Which is nice, because then all the team is on the mob all the time. Previously, we had a developer who’s in the Philippines. And he shifted his schedule a lot, but we didn’t want him. We didn’t want to force him to be awake until like three o’clock in the morning or something. I can’t remember how late he had to stay up. And so he did actually come out a little bit earlier, before the rest of the mob. And then he would do sometimes he would do morning activities, like like Mike talked about. Sometimes he would he would do some of those more. Let’s see how did Rebecca phrase it menial repetitive work tasks that we hadn’t had time to find a better solution for sometimes he’d do those. Usually, if he did something like that, then he would do some sort of PR we do a code review so that the rest when the rest of the mob joined. We’d all know what he was working on. And, you know, there wasn’t this other hidden solo work going on. It was still teamwork. One other thing that we have done occasionally is if there’s just one, you know, the rest of the team is out for whatever reason. And there’s just one person from the mob left. Sometimes we will have them go over to the other team and work with their mom for a while. We’ve done that in the past as

 

Cat Swetel  1:39:49

well. Cool. All right. And yeah, I think that’s probably going to be our our last question. So I just want to say thank you So much for coming together pretty short notice and wild times out in the world and the necessity for remote mob programming. But I’m so thankful that you all who are experts and practitioners make yourself available to the community for things like this right. And having that investment in our community, I think is part of what makes it so special, right? I mean, we just want everyone as an industry to grow and improve and make the work the knowledge work that we do more humane. So I’m very, very thankful for that. I appreciate it so much. And don’t forget to check out the mob mentality show on YouTube. It’s very, very good. Like I said, I’ve pointed out a few things from episodes that I’ve watched, some can check out Kristen Austin there. There’s the guests mobbing programs, both at Hunter in immersion. And I think it would be really cool to check out both of them and kind of compare because then you’re getting exposure to different ways of doing things. And you can find what’s right for you and your context. So certainly sign up for those. And I guess with that, again, thanks again to our panelists here. I really appreciate it. And I’ll hand it back over to Ellen.

 

Ellen Grove  1:41:30

I just wanted to take a quick moment to also thank our panelists to St. JOHN and Chris and Austin and Mike for your participation today. Because this was a really insightful conversation. And a special thank you to Kat for pulling all of this together, too, we could not have done it without you. I dropped a note in the chat, just to let everybody know that we will be posting this on the Agile Alliance website. It’ll take a couple of days to get there. So don’t go rushing there this afternoon. But we’ll have it up as soon as we can. Because I know you’ll want to revisit this conversation, there was so much really good information in here. While you’re at the Agile Alliance website, feel free to check out the upcoming events listing to make yourself aware of the other events that are coming up, there will be more events and deliver agile live series. We haven’t got them posted yet. But again, a couple of days. And while you’re there, too, if you’re not already an agile Alliance member, you might want to check that out as well, because the rest of this series will probably only be available to our members. Agile Alliance is a member driven organization. We’re nonprofit, we don’t sell things. We don’t offer training, we don’t do certifications. And we rely on support from our individual and corporate members to make events like this happen. So there’s my little NPR pitch, but it really is important and we’re hoping that you’ll consider becoming a member. But thank you again to all of the people who spoke today. And thank you to everybody else who attended and brought great questions and contributed to this really awesome conversation. We appreciate it.

Additional Resources

Add to Bookmarks Remove Bookmark
Add to Bookmarks Remove from Bookmarks
Add to Bookmarks Remove from Bookmarks

Speaker(s) may be willing to present this session at local group meetings and other events.

deliver:Agile 2020
Video

More Agile Event Session Videos

Being Wrong is Great
Experimenting and learning are two of the foundational pillars of modern Agile and a mantra in so many Agile organizations. So why is truly embodying a culture where failing is not only accepted but encouraged so rare? A lot is hidden in this chal…
Can I Ask You A Question?
Questions are useful tools–they help open lines of communication, get information, understand others, and motivate new ideas.  We’ll play some games using different types of questions and explore how to ask better questions.…
Feature Branching is Evil
Feature branching is one of the most commonly accepted practices in the IT industry. It is mainly used to control quality and feature delivery. However, many times, the inverse is true. Branches break the flow of the IT delivery process, reducing bot…
Being Wrong is Great
Experimenting and learning are two of the foundational pillars of modern Agile and a mantra in so many Agile organizations. So why is truly embodying a culture where failing is not only accepted but encouraged so rare? A lot is hidden in this chal…
Can I Ask You A Question?
Questions are useful tools–they help open lines of communication, get information, understand others, and motivate new ideas.  We’ll play some games using different types of questions and explore how to ask better questions.…

Have a comment? Join the conversation

Discover the many benefits of membership

Your membership enables Agile Alliance to offer a wealth of first-rate resources, present renowned international events, support global community groups, and more — all geared toward helping Agile practitioners reach their full potential and deliver innovative, Agile solutions.

Privacy Preference Center

Not yet a member? Sign up now