Photo by JESHOOTS.COM on Unsplash

I’d like to introduce you to someone, His name is Frank.

Frank is a developer. He lives in a fictional land that’s a lot like the one you live in. Frank works for a company that’s a lot like yours, in the team like the one you work in.

Frank understands is that knowledge on development teams looks like this:

He knows a bit about the system he works on. There are some things about it that only he knows. Others know things that he doesn’t. No one person knows everything- even a majority of things.

So Frank would like to do two things better:

Learn new things from his teammates. Share what he has learnt with his teammates.

Frank thinks about ways to do this that his team already employs.

These are great methods of sharing information. Frank is still not happy with these methods of sharing information

This is Because they :

Only help those who seek learning out. Work cannot commence on them in parallel with other tickets.

Frank needs a new method of facilitating learning. He wonders what that might be. After searching, he reads a blog on the internet. The blogs name? ‘Facilitating Team Learning With Mob Programming’.

The phrase ‘mob programming’ scares Frank. ‘I don’t want to be in a mob, people get hurt in mobs’.

But in spite of this, Frank decided to learn about mob programming.

Frank Learnt that a mob was 3 or more devs working together. One of the devs takes the role of a ‘Driver’ — That’s the person with his hands on the keyboard typing the code.

So what about the other people in the mob? these people are the ‘Navigators’. Navigators are able to think about the design of the code. They are able to find mistakes and philosophise about the codes design. This is simple for them as they are not occupying their time typing.

So Frank decided to give Mob Programming a Try. In fact he did it every day for 5 months

One day Frank was typing out some code using old style Javascript syntax. And at that point someone in the mob piped up. “Have you tried using the new Javascript syntax, I think it might be better here”. In a flash frank had learnt something new, better still there was someone there to demonstrate it and solidify his understanding.

Frank learnt about lots of things this way, Including:

1. Library functions.

2. Company context.

3. Deployment procedures.

Better still he was able to learn about programming practices like TCR or TDD from people in his team who advocated them.

And that was the moment Frank became convinced. The best way to learn as a team is through mob programming!