Slashdot Mirror


Mob Programming: When Is 5 Heads Really Better Than 1 (or 2)?

itwbennett writes: Proponents of Mob programming, an offshoot of Pair programming in which the whole team works together on the same computer, say that it increases both quality and productivity, but also acknowledge that the productivity gains might not be readily apparent. "If you measure by features or other classic development productivity metrics, Mobbing looks like it's achieving only 75 to 85 percent of individual or Pair output for, say, a team of six or seven working for a week," says Paul Massey, whose company Bluefruit Software is a heavy user of the Mob approach. So, where does the productivity come from? Matthew Dodkins, a software architect at Bluefruit says the biggest gains are in code merges. "In a day spent using traditional collaboration, you would have to first spend time agreeing on tasks, common goals, deciding who's doing what... and then going away to do that, write code, and come back and merge it, resolve problems," says Dodkins. By bringing everyone into the same room, "we try to merge frequently, and try to do almost continuous integration." Matt Schartman, whose company Appfolio also uses Mobbing and wrote about his experience, gave Mobbing high marks for producing a quality product, but didn't find that it improved productivity in any measurable way.

8 of 126 comments (clear)

  1. Hypersupervised programming? by jeffb+(2.718) · · Score: 5, Insightful

    Golly! How do you suppose that having one person at a time writing code, with the rest of the team effectively doing simultaneous code review, magically produces "fewer features" but "better code quality" than having everybody writing code, then throwing it together and maybe doing a cursory bit of code review at the end?

    Next, you'll be telling me that having one or two testers per developer produces better-quality software than spending all your money on developers so you can "get more features".

  2. Re:question about this by Anonymous Coward · · Score: 2, Insightful

    The certainty of jail time + loss of job, associated with a mortgage does it for me.

  3. Mob Programming, huh? by Dutch+Gun · · Score: 5, Insightful

    I'm guessing it works for solving some sorts of problems fairly well. But there are some problems I've run into that require some silent contemplation over quite a bit of time to come up with a solution. I have a hard time envisioning that working with pair programming (which I've done only in very brief amounts) or with mob programming (never tried, probably like most). There are also some problems so technically difficult that I need maximum concentration to keep everything straight while implementing or debugging it. Having a group of programmers surrounding me seems distracting to that end.

    I could see how it might help in some situations... you're essentially programming while having a constant design and review meeting, so I can see how the quality of code would improve. You're unlikely to simply accept a sub-par solution, because you've got a couple other programmers to readily suggest solutions you haven't thought of yet. The fact that it improves quality but not productivity should really come as no surprise, as you're essentially multiplying the brain-power focused on a single problem, but five programmers can't necessarily solve a problem five times faster.

    An interesting concept. I don't think I'd want to *always* program that way (nor pair programming), but I could see it being helpful at times. At the moment, I either work on my own projects or as a remote contract programmer, so I'm largely in the position of *having* to solve everything myself, and it's often fairly difficult to not have immediate access to other programmers for advice or assistance.

    --
    Irony: Agile development has too much intertia to be abandoned now.
    1. Re:Mob Programming, huh? by Jeremi · · Score: 4, Insightful

      When I hear of group-programming styles like this, I always think of a network of modern multi-gigahertz computers, all linked together over a 1980's-style 10MB/sec Ethernet LAN.

      Whatever benefit the additional CPU cycles might add is more than taken away by the low throughput and high latency of the communications medium. (What is the average throughput of a spoken conversation, anyway? Maybe 1200 baud on a good day?)

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    2. Re:Mob Programming, huh? by Dutch+Gun · · Score: 5, Insightful

      Keep in mind that human beings are pretty good at creating a shared mental context of their conversation, and programmers would also have a lot of shared knowledge, both of the problem at hand as well as more generalized knowledge that most programmers (should) know.

      For instance, if I said "We should use a proxy object here to create a streamlined interface and minimize coupling between these various systems"... how much information did that convey? If you're a programmer, that probably said a quite a bit in a very few words, because you understand a deeper meaning behind all those words.

      I guess you can consider shared knowledge to be a highly effective form of compression for personally-transmitted information (spoken communication is only part of it, remember).

      --
      Irony: Agile development has too much intertia to be abandoned now.
  4. Re:For the love of God... by chipschap · · Score: 4, Insightful

    This seems like another "fad of the day" approach.

    All these new "methods" strike me as coming either from 1) managers or "experts" with little to no actual experience at the keyboard writing actual code, or 2) university professors and theorists whose code is all written by slave labor in the form of grad students.

  5. The Tao of Programming... by Anonymous Coward · · Score: 2, Insightful

    A manager went to the Master Programmer and showed him the requirements document for a new application. The manager asked the Master: "How long will it take to design this system if I assign five programmers to it?"

    "It will take one year," said the Master promptly.

    "But we need this system immediately or even sooner! How long will it take if I assign ten programmers to it?"

    The Master Programmer frowned. "In that case, it will take two years."

    "And what if I assign a hundred programmers to it?"

    The Master Programmer shrugged. "Then the design will never be completed," he said.

  6. Re:It's all about the environment... by phantomfive · · Score: 3, Insightful

    Seriously, hire a developer for six figures and give him a few hundred bucks in desk space that doesn't even have four cube walls?

    I've wondered that. Beyond noise as a distraction, when they're that close, personal hygiene becomes a distraction.
    Hard to concentrate when you can smell your neighbor didn't shower this week.

    --
    "First they came for the slanderers and i said nothing."