Agile2019 has ended
Back To Schedule
Wednesday, August 7 • 14:00 - 14:30
Harvesting Mob Programming Patterns: Observing how we work (Michael Keeling, Joe Runde) POPULAR

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Limited Capacity filling up

We were huge advocates of pair programming and have directly experienced the many benefits of pairing, but when we first heard about mob programming with thought it sounded crazy! Perhaps... so crazy it might actually work. Mob programming is a software development practice in which the whole team works on the same code at the same time. In our experience, mob programming can be significantly better than programming alone. While mobbing, we've created some of the best code our team has ever written faster than the typical code review cycle. We've explored new domains and architectures quickly. We've helped individuals feel more confident in their ability to change the system and built strong bonds within the team. In addition to these huge wins, we've also experienced a few bitter failures. Mobbing can be a tremendous waste of time in some circumstances. Not all mobs can work on all problems. Sometimes people forget how to be a good teammate.
In this report we explore a set of mob programming patterns discovered by two different teams and two different companies -- LendingHome and IBM -- after more than a year of practice. Patterns we found include emergent roles in the mob such as the recorder, researcher, and facilitator, collaboration patterns such as create a punch list and form splinter groups, and driving patterns such as think out loud and asking the mob to tell me what to write. While the patterns themselves proved interesting and useful, we were surprised at how much our mob programming improved after even modest reflection regarding our practice. In addition to the mob programming patterns, some of which corroborate experiences shared by other teams, we discuss the benefits of pattern harvesting as a mechanism for supporting reflective practice and general process improvement.

Lessons Learned from Your Experience:
  • • In the report we explore about half a dozen mob programming patterns
  • • There are many ways "right" ways for a mob to organize and work together.
  • • Patterns can be harvested through story telling and used as a strong feedback loop to improve practice.
  • • We can use concrete examples of practice, such as a patterns catalog, to make it easier for the team to want to try a potentially controversial practice such as mob programming.


avatar for Michael Keeling

Michael Keeling

Staff Software Engineer, LendingHome
Michael Keeling is a software engineer at LendingHome and the author of Design It!: From Programmer to Software Architect. Prior to LendingHome, he worked at IBM on the Watson Discovery Service. Keeling has a Master of Science in Software Engineering from Carnegie Mellon University and a Bachelor of Science in Computer Science from the College of William and Mary... Read More →
avatar for Joe Runde

Joe Runde

Joe Runde is a software engineer who recently started his career at IBM. There he works on Watson while teaching about machine learning methods and learning about software design from many smarter folks. Joe has an MS in Machine Learning from Carnegie Mellon University and a BS in... Read More →

Wednesday August 7, 2019 14:00 - 14:30 EDT
Chesapeake 7/8/9