Onboarding Your New Hires Onto a Mob Programming Team
This piece was a collaboration written by Nate Wixom and Torrey Powell.
Before we get started, we’ll offer a few quick introductions and some terminology definitions.
We both lead marketing technology and software engineering teams at Clearlink—a Utah-based digital marketing, sales, and technology company focused on creating intelligent customer experiences for the world’s leading brands.
Our teams have been utilizing mob programming for well over a year now, and while it certainly took some time to get used to, we’re all big fans of it. Mob programming is best thought of as a software development approach where everyone works on the same project, at the same time, in the same space—and yes, even from the same computer. The adoption of this methodology reduces knowledge towers, increases code quality, reduces technical debt, and increases learning.
The Origin of Mob Programming at Clearlink
The idea to start using mob programming came about when Torrey’s team was designing a new application from the ground up. At a meeting early on to discuss architecture and hash out a game plan, one of his team members suggested they simply do it all together to stay on the same page.
Unaware that Nate’s team had also been considering the approach, our two teams were serendipitously heading down the same path to full-out mob programming.
We started to coordinate our efforts, and after attending a conference on the topic, we drafted our initial Mob Programming Manifesto. Our roadmap for implementing this new, radical methodology was complete, giving us plenty of momentum to pitch the idea to the executives.
Having two groups trying the same approach built momentum, which was helpful because a few senior leaders understandably needed convincing, and team members had questions that needed to be answered. We had to persuade a variety of audiences to adopt a rather unfamiliar way of getting work done, which became easy once they began to see the advantages.
Benefits We’ve Seen
A few of the major benefits of mob programming we’ve seen at Clearlink include:
- Greater knowledge sharing: Team members educate and coach each other up, regardless of level.
- Increase in quality: We’ve seen far fewer bugs going out the door, given that multiple engineers are reviewing code together.
- Increase in the skill level of developers: This is tied to the knowledge sharing and coaching we’ve seen.
- Increased level of engagement with stakeholders outside the organization: Those stakeholders will sometimes join in with the mob setup and really get hands-on with the project.
- A good model for growth organizations: If you onboard two or three new developers a month, mobbing is much more scalable than setting up individual trainings with existing developers.
- Exposure to different programming languages: We reorganize the mobs and adjust cadences so that all developers get exposure to different programming languages and become polyglots.
Mob programming has offered an increase in job satisfaction and in overall capability. Developers are able to do far more in a mob framework than they would be able to do on their own. Being able to make a bigger difference and write better code in a collaborative environment is incredibly rewarding.
One of our software engineers asserts that “the collaboration, the discussion, [and] the problem solving that we do as a group” is a major benefit of working in a mob, and that because of it, “we have a very clean, stable, and efficient code base.”
Those kinds of sentiments from people spending time in the mob setting are valuable to share with new or potential team members who are unsure about the structure of mob programming.
Another software developer echoes those opinions, noting that, “[W]ithout doubt my job satisfaction has been considerably higher [in mob programming]. Our team is a true team, not just developers who sit together. We help each other. We respect each other. We lean on each other. We trust each other. Working on the team has been the biggest benefit of all.”
On a more personal level, recently, one of our developers had premature twins. Obviously, he needed to be away from work for long periods, as the babies were in the neonatal intensive care unit. If we were in an individual-developer model, we would’ve seen a lot of issues with bugs and incomplete tasks. It would’ve been difficult for a developer from another team to jump in and fill his role.
Because we were in mob programming, the team was able to take over his responsibilities seamlessly, as there were no gaps in knowledge—and all the developers had time to reach out to their colleague and support him. That experience showed us how powerful mobbing can truly be.
The Process of Finding and Onboarding Developers
Onboarding is a crucial part of building your mob. If you’re interested in adopting this approach at your organization, take some time to plan both an interview strategy for potential candidates and then an onboarding program for new hires.
We have candidates sit in the mob they’d be working in for at least an hour as part of their interview process. We need to test their basic working style and “kindergarten skills”—are they polite and open to collaborating closely with others? We also want to give them a full picture of what a mob programming environment looks and feels like so they have a chance to evaluate whether or not it’s something they want to be a part of.
This model will most likely be different than the one interviewees and new hires have worked in before. We explain mob programming clearly and make time to address inevitable questions and concerns with them.
During onboarding, we have new hires do a few smaller projects—short sprints, tickets, upgrades, etc.—in a mob approach to see how they respond to it, and then address their concerns.
Outline the Incentives
We demonstrate to potential candidates and new hires what they’ll learn and how learning to work in a mob model will benefit them. Also, we outline how mob programming benefits the larger goals of our company.
Finally, you also want to make sure to include your executive team and external stakeholders as you build a mob programming team at your company. Update them during the process, encourage them to attend programming sessions and see the way work is done, and explain how this new approach will better serve stakeholder needs and the overall goals of the company.
The Challenges Along the Way
When we first started working in mob programming, we did lose a few people who weren’t thrilled about the incredibly active collaborative format we implemented. That’s not a huge surprise, though, as some people just want to be heads-down and headphones-on, cranking out code. We understand that mobbing isn’t for everyone.
Now, the good thing is, we’ve gotten higher-quality developers wanting to come in because they know we use mobs. That’s actually worked out quite well for us.
The potential benefits are immense, but transparency and planning are important. We strive to give potential candidates the information they need to see if mob programming is the right fit for them.
Inundating them with benefits and talking to them only about what they’re going to learn and what kinds of doors this experience will open for them doesn’t paint the entire picture, which also involves them being able to adapt to working in a new environment. Being clear about that up front is important, because it allows the candidates to choose whether this is the right environment for them.
Ultimately, the exposure to knowledge and new programming languages makes coders who have worked in mob settings extremely valuable and desired. Some may leave you regardless of your onboarding process, and that’s okay. Total retention is nearly impossible, but if you’re growing a solid team with good retention, that’s good for you and the company.
Making the Leap
Getting your entire company behind the idea and structure of mob programming will smooth the interviewing and onboarding process by creating a receptive, encouraging environment for new team members. When you implement and foster a mob programming environment, you can count on this leading to a reduction in knowledge towers and coding errors, while also increasing learning, collaboration, and employee satisfaction. This all leads to positioning your company as a destination for software engineers.
Like anything else, building a mob programming team is a process, and it’s one that will involve learning, mistakes, and, hopefully, growth. Challenge your team to take the right steps early on, and your company will eventually reap the benefits of this powerful programming model.