Extreme Programming (XP) development practices emphasize the importance of developer communication. Our team is currently in a transition toward using many of XP's suggested lightweight practices. As part of and to facilitate this transition, we have been developing a collaborative method we call "mob programming." The term "mob programming" is whimsically derived from the term "pair programming" and indicates the practice of refactoring code in groups larger than two developers. The purpose we identify for this refactoring focuses less on writing code that we will use later and more on encouraging healthy discussion. In this chapter, we describe our process and its precursors as they have evolved over time. We report the successes realized and the failures suffered in the context of the values of XP.