The Shape of Teams when Mob Programming
In Agile and outside of software development there is an idea that people have shapes. These shapes refer to the specialties of users in technologies or other practices. There are plenty of studies and other articles about the general shapes of people and how to build teams with these people.
At a high level here are some of the most common shapes
-
Dash - General knowledge of many things to no expertise
-
T - A Good spread of general knowledge and one specialty
-
E - Someone that has experience and can execute plans
-
I - No general knowledge but has specialty
But for this post, I am not interested in the basic shapes. I want to delve into what shapes come about in a mob programming environment. What shapes come out when working in a highly collaborative team where all knowledge and tasks are shared.
From my experience, the basic letter and symbol shapes do not match up when mob programming. People are no longer specializing solely in one area. In my organization, every member of the mob touches every piece of the code from the front to the back end. This includes testing, security, deployment, and in some cases even UI design.
We are no longer looking at a team where one architect creates the overall design that the team follows. There is no longer a QA member doing all the end to end testing. There is no concept of throwing pieces over the wall letting the next person take over.
Let's assume everyone joins a mob and starts as a T shaped member. Everyone has a general knowledge but one person is an expert in testing, one person is an expert in the technicalities, and another is an expert in design. As these members work together their knowledge is shared and transferred among them.
What I believe happens on a mob is the original T shapes expand. The single point of knowledge expands into the other areas that each other team member is an expert of. The T's expand to become Trapezoids, specifically upside down trapezoids.
The team members keep their original breath of general knowledge but their specialties expand. In time they are all experts in testing, the technology, design, and all other aspects of the project. Everyone on the team has become more versatile because of the collaborative environment. They no longer need to rely on a single person because of their specialty.
Everyone is able to succeed and excel in the work they do no matter the task at hand. This is all created because of mob programming.