Poornima Vijayashanker

How Pair Programming and Mob Programming Help Quickly Onboard New Software Engineers


In last week’s Build Tip, we dove into the importance of onboarding new hires, and the benefits your team and company will experience if you invest the time into doing it.

Next, you might be wondering what to do if you have more than one hire? Or if you have a hire that isn’t familiar with the language or framework your team uses and you want to ramp them up quickly?

Have you heard of techniques like pair programming or mob programming, but aren’t sure if they efficient and effective?

Well in today’s Build Tip, we’ll be sharing why pair programming and mob programming can be beneficial to getting new hires up to speed quickly on a new language or framework, and help you scale your efforts efficiently and effectively.

Chris Jobst, Senior Software Engineer at Pivotal Labs, is back to help us out!

Here’s what you’ll learn as you watch the episode:

  • why pair programming may seem daunting but it’s very efficient;
  • how pair programming improves the quality of your code base and product;
  • what mob programming is; and
  • why it may seem inefficient to have everyone working on a single line of code at once with mob programming, but it’s actually very efficient when onboarding many new hires.

Once you’ve watched the episode, Chris and I want to know, do you pair program or mob program at your company? If so, what are the benefits you’ve experienced? Let us know in the comments below this video!

And check out these additional resources on employee onboarding:

Listen to the episode on iTunes!

How Pair Programming and Mob Programming Help Quickly Onboard New Software Engineers Transcript (Raw)

Poornima Vijayashanker: Hey Ronan, how’s it going with your new hires?

Ronan Dunlop: Great. I did everything that you and Chris suggested and…but I’ve run into a small snag.

Poornima Vijayashanker: Oh, what’s your snag?

Ronan Dunlop: Most of my new developers don’t know Rails.

Poornima Vijayashanker: Oh, well just pair program with them.

Ronan Dunlop: There’s just one of me.

Poornima Vijayashanker: Oh, that’s right. And five of them. Well, have you considered mob programming?

Ronan Dunlop: That sounds dangerous. What’s that?

Poornima Vijayashanker: Don’t worry, it’s not. In fact, why don’t we cover the benefits of pair and mob programming in today’s Build tip?

Ronan Dunlop: That sounds cool.

Poornima Vijayashanker: Welcome to Build, brought to you by Pivotal Tracker. I’m your host, Poornima Vijayashanker. In the last Build episode, I shared some tips for onboarding new hires.

In today’s episode, we’re gonna dive in and give you some more tips around how you can onboard engineers, get them up to speed on a code base or a programming language they may not be familiar with really quickly. And to help us out, Chris Jobst is back. You’ll recall Chris is a senior software engineer at Pivotal Labs. Thanks for joining us again, Chris.

Chris Jobst: It’s great to be back, Poornima. Thanks again for having me.

What is pair programming in software engineering?

Poornima Vijayashanker: Yeah, wonderful. So let’s dive right in. What’s Pair programming?

Chris Jobst: Pairing is when you have two people sitting at one computer. We often have two monitors and two keyboards and two mics, and they’re literally working on the same code at the same time.

Poornima Vijayashanker: That’s gotta be really time consuming to have two people doing the exact same task at the same time. What’s the benefit?

When to use pair programming

Chris Jobst: It sounds really daunting, but it’s actually very efficient. You’re basically doing code review a hundred percent of the time.

Poornima Vijayashanker: OK.

Chris Jobst: And you get to refactor together, so you avoid a lot of these common things that you’ll see in other code bases.

Pair programming and refactoring

Poornima Vijayashanker: OK, so maybe for some folks that don’t know code reviews or refactoring, maybe we could share what those are as well?

Chris Jobst: Sure. Oftentimes before something gets committed or accepted into the code base, you’ll have somebody review it and make suggestions and then the original committer has to go back and change it, and then it goes back to the code review and gets accepted.

Poornima Vijayashanker: OK.

Chris Jobst: That’s a feedback loop that we completely avoid with Pair programming.

Poornima Vijayashanker: And with refactoring?

Chris Jobst: Refactoring is simply where you take code and change the implementation without changing the functionality.

Poornima Vijayashanker: OK.

Chris Jobst: To improve the readability and maintainability of the code.

How pair programming really works

Poornima Vijayashanker: So in pairing, since you’ve got two sets of eyes checking each other’s work, it probably moves a lot faster as a result?

Chris Jobst: I think so. There’s code review going on, you’re refactoring together, you’re always talking about the best way to solve a problem and if you don’t know what to do, instead of having to go ask someone or stop and email, you’ve got your pair right there.

Poornima Vijayashanker: Yeah. Which is probably the benefit for new hires?

Chris Jobst: Absolutely.

Poornima Vijayashanker: For our audience out there who may be new to pair programming, how can they get started?

Chris Jobst: Well, you know one computer and another monitor, and you need two keyboards and mics. Most people already have that on hand.

Poornima Vijayashanker: Yeah, and are there any rules, I’m guessing?

Chris Jobst: Absolutely. The biggest one is have empathy, and just be kind to your pair. You’re both working together, it’s pretty intimate, but it’s a lot of fun too.

Poornima Vijayashanker: Now are both people writing code at the exact same time?

Chris Jobst: No. You decide who’s going to drive at a certain time and type on the keyboard and the other person will navigate and maybe suggest, “Hey, what if we went over here and did this thing?”

Poornima Vijayashanker: So it’s like a pilot/co-pilot and maybe you trade off?

Chris Jobst: Yeah, that’s a great way of describing it.

Mob programming vs. pair programming

Poornima Vijayashanker: Awesome. There are some situations where you can’t Pair program, like in Ronan’s case where he’s got five engineering hires and they don’t know Rails so how can you work with a bigger group?

Chris Jobst: Well, you can do what’s called Mobbing.

Poornima Vijayashanker: OK.

What is mob programming?

Chris Jobst: You get one computer and often a TV screen or projector and you have a bunch of people, five or more, look at the code. One person is typing and you’re generally more teaching or gathering suggestions about how to best achieve a goal.

Poornima Vijayashanker: Got it. I’m sure somebody who’s looking on from the outside is gonna be like, “Why are five people sitting around one machine and writing a single line of code?” What are some of the benefits? Why we would wanna do this?

Benefits of mob programming

Chris Jobst: As you pointed out, it’s great for onboarding new people.

Poornima Vijayashanker: OK.

Chris Jobst: And what you’ll have is people asking questions, oftentimes they’ll ask a question somebody else didn’t think of but it’s a question that they need answered.

Poornima Vijayashanker: Got it. And I’m sure it also helps with the bus factor, right? Everyone’s gonna know something, or know the same thing.

Chris Jobst: Definitely, you want everybody on the same page. You want them all knowing how the code works and if you’ve got a bunch of new people, it’s actually more time-consuming to go and teach every person individually than to get them in a room and help them learn from each other and from the person who’s the expert.

Poornima Vijayashanker: Got it.

Resources on pair programming and mob programming

Poornima Vijayashanker: This was a great primer on pairing and mobbing. For our audiences out there who maybe want to dive a little deeper, do you have recommendations on resources?

Chris Jobst: Definitely. There are two great books that I love. Extreme Programming and Extreme Programming Explained, both by Kent Beck. I recommend the former for engineers. It really talks about these practices and the process in more detail. Extreme Programming Explained is a great resource for PMs. It talks about it on a higher level and how a whole project can benefit.

Poornima Vijayashanker: Thanks for sharing these great resources and tips for us. I know our audience is gonna get a lot out of this.

Chris Jobst: Thank you for having me. I’m a huge proponent of pair programming.

Poornima Vijayashanker: So, for all of you out there, Chris and I wanna know, have you done pair or mob programming with your teams as you onboard new hires? If so, what are the benefits you’ve experienced? Let us know in the comments below.

That’s it for today’s episode of Build. Be sure to subscribe to our YouTube channel to receive more episode like today’s and special thanks to our sponsor, Pivotal Tracker, for their help in producing this episode. Ciao for now.

This episode of Build is brought to you by our sponsor, Pivotal Tracker.

Build is produced as a partnership between Femgineer and Pivotal Tracker. San Francisco video production by StartMotionMEDIA.