Please leave your own tips, suggestions, wisdom, and anecdotes below—anything that you think would help others avoid important pitfalls, or achieve particularly good outcomes.
My old group debugging guidelines are more oriented towards regular (e.g. weekly) debugging sessions than Hamming circles, but still have a fair bit of overlap.
(Note that this version edited out the “Look for positive and negative reinforcers in the environment” approach which you can find in the original behind the link; I currently think that frame is pointing to something true, but also likely to be more misleading than beneficial.)
Etiquette
Only bring up something if you actually want a solution for it. Everyone has times when they just need to vent and want sympathy rather than solutions, but debugging circles aren’t the place for that. This doesn’t mean that you would need to accept any suggestion that the others bring up, but it does mean that that you should be open to others offering suggestions in general. Once the session ends, you’re free to just ignore and forget anything that didn’t seem to make sense to you.
Be courteous of others and their time. Do your best to make sure that everyone, both you and the others, get a roughly equal share of the group’s attention. If you have lots of problems in your life, don’t dump all of them on the group at once, but rather focus on one or a small set of related ones. If it starts looking like the discussion has gotten stuck on one person’s issues for an extended time and the others might not have a chance to have their issues discussed, gently but firmly suggest moving on to the next person. Try to be considerate enough to pass on your own turn early enough that someone else doesn’t need to prompt you to do so.
If someone is undergoing a particularly difficult time or has a particularly important issue going on, it’s alright to sometimes spend a disproportionate time on them: but you should try to avoid being that person each time.
But have a fair respect of your own time, as well. The opposite also applies: if you genuinely feel that there’s nothing in your life that needs discussing, you’re free to cut your own turn short, but if you do it many occasions in a row, you’re probably not taking full advantage of the group. If nothing else, you can always use the group to get an opinion on any assumptions behind your current plans. You have a right to get help from the group in return for helping others: stick to that right.
Don’t proselytize your view. Maybe you’re completely certain that the cause of the other person’s problems is that they don’t have cat ears as a part of their attire, which would totally fix everything if they just changed that. You’re free to think that, but if they disagree with your suggestion, don’t get stuck arguing but let it go.
Approaches
Start by trying to understand what problem the person is trying to solve. “I’ve been trying to sign up for dance lessons but can never seem to get around it.” One possible approach would be to immediately start offering ways for the person to sign up for dance lessons. Often a more fruitful one would be to first ask—why do you want to attend dance lessons? Maybe it turns out that the person doesn’t actually care about learning to dance, but is feeling bad because their friend, a great dancer, always gets all the attention at parties. Then the actual problem is not “how to learn to dance” but “how to get other people to notice me”. It’s quite possible that not knowing to dance isn’t actually the biggest issue there.
Test your understanding of the problem. When you’re formulating an understanding of the problem, it can be useful to frequently verbalize it to the other person to make sure that you’ve understood correctly. “So you seem to be feeling bad because your partner just became the President of your country while you mostly spend time playing video games, is that right?”
A rule of thumb that I sometimes use is “do I feel like I understand this problem and its causes well enough that I could explain to a third person why this person wants to solve it and why they haven’t been able to solve it yet?” If the answer is no, hold off proposing solutions and try asking more questions first.
Even “obvious” problems may benefit from questions. Someone once mentioned that they tend to often jump to being critical of others, which tends to be harmful. Here the causal mechanism seemed to be pretty obvious, but asking “how does it tend to be harmful” was still useful in bringing out details of the exact nature of the typical criticism and how people tended to react to that.
Look for trigger-action patterns. “I always end up being on the computer and wasting time and then feeling bad.” What specific things on the computer act as time-wasters, and how exactly does the person end up doing those things? Maybe they often feel bored or anxious, which causes them to open Facebook, which causes them to get lost in a maze of discussions and links. Would there be a way to either remove the anxiety, or find a new action to carry out when anxious? Which one would be easier?
Be specific about the causes of emotional reactions. “My boss is so full of himself, it drives me nuts.” Exactly how does the full-of-himself-ness manifest? If the exact behavior is “he often interrupts”, maybe something could be done about that thing in particular. Best case: the boss comes from a conversational culture where interrupting is normal, and hasn’t even realized that someone would consider it rude—but this would have been impossible for the others to suggest if the problem description would only have been on the level of “he’s so full of himself”.
This is also a useful technique for reducing your own annoyance at others, even if it was just something you did in your head. “I’m getting frustrated now because that person is talking really loudly and I would like to read.” Breaking down an atomic “AAAAAGH I’M SO FRUSTRATED” into a “I’m feeling [specific emotion] because [specific cause] and [that violates my desire/need to something]” is not only useful for debugging, it can also relieve the frustration by itself.
Assume that problems won’t fix themselves. In one session, someone says they intend to implement some change for next week’s meeting. In the next session, they say, “yeah, that plan didn’t really work out, but I was kinda busy and distracted this week. I’m going to try harder.”
Chances are, if they were busy and distracted this week, they’re likely to be busy and distracted the next week, too. “I’m going to try harder” often translates either as “I don’t actually care about solving this problem but want to give the impression that I do”, or alternatively, “I don’t actually know how to fix this but I’m going to try again the same way, in the hopes of magically getting a different result now”. Assuming that the person really does want to solve their problem, try to figure out exactly what went wrong and how it could be avoided in the future.
Ask, “is there a more general problem here?” Someone wants to cut down on the amount of money that they spend on fast food. One day when they’re coming home from work they walk past a hamburger place, are tempted by the advertisements, and go there to eat. This happens several times.
The specific problem in this case would be “I always end up eating at the Burger King on the 27th street on my way home”. The more general form of the problem might be something like “each time I walk past a fast food place when I’m hungry, I end up eating there”. General solutions might be “pick a route that allows you to avoid seeing fast food places when you’re hungry” and “make sure to carry something with you that allows you stave off the worst of the hunger until you’re home”.
Focusing. Someone is having difficulties deciding whether to try to solve a problem or whether to accept its consequences and let it be. One approach would be to have them verbalize all the reasons why the unsolved issue bothers them, and then say out loud, “having considered all of these consequences of the problem, I find that they’re acceptable and it’s better to just let this be”. Does saying that feel right to them, or does something about it feel wrong? What if they were to say, “having considered all of these consequences of the problem, I find that they’re unacceptable and I want to solve the problem”, instead? Would that feel right or wrong?
Quick Murphyjitsu. After you’ve come up with a plan, it may be useful to have the other person do a quick Murphyjitsu on it. How surprised would they be if this plan failed? If not particularly, is there any obvious failure mode that comes to mind and which could be fixed?
Check that the person remembers something actionable. Sometimes discussion may suggest some actionable things, then drift to e.g. more general discussion of the problem which doesn’t provide as many concrete suggestions. If this happens, make sure that the person whose problems are being debugged still remembers the actionable suggestions they got earlier on.
My old group debugging guidelines are more oriented towards regular (e.g. weekly) debugging sessions than Hamming circles, but still have a fair bit of overlap.
(Note that this version edited out the “Look for positive and negative reinforcers in the environment” approach which you can find in the original behind the link; I currently think that frame is pointing to something true, but also likely to be more misleading than beneficial.)