Being a Tester in a Programming Mob
While mob testing on testing activities is a great learning exercise that transfers tacit knowledge from one tester to another, mob testing as a tester in a programming mob is an activity that transforms the team’s capabilities.
My team started a weekly learning mob. The first one was on refactoring code, and I already contributed good names through deep understanding of domain concepts. The second was about sharing knowledge of Selenium automation a developer had been maintaining alone, and in addition to most of the team now being able to add Selenium scripts (including me), I could see I contributed better ideas of what and how to test.
The two sessions that gave me the most confidence about mobbing were ones where we worked on adding new features. I could clearly see my contributions:
- Correcting mistakes without ego in play: Recognizing what would have been expensive mistakes saved us weeks of work with immediate feedback, and instead of one person finding the error and one person being to blame, all of us found and fixed the problems together.
- Deliberate thinking: My slowness while learning to write code under instruction made the developers think carefully about what to tell me, and they realized it resulted in better choices.
- Stealth exploration: We had more features ready after mobbing because I would interject testing ideas during development: “Could we change that to another user?” “Can we run it in IE9 for a change?”
- Being a quality conscience: With everyone in the room, we cared about cleaning up the code, and we cared about finishing the work, including exploratory testing. There were times someone would look at me and say, “You’d want us to do this, right?”
- Transferring testing skills: The secret recipe of what makes me great in finding problems was out. The developers caught onto the basics of testing, and I had a foundation to build even deeper skills.
In a mob, a common rule to remember is “Learning or contributing.” If everyone is doing one of those two things, it’s an effective mob. We all have our strong moments and skills areas and our weaker ones. When we work in a mob, everyone contributes their best into the work we do. It might not be the most we get out of each individual, but in software development, avoiding rework and amplifying learning makes a difference in the bottom line of what comes out.