Please watch this to see a full day of “Mob Programming”. We work like this pretty much all day, every day, 5 days a week:
[...] Mob Programming Time-Lapse Video [...]
Thanks for posting this video.
Are all of your team members only working on one project at any given time? Do your team members have other projects or responsibilities that need to be tended to at the same time? Is this team responsible for new development only, or also maintenance?
I like this method of working. Our teams work on multiple projects at any given time and as an organization, we tend to have a lot of meetings on different subjects that don’t always require the same group of people. Any additional info you can share on how this group fits into the overall company workflow would be helpful.
I’ll try to answer all your questions.
Q1: Are all of your team members only working on one project at any given time?
We generally have a number of projects we are working on.
Q2: Do your team members have other projects or responsibilities that need to be tended to at the same time?
We do all work as a team. Typically, individual team members do not have projects or responsibilities outside of the team.
Q3: Is this team responsible for new development only, or also maintenance?
New development and maintenance.
I don’t believe it matters what a team is tasked with doing, what their work is, or the nature of it – New dev, maintenance, 1 project or 10 projects… whatever. It is simply this: whatever the nature of the work, the team can figure out how to tackle it.
Looks cool, I would really like to try this.
The video says all needed expertise is in the room, which is awesome. Is this in the form of generalizing specialists, so that some people are from, say, more of a testing discipline, some from programming, some from UX design, whatever? It looks like your customer is just there when you need examples of desired and undesired behavior, extra-functional requirements and the like. I assume the team is doing TDD (and maybe ATDD/SBE?) together. What about testing activities such as exploratory testing, performance testing, all the kinds of testing?
You’ve probably blogged about all that somewhere and I just haven’t taken time to read it!
We have all the expertise we need. It is up to the team to decide what that means, of course. Right now we have two developers who have a testing background, and that is very useful. However, I don’t think the background matters as much as the ability to get the needed work done at the quality level required.
We do TDD, as you assumed. Most of our work is 100% covered with unit tests. Much of our automated testing goes beyond TDD, as we also do scenario testing using Approval Tests.
The customer is part of the team, and we collaborate with them to be able to have answers to questions very quickly. Sometimes they sit with us, sometimes they are available via phone or IM or screen sharing. We find a way to do whatever is required to get rapid feedback on any questions.
If you are ever in the area, please drop by and visit.
Mail (will not be published) (required)