http://qs321.pair.com?node_id=187226

Some of the best debugging techniques are those that help us debug our own thinking.

One of my favorites is a simple variant on the standard dictum that you don't really understand a problem unless you've thought of at least three ways to solve it.

Before debugging an anomaly in a black box, think of at least three logical explanations for the behavior you're seeing.
The simple act of pausing to think this through can open up one's mind to possibilities that might otherwise be missed in a focused hunt for one particular cause. With multiple explanations in hand, we're in a better position to prepare debugging strategies. The second or third potential cause we think of might suggest a simple debugging approach that can save hours when compared to our initial impulse.

Another beauty of this technique is that it works on people.

People as black boxes? Sure, why not? We can't see others' inner processes, we can only observe some of the input, and some of the output.

The next time you get into an anomalous interaction with another person, before you react according to your first instinct, try this

Assume that what they're saying is true from their experience and perspective. Think of at least three things that might be true to them that would explain what you're observing.
When we pause to ask this question, in reality we're debugging your own thinking and biases.

Try this the next time you get into an interaction that confuses you, and see if you don't discover new options. For (safe) practice, try it the next time you run into a weird SoPW post.

Replies are listed 'Best First'.
Re: On Debugging People
by jordanh (Chaplain) on Aug 04, 2002 at 13:55 UTC

      People as black boxes? Sure, why not? We can't see others' inner processes, we can only observe some of the input, and some of the output.

    Just an aside, "People as black boxes" is the basis of Behaviorism, the most successful of the Psychological methodologies, IMVHAPUO (VHAPU = very humble and probably uniformed) .

    See B.F. Skinner.

Re: On Debugging People
by jeorgen (Pilgrim) on Aug 04, 2002 at 17:27 UTC
    It could be argued (as much as you can argue anything in psychology) that people are black boxes to about half the population, those that are thinkers according to the Myers-Briggs test and derivatives. Those of my friends that fall into the thinker approach often treat others as black boxes, especially the ones that fall under the feeler approach; feelers seen as irrational by thinkers when trying to understand the inside. The feelers on the other hand know (that is, believe they know) what others want and think.

    I know the above statemets are a bit sweeping and exaggerated, but the black box metaphor works better for some people than others.

    /jeorgen

      feelers seen as irrational by thinkers when trying to understand the inside

      Hmmm. I disagree with this statement. If, as a thinker, you can understand how the person feels about a thing then you can guess about their reaction to the stimuli. This just requires more "internal debuuging", that's all. For instance, if Joe gets a new assignment at work and is upset, it might seem irrational to a thinker at first; however, if we consider that Joe is a Linux zealot and his assignment is to write a Winows 2000 website, then his unhappiness might not seem irrational after all. We can simply assign his attribute as a Linux zealot to another one of the "input channels" to analyze. -SM
        Are you familiar with the Myers_Briggs (or Jungian) way of separating thinking and feeling? "Thinking" and "feeling" are two decision making strategies. What it means is essentially that when faced with a questionnaire, about half indicate that they prefer taking decisions on objective criteria and half that they let relationships take precedence, even if it's "illogical". A person tends to answer these questionnaires consistently over long time periods too.

        Thinkers generally, and this is from what I hear from my friends who are prevalently thinkers, tend to analyse others as "black boxes", and often lets off steam about how hard it is for them to understand certain people. They have a tendency to resort to mapping out what motives they can have.

        I take part in a big BBS about non-perl topics. In these discussion fora - in extreme cases - the thinkers (not all) have a tendency to hurt people (inadvertently) and call others "idiots". Feelers on the other hand are more sensitive to these issues, but appear mushy and put wishful thinking before rational analysis sometimes. Most people are OK of course. I have tested some of these people with questionnaires so I know whether they are thinkers or not :-).

        You write:

        For instance, if Joe gets a new assignment at work and is upset, it might seem irrational to a thinker at first; however, if we consider that Joe is a Linux zealot and his assignment is to write a Winows 2000 website, then his unhappiness might not seem irrational after all. We can simply assign his attribute as a Linux zealot to another one of the "input channels" to analyze.

        ...and this is what a thinker would write. Problem is: Do you have the processing power to do it? Or rather, that is not the problem, you most likely do, but what happens sometimes is that you think you have mapped the person out, but you haven't. A feeler instead concentrates on the tone and body language of the person and does not rely on so much data. Both approaches have there place. When I and a friend discovered this thinking-feeling dichotomy we realise why we complemnet each other so well. He is a thinker and he knows a lot about motives, and I can warn him when he's going over the edge in a relationship (I'm a feeler).

        Note that of course all people are both thinking and feeling, but in order to function normally and get anywhere in our lives we let one of them take precedence over the other, in order to avoid getting deadlocked in decision making conflicts. Anyways that is the general idea behind the theory, although in many ways it is best suited to self-knowledge.

        /jeorgen

      I think the main point, and it may be getting lost in the discussions over different psychological schools of thought, is simply to question your assumptions. What's going on inside someone's head is not measurable or provable in the sense that the atomic weight of Uranium is, and there are inevitably parts to the whole that you have no idea exist. (Just to throw gestalt psych into the hopper.)

      It's a good idea in experimentation (including experimental psych) - don't just have a null hypothesis, but have a secondary competing hypothesis that isn't simply a straw man, when putting your own theories to the test. When you're debugging and you get stuck, its when you start actively coming up with these alternative explanations that you begin to hit the real problem.

      Update: Re-reading the thread, I think I misunderstood something in the discussion and I'm just non-sequitizing here, and repeating dws. (And making up words like 'non-sequitizing'.) By way of salvaging the post, let me add that whether someone is a thinker or feeler seems to me to be independent of whether or not they really question their assumptions or first judgements.

      -- Frag.
      "Oh. Never mind." -- Miss Emily Latella.

Re: On Debugging People
by tbone1 (Monsignor) on Aug 05, 2002 at 13:34 UTC
    I've found this approach to work very well, particularly when I have to deal with people whose thought processes are different, if the processes exist at all. Remember, people's actions may not make sense to you, but to that person, there is an internal logic to it. Find that, and you've solved half of the problem.

    I've also had good results appealing to their basic character, or lack thereof. I once had a marketing director say that I would get no time to test code because it should work right the first time. (This was software that dealt with the phone company's 911 database.) My response was "Gosh, that's awfully brave! Thank you for not thinking that I'm clueless."

    I got twice the requested testing time after that.

    --
    tbone1
    As God is my witness, I thought turkeys could fly.

Re: On Debugging People
by tjh (Curate) on Aug 02, 2002 at 21:54 UTC
    Very nice.++

    Also, wish I knew where to find "People::UnitTest kits". :)

Re: On Debugging People
by stefp (Vicar) on Aug 05, 2002 at 14:12 UTC
    I have found very interesting to read the RFCs in light of the apocalypses. RFCs focuse on some specific problems and propose specific answers. On the light of a more encompassing thought by brillant spirit, the problems are solved in a more general way. In a sense the apocalypses can be seen as exercice in debugging people. Note that as apocalypses progress, more and more distance is taken from the RFCs because they progressively become irrelevant even if they have probably been instrumental in charting the territory to be covered.

    What strikes me about human thought is that we tend to focus on concrete minor points we are confortable with and often lack a general understanding. For example, people tend to barks at minor changes in Perl6 like the underscore replacing the dot for concatenation. They don't see that the dot has better uses elsewhere (OO programming).

    This nodelet is interesting because it proposes to take some distance from the problem at hand to find different perspectives. Only the word debug is ill choosen because what is proposed is more than simple debugging.

    It is about always rethinking the frame of references. I want to contrat here innovation and creation.

    Current economic paradigms encourage innovation and despise creation. Innovation is incremental. It is the same old stuff with the last bug fixes in a new wrapping. It is a steady source of income for the innovator. The more broken the better it is because the customer will have to buy the next release.

    Creation is a more difficult process with an uncertain outcome. But there lies the long term value. Perl6 is definitevely about creation. But creation is definitively to be feared. Because it requires people and institutions to change their habit. It takes time. It challenges hard-won positions.

    Interestingly enough. Microsoft promotes innovation not creation. Think innovation as a dirty word. We want the freedom to create.

    -- stefp -- check out TeXmacs wiki

Re: On Debugging People
by frag (Hermit) on Aug 03, 2002 at 23:48 UTC
    It occurs to me that the next time someone points out something I've done wrong, and suggests a better way to do it, I'm going to have to resist the urge to say "Thanks, applied."

    -- Frag.

        It occurs to me that the next time someone points out something I've done wrong, and suggests a better way to do it, I'm going to have to resist the urge to say "Thanks, applied."

      A good policy.

      I'd like to add that if someone points out something you've done wrong and you find that this makes you very angry, then you need to carefully examine what they are saying. Chances are, they have a point and it's something you are finding very difficult to accept. You block those things you can't accept with an anger response.

      The other possibility is that what they are saying is a moral outrage, and this makes you angry, but those situations are very rare, in my experience.

Re: On Debugging People
by nat0m (Novice) on Aug 05, 2002 at 11:25 UTC
    There is an realy interesting "language tool" called E-Prime. Look at this if you like this node!