Loading ...
Sorry, an error occurred while loading the content.
 

[extremeprogramming] Re: A second pair of eyes

Expand Messages
  • paton
    Pair programming looks as if it is twice as expensive as solo programming so the gains have to be justified. I think much of the advantage of pair programming
    Message 1 of 12 , Jan 28 12:10 PM
      Pair programming looks as if it is twice as expensive as solo programming so
      the gains have to be justified.

      I think much of the advantage of pair programming (the second pair of eyes)
      can be had by using
      tools like LINT, code Wizard, code Integrity, and (my favourite) Code Check
      by Abraxas software

      [BTW - I write automatic code inspection systems - so if you hear an axe
      being ground, that's what the noise is.]

      So .. here' s what I want to know

      what sort of things does the second pair of eyes say to the first pair of
      eyes in pair programming.
      waht fraction of these things are uniquely human?

      Keith Paton
      Paton System Design

      -----Original Message-----
      From: Dave Thomas <Dave@...>
      To: extremeprogramming@egroups.com <extremeprogramming@egroups.com>
      Date: January 28, 2000 2:14 PM
      Subject: [extremeprogramming] Re: Soul of pair programming (was: Soul of XP
      [was Coding Standards])


      >"Ken Auer" <kauer@...> writes:
      >
      >> > > On the other hand, just because the rules might not be perfect, it
      >> > > doesn't mean they can be changed to something that's less effective
      >> > > in order to get better results.
      >> >
      >> > Now, I thought the only measure that counted in XP _was_ results...
      >>
      >> Maybe I miscommunicated (or maybe I didn't see the tongue in your cheek).
      >> If you use less effective rules, you WON'T get better results.
      >
      >There's actually a serious point in all this. Without the ability to
      >experiment with the rules, you'll never know if a change is effective
      >or not. That way, the methodology won't be able to evolve. And things
      >that don't evolve (in general) die.
      >
      >
      >
      >Dave
      >
      >------------------------------------------------------------------------
      >To Post a message, send it to: extremeprogramming@...
      >To Unsubscribe, send a blank message to:
      extremeprogramming-unsubscribe@...
      >
      >------------------------------------------------------------------------
      >Get what you deserve with NextCard Visa! Rates as low as 2.9%
      >Intro or 9.9% Fixed APR, online balance transfers, Rewards Points,
      >no hidden fees, and much more! Get NextCard today and get the
      >credit youdeserve! Apply now! Get your NextCard Visa at:
      >http://click.egroups.com/1/912/0/_/263270/_/949086842/
      >
      >-- Easily schedule meetings and events using the group calendar!
      >-- http://www.egroups.com/cal?listname=extremeprogramming&m=1
      >
      >
      >
    • Phlip
      ... eyes) ... Check ... So how about when that second pair of eyes points out Hey, you configured that Lint script wrong. It s gonna miss
      Message 2 of 12 , Jan 28 12:24 PM
        "paton" wrote:

        > I think much of the advantage of pair programming (the second pair of
        eyes)
        > can be had by using
        > tools like LINT, code Wizard, code Integrity, and (my favourite) Code
        Check
        > by Abraxas software

        So how about when that second pair of eyes points out "Hey, you
        configured that Lint script wrong. It's gonna miss <something
        horrible>!"?

        --Phlip
      • Mark Muday
        ... so ... Actually, it s not. There has been research (yes, real numbers!) that indicates that programmer hour-wise, it ends up being
        Message 3 of 12 , Jan 28 1:00 PM
          <Keith Paton writes...>
          > Pair programming looks as if it is twice as expensive as solo programming
          so
          > the gains have to be justified.

          Actually, it's not. There has been research (yes, real numbers!) that
          indicates that programmer hour-wise, it ends up being less than 20% more
          expensive. See http://www.cs.utah.edu/~lwilliam/Papers/XPSardinia.PDF for
          details.

          Furthermore, I would expect the extra time would decrease with more pair
          programming experience.

          > I think much of the advantage of pair programming (the second pair of
          eyes)
          > can be had by using
          > tools like LINT, code Wizard, code Integrity, and (my favourite) Code
          Check
          > by Abraxas software

          Not really. If programming were only about syntax then software tools would
          be all that was needed.

          But software can't:
          1) check for bad design decisions (Do The Simplest Thing That Could Possibly
          Work),
          2) discourage needlessly speculative generality (You Aren't Going To Need
          It),
          3) force you to write tests that prove your work does what you say it does,
          or what you want it to do (not without changing the language, anyway)

          Furthermore, it can't help you out and give you moral and strategic support
          when you have to make Big Scary Decisions.

          Having a partner while you're coding and doing design is invaluable because
          it helps to keep Bad Ideas from flourishing. (e.g., "Hey, wouldn't it be
          simpler and easier if we just did x?")

          Cheers,
          -Mark

          ----
          Mark Muday
          Principal Engineer
          Thoughtstar, Inc.
          email: mark@...
          phone: 801.255.4700 x714
          fax: 801.255.4775

          http://www.thoughtstar.com

          -Slackers just won't understand-
        • Erik Meade
          Is it okay to link to this? It would be great for c2.com, and I have a few people I would like to email it too. See
          Message 4 of 12 , Jan 28 1:54 PM
            Is it okay to link to this? It would be great for c2.com, and I have a few people
            I would like to email it too.

            See http://www.cs.utah.edu/~lwilliam/Papers/XPSardinia.PDF for details.

            Erik
          • Robert C. Martin
            ... Two runners, running together tend to drive each other to excellence. One runner running against a robot... Your pair partner is another human being,
            Message 5 of 12 , Jan 28 2:21 PM
              > -----Original Message-----
              > From: paton [mailto:paton@...]

              > what sort of things does the second pair of eyes say to the
              > first pair of
              > eyes in pair programming.
              > waht fraction of these things are uniquely human?

              Two runners, running together tend to drive each other to excellence.
              One runner running against a robot...

              Your pair partner is another human being, capable of recognizing fear,
              self confidence, laziness. Thus they can offer support in situations
              that you are unsure of, settle your fears with their own knowledge, urge
              you to caution when you become careless, encourage you when you get
              tired, or lazy, and recommend you step away when you get tired or angry.
              What your pair partner give you is another *perspective*.

              Are *lint* tools good? Yes. Should pairs use them? Yes. Pairs are
              not competition for code checkers. Code checkers are tools for pairs.


              Robert C. Martin | OO Mentoring | Training Courses:
              Object Mentor Inc. | rmartin@... | OOD, Patterns, C++,
              Java,
              PO Box 85 | Tel: (800) 338-6716 | Extreme Programming.
              Grayslake IL 60030 | Fax: (847) 548-6853 |
              http://www.objectmentor.com

              "One of the great commandments of science is:
              'Mistrust arguments from authority.'" -- Carl Sagan
            • Junilu Lacar
              paton wrote: original article:http://www.egroups.com/group/extremeprogramming/?start =1057 ... programming so ... This seems to be a
              Message 6 of 12 , Jan 30 3:10 AM
                "paton" <pato-@...> wrote:
                original article:http://www.egroups.com/group/extremeprogramming/?start
                =1057
                > Pair programming looks as if it is twice as expensive as solo
                programming so
                > the gains have to be justified.

                This seems to be a typical reaction to pair programming. Someone asked
                me "Do you really think a project manager would bear the cost of a
                double head count?"

                If you go to a project manager and say, "I need X people to complete
                these tasks in 3 weeks." without telling him/her anything about pair
                programming, how much justification do you need? Typically, you just
                need to show that there are enough tasks to occupy everybody
                individually. So why object to having the same team work on the same
                set of tasks in a different way, i.e. by pairs?

                And isn't it funny how the knee-jerk reaction of many project managers
                when faced with an approaching deadline and an unfinished, low-quality
                product is to add more people anyway? They might even add more
                processes for good measure, but that's another thread.

                Junilu
              • Phlip
                [About your subscription settings, don t you just read the thread summaries and then use the Index feature on the Web page to pull the threads? I d use Open In
                Message 7 of 12 , Jan 30 6:27 AM
                  [About your subscription settings, don't you just read the thread
                  summaries and then use the Index feature on the Web page to pull the
                  threads? I'd use Open In New Window there...]

                  From: Junilu Lacar


                  > This seems to be a typical reaction to pair programming. Someone
                  asked
                  > me "Do you really think a project manager would bear the cost of a
                  > double head count?"

                  Up until XP, even the best managers trained themselves to think of
                  everyone as "cogs in the machine" - exploiting code ownership so
                  everyone writes that part of the project they'r qualified to. So the
                  worst typical reaction is "how's the machine going to work if you take
                  this cog out and put it next to that cog???"

                  The answer is each work unit is still qualified and still fulfilling
                  that role, even if they are now sometimes doing it from a copilot's
                  seat.

                  > If you go to a project manager and say, "I need X people to complete
                  > these tasks in 3 weeks." without telling him/her anything about pair
                  > programming, how much justification do you need?

                  Changing your language affects everything. Get permission. Changing one
                  little functions affects its clients. That's a technical decision you
                  are empowered to make. Between the two extremes PP will fall. But
                  because one or two experiments doing it can't possibly hurt everything
                  that's within the range of technical decisions you are empowered to
                  make. But if you are caught, just say, "We're going faster like this."

                  Your boss will now say, "I thought you were qualified! What did I hire,
                  two half programmers?"

                  > And isn't it funny how the knee-jerk reaction of many project managers
                  > when faced with an approaching deadline and an unfinished, low-quality
                  > product is to add more people anyway? They might even add more
                  > processes for good measure, but that's another thread.

                  The knee most typically jerks in the direction of BigDesignUpFront. This
                  has the added benefit of cutting the time you have left to code in half,
                  without providing anything that helps you during that time.

                  Phlip
                  ======= http://users.deltanet.com/~tegan/home.html =======
                • Fred George
                  From: paton [mailto:paton@total.net] I think much of the advantage of pair programming (the second pair of eyes) can be had by using tools like LINT, code
                  Message 8 of 12 , Feb 1, 2000
                    From: paton [mailto:paton@...]

                    "I think much of the advantage of pair programming (the second pair of eyes)
                    can be had by using
                    tools like LINT, code Wizard, code Integrity, and (my favourite) Code Check
                    by Abraxas software"

                    "what sort of things does the second pair of eyes say to the first pair of
                    eyes in pair programming.
                    waht fraction of these things are uniquely human?"

                    In my experience, there is a lot of comments of the form "You missed the
                    semicolon" or "You misspelled the variable xxxx". I would like to see tools
                    eliminate that sort of input. The VA Java 3.0 command completion has
                    eliminated many of my typing errors.

                    So what is left for a partner to say intelligently? "Why?" is a good
                    question. Explain the design to the partner to present an opportunity for
                    improvement. I share some of Ron's experiences that even the most junior
                    partners can make sound contributions.

                    My overall feelings on the subject are best summed up from a recent Orson
                    Scott Card book: "One mind thinking alone rarely surprises itself."

                    Fred
                    mailto:FredGeorge@...
                  • Mike Schneider
                    Fred, The big advantage from the second pair of eyes may lie in the roles that you play. The person at the keyboard is thinking tactical: I need this loop to
                    Message 9 of 12 , Feb 1, 2000
                      Fred,

                      The big advantage from the second pair of eyes  may lie in the roles that you play.

                      The person at the keyboard is thinking tactical:
                          I need this loop to walk over all of the items on the list.
                       

                      The second pair of eyes is thinking strategic:
                          What test cases will be affected by this code being written, do I have to update
                           the users guide/api guide for this changes?   Is this change we are making
                           aligned with the current metaphor of the system?  Is the metaphor still correct,
                            or does it need to be "refactored"?
                       

                      Dijkststra  used the terms pondering and reasoning.

                      Where reasoning is where you refine your task, by drilling down into the detail.  You
                      drill down from concept to implementation, refining your current problem.  In software,
                      this is coding.  An important note:  When reasoning, you do not make conceptual jumps.
                      You refine your current plan.
                       

                      Pondering is when you step back, look at the problem, and ask:  Is there a better way?
                      Is this change I am about to make in line with the metaphor? As we are drilling down,
                      should we keep drilling?  Is our path correct?   Pondering is where you make you
                      conceptual jumps.  Design patterns come from culling the results of your drilling down,and
                      finding the common elements of your N drill down code sessions.  I often refer to deep
                      pondering as the "Time walking the halls with a cup of coffee".
                       
                       

                      So if you look at software development as "Pondering" and "Reasoning" where you
                      get things done when Reasoning, or coding, but you make conceptual jumps when
                      Pondering you have to ask the questions.  "How can my organization ponder and reason
                      at the same time?"

                      An answer:  Pair Programming

                      One person (the one at the keyboard) has a plan to refine an idea into code {Reasoning}.
                      This person will flat out fly if they can simply implement the idea, without getting
                      lost in the pondering.   The other person is watching their back on the pondering side,
                      the keep the big picture in their head.
                       

                      At any instance in time, we either ponder or reason, but never both at the same time ( we
                      can switch back and forth quickly sometimes).  Pair programming allows for
                      both activities to occur at the same time at one keyboard.

                      That is a "Good Thing" for a software development project.  That seems to be the big
                      win we are seeing right now from pair programming.

                      I am curious about other peoples experiences in this area,

                      thanks,
                      Mike

                      Fred George wrote:

                      From: paton [mailto:paton@...]

                      "I think much of the advantage of pair programming (the second pair of eyes)
                      can be had by using
                      tools like LINT, code Wizard, code Integrity, and (my favourite) Code Check
                      by Abraxas software"

                      "what sort of things does the second pair of eyes say to the first pair of
                      eyes in pair programming.
                      waht fraction of these things are uniquely human?"

                      In my experience, there is a lot of comments of the form "You missed the
                      semicolon" or "You misspelled the variable xxxx".  I would like to see tools
                      eliminate that sort of input.  The VA Java 3.0 command completion has
                      eliminated many of my typing errors.

                      So what is left for a partner to say intelligently?  "Why?" is a good
                      question.  Explain the design to the partner to present an opportunity for
                      improvement.  I share some of Ron's experiences that even the most junior
                      partners can make sound contributions.

                      My overall feelings on the subject are best summed up from a recent Orson
                      Scott Card book: "One mind thinking alone rarely surprises itself."

                      Fred
                      mailto:FredGeorge@...

                      ------------------------------------------------------------------------
                      To Post a message, send it to:   extremeprogramming@...
                      To Unsubscribe, send a blank message to: extremeprogramming-unsubscribe@...

                      ------------------------------------------------------------------------
                      FREE ADVICE FROM REAL PEOPLE!  Xpertsite has thousands of experts who
                      are willing to answer your questions for FREE.  Go to Xpertsite today and
                      put your mind to rest.
                      http://click.egroups.com/1/1033/0/_/263270/_/949412204/

                      -- Easily schedule meetings and events using the group calendar!
                      -- http://www.egroups.com/cal?listname=extremeprogramming&m=1

                      -- 
                      ==============================================================================
                      Michael L. Schneider                      Email: Michael.Schneider@...
                      Structural Dynamics Research Corp         Tel:   (513) 576-2935
                      Milford OH, 45150                         Group: Software Process Group
                      
                        "The best performance improvement is the transition from the 
                         nonworking state to the working state" - John Ousterhout
                       
                    • Fred George
                      From: michael.schneider@sdrc.com [mailto:michael.schneider@sdrc.com] The big advantage from the second pair of eyes may lie in the roles that you play. The
                      Message 10 of 12 , Feb 2, 2000
                        From: michael.schneider@... [mailto:michael.schneider@...]

                        "The big advantage from the second pair of eyes may lie in the roles that
                        you play.
                        The person at the keyboard is thinking tactical:
                        I need this loop to walk over all of the items on the list.

                        The second pair of eyes is thinking strategic:
                        What test cases will be affected by this code being written, do I have
                        to update
                        the users guide/api guide for this changes? Is this change we are
                        making
                        aligned with the current metaphor of the system? Is the metaphor still
                        correct,
                        or does it need to be "refactored"? "

                        I understand the theory. But my XP _experience_ is that the second pair of
                        eyes has trouble resisting the punctuation comments. I myself try hard to
                        keep quiet, but such errors _distract_ from my larger-picture thinking.
                        It's just like seeing a presentation with a spelling error in the title...
                        you miss the larger point of the slide.

                        I would like to see smarter tools that I could trust (as the second pair of
                        eyes) so I would be freed from punctuation distraction. MS Word's
                        auto-correct of common spelling errors is the model I am after. VA Java is
                        the closest yet, but I want more...

                        Fred
                        mailto:FredGeorge@...
                      • Ron Jeffries
                        ... I don t mind the punctuation corrections or spelling corrections at all. It s part of the help. The trick is just to say semi or I d use the American
                        Message 11 of 12 , Feb 2, 2000
                          At 09:02 PM 2/2/2000 -0500, you wrote:
                          >I understand the theory. But my XP _experience_ is that the second pair of
                          >eyes has trouble resisting the punctuation comments. I myself try hard to
                          >keep quiet, but such errors _distract_ from my larger-picture thinking.
                          >It's just like seeing a presentation with a spelling error in the title...
                          >you miss the larger point of the slide.

                          I don't mind the punctuation corrections or spelling corrections at all.
                          It's part of the help. The trick is just to say "semi" or "I'd use the
                          American spelling of that".

                          And it's very important for my partner to correct Jeffries Error #1,
                          leaving the ^ off a method that has to return a value.

                          R

                          Ron Jeffries
                          Extreme Programming Training and Consultation
                          www.XProgramming.com
                        • Nathaniel Talbott
                          [I don t quite qualify as a lurker, since I joined after that message was posted (I ve managed to read it in replies). Just by way of quick introduction,
                          Message 12 of 12 , Feb 5, 2000
                            [I don't quite qualify as a lurker, since I joined after that message was
                            posted (I've managed to read it in replies). Just by way of quick
                            introduction, though, I'm young (no number, you'll have to guess!), an
                            apprentice at RoleModel Software (Ken Auer's company), and an ardent
                            supporter and user of XP. Currently I'm practicing it on a project of about
                            10 people.]

                            > At 09:02 PM 2/2/2000 -0500, you wrote:
                            > >I understand the theory. But my XP _experience_ is that the
                            > second pair of
                            > >eyes has trouble resisting the punctuation comments. I
                            > myself try hard to
                            > >keep quiet, but such errors _distract_ from my
                            > larger-picture thinking.
                            > >It's just like seeing a presentation with a spelling error
                            > in the title...
                            > >you miss the larger point of the slide.
                            >
                            > I don't mind the punctuation corrections or spelling
                            > corrections at all.
                            > It's part of the help. The trick is just to say "semi" or
                            > "I'd use the
                            > American spelling of that".
                            As with many subtleties of pair programming, I think this should be tailored
                            to the specific person you're working with. I adjust my pairing role from
                            person to person. For example, when with one pair, I know it distracts him
                            if I correct punctuation as he types, so I might correct it before he saves
                            the method, or I might just let the instant compilation catch it (we're
                            using VAJava). OTOH, another pair and I have an informal competition where
                            we not only get on each other for wrong punctuation, but also if one of us
                            enters code in an inefficient manner. OAH, when I pair with Mr. Auer, he
                            often has more of the task in his head than I do, so I'm often just trying
                            to follow along and understand what he's doing so I can suggest alternates,
                            correct flaws, and ask/answer questions. Typically this doesn't leave me
                            much time to correct punctuation.

                            It comes down to good communication. Talk with your pair as you go along,
                            and learn how best to help one another achieve the tasks at hand. Work to
                            complement the other person, not duplicate and/or oppose them.

                            "Two are better than one; because they have a good reward for their labor.
                            For if they fall, the one will lift up his fellow: but woe to him that is
                            alone when he falleth; for he hath not another to help him up." -- Solomon,
                            Eccl. 4:9,10


                            Nathaniel Talbott

                            <:((><
                            + - - + - -
                            | RoleModel Software, Inc. & | EQUIP VI
                            | The XP Software Studio(TM) |
                          Your message has been successfully submitted and would be delivered to recipients shortly.