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

New to XP - Advice on Pair Programming

Expand Messages
  • schenectady72
    Hi all - I am a project manager new to XP. We are using it and we love it, but are kind of stumped about how to make pair programming really work. Currently we
    Message 1 of 14 , Feb 22, 2002
    • 0 Attachment
      Hi all - I am a project manager new to XP. We are using it and we
      love it, but are kind of stumped about how to make pair programming
      really work. Currently we have 1 really strong programmer who has
      been using pair programming to teach other individuals (he will talk
      through while he is coding, and the other programmer takes notes,,
      asks questions, etc.) So we are really using it to "train" so to
      speak. But how does it work with 2 programmers of the same level /
      ability? We are worried it will slow down our iteration time
      (currently 3 weeks). Would love to hear how it has worked for others -
      especially with a small team (we currrently have 3 people.) Thanks! S
    • alex@jguru.com
      ... What can I say? It works for me. Just make sure one person doesn t hog the keyboard the whole time, and jump in and try it for yourself. Sounds like
      Message 2 of 14 , Feb 22, 2002
      • 0 Attachment
        On Fri, Feb 22, 2002 at 03:58:01PM -0000, schenectady72 wrote:
        > Hi all - I am a project manager new to XP. We are using it and we
        > love it, but are kind of stumped about how to make pair programming
        > really work. Currently we have 1 really strong programmer who has
        > been using pair programming to teach other individuals (he will talk
        > through while he is coding, and the other programmer takes notes,,
        > asks questions, etc.) So we are really using it to "train" so to
        > speak. But how does it work with 2 programmers of the same level /
        > ability? We are worried it will slow down our iteration time
        > (currently 3 weeks). Would love to hear how it has worked for others -
        > especially with a small team (we currrently have 3 people.) Thanks! S
        >

        What can I say? It works for me. Just make sure one person doesn't
        hog the keyboard the whole time, and jump in and try it for yourself.

        Sounds like maybe your star doesn't want to let the other guy drive.
        If they need convincing, there are studies and anecdotes reported at
        http://c2.com/cgi/wiki?PairProgramming

        See also http://c2.com/cgi/wiki?PairProgrammingIsDoneByPeers : "When a
        very senior person pairs with a beginner, the senior person is
        tutoring the beginner. This can be good, but it is not a typical
        example of pair programming. ... Yes, one rule of thumb I heard was to
        pair people at 1 level apart, and have the weaker partner do most of
        the driving. However, even if this isn't done, there is evidence to
        support that two people of equal levels will still learn from each
        other, presumably because each person has unique strengths and
        weaknesses (see LaurieWilliams' research). ... The point is not that
        they are identical (or even very similar) in skill, but that they view
        each other as equals. This is to promote collaboration and reduce
        frustration."

        --
        Alex Chaffee mailto:alex@...
        jGuru - Java News and FAQs http://www.jguru.com/alex/
        Creator of Gamelan http://www.gamelan.com/
        Founder of Purple Technology http://www.purpletech.com/
        Curator of Stinky Art Collective http://www.stinky.com/
      • cmelinn
        I m sure others will have more specific advice, but I posted a similar thread a week or so ago. Try reading the thread starting with message #43534 on Bill
        Message 3 of 14 , Feb 22, 2002
        • 0 Attachment
          I'm sure others will have more specific advice, but I posted a
          similar thread a week or so ago. Try reading the thread starting
          with message #43534 on "Bill Rate with Pair Programming" and message
          #43569'Addressing "Spread Thin"'.

          I'm excited to see how things progress for us as well. Hope to let
          everyone know how it goes.

          Good Luck!
          Chris

          --- In extremeprogramming@y..., "schenectady72" <schenectady72@y...>
          wrote:
          > Hi all - I am a project manager new to XP. We are using it and we
          > love it, but are kind of stumped about how to make pair programming
          > really work. Currently we have 1 really strong programmer who has
          > been using pair programming to teach other individuals (he will
          talk
          > through while he is coding, and the other programmer takes notes,,
          > asks questions, etc.) So we are really using it to "train" so to
          > speak. But how does it work with 2 programmers of the same level /
          > ability? We are worried it will slow down our iteration time
          > (currently 3 weeks). Would love to hear how it has worked for
          others -
          > especially with a small team (we currrently have 3 people.) Thanks!
          S
        • Rick Hightower
          Pairing seems to be the toughest concept for new XPer to adopt. ... love it, but are kind of stumped about how to make pair programming really work. . . .We
          Message 4 of 14 , Feb 22, 2002
          • 0 Attachment
            Pairing seems to be the toughest concept for new XPer to adopt.

            Regarding:
            >> Hi all - I am a project manager new to XP. We are using it and we
            love it, but are kind of stumped about how to make pair programming
            really work. . . .We are worried it will slow down our iteration time
            (currently 3 weeks).


            Initially it will probably slow things down a bit, but your team's speed
            will increase and you will build your team. We find that as we increase our
            framework and IP, pairing makes us go faster--much faster. The reason is the
            communication flow is expanded. Developers don't solve problems that other
            developers already solved. Also, the spread of knowledge amongst developers
            is amazing. Also, reuse is increased, thus; you develop less code and have
            to maintain less. It takes some courage, but take the plunge.

            1) communication increased
            2) code resuse increased
            3) you don't resolve tough issues twice (or more times)
            4) team built up

            I think 2-4 are a result of 1.

            Rick Hightower
            Director of Development
            eBlox, Inc.

            eBlox Tucson
            phone: 520-615-9345 x103
            fax: 520-529-5774

            *******************************************
            * Check out my new book!: *
            * Java Tools for Extreme Programming: *
            * Mastering Open Source Tools, *
            * including Ant, JUnit, and Cactus *
            *******************************************

            http://www.rickhightower.com/JavaXPToolkit/

            Buy it at Amazon:

            http://www.amazon.com/exec/obidos/ASIN/047120708X/rickhightower-20

            The book was written by members of the eBlox team!




            -----Original Message-----
            From: schenectady72 [mailto:schenectady72@...]
            Sent: Friday, February 22, 2002 8:58 AM
            To: extremeprogramming@yahoogroups.com
            Subject: [XP] New to XP - Advice on Pair Programming


            Hi all - I am a project manager new to XP. We are using it and we
            love it, but are kind of stumped about how to make pair programming
            really work. Currently we have 1 really strong programmer who has
            been using pair programming to teach other individuals (he will talk
            through while he is coding, and the other programmer takes notes,,
            asks questions, etc.) So we are really using it to "train" so to
            speak. But how does it work with 2 programmers of the same level /
            ability? We are worried it will slow down our iteration time
            (currently 3 weeks). Would love to hear how it has worked for others -
            especially with a small team (we currrently have 3 people.) Thanks! S


            To Post a message, send it to: extremeprogramming@...

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

            ad-free courtesy of objectmentor.com

            Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
          • ericheikkila
            ... programming ... talk ... notes,, ... level / ... others - ... Thanks! S ... yourself. ... PairProgrammingIsDoneByPeers : When a ... to ... that ... view
            Message 5 of 14 , Feb 22, 2002
            • 0 Attachment
              --- In extremeprogramming@y..., alex@j... wrote:
              > On Fri, Feb 22, 2002 at 03:58:01PM -0000, schenectady72 wrote:
              > > Hi all - I am a project manager new to XP. We are using it and we
              > > love it, but are kind of stumped about how to make pair
              programming
              > > really work. Currently we have 1 really strong programmer who has
              > > been using pair programming to teach other individuals (he will
              talk
              > > through while he is coding, and the other programmer takes
              notes,,
              > > asks questions, etc.) So we are really using it to "train" so to
              > > speak. But how does it work with 2 programmers of the same
              level /
              > > ability? We are worried it will slow down our iteration time
              > > (currently 3 weeks). Would love to hear how it has worked for
              others -
              > > especially with a small team (we currrently have 3 people.)
              Thanks! S
              > >
              >
              > What can I say? It works for me. Just make sure one person doesn't
              > hog the keyboard the whole time, and jump in and try it for
              yourself.
              >
              > Sounds like maybe your star doesn't want to let the other guy drive.
              > If they need convincing, there are studies and anecdotes reported at
              > http://c2.com/cgi/wiki?PairProgramming
              >
              > See also http://c2.com/cgi/wiki?
              PairProgrammingIsDoneByPeers : "When a
              > very senior person pairs with a beginner, the senior person is
              > tutoring the beginner. This can be good, but it is not a typical
              > example of pair programming. ... Yes, one rule of thumb I heard was
              to
              > pair people at 1 level apart, and have the weaker partner do most of
              > the driving. However, even if this isn't done, there is evidence to
              > support that two people of equal levels will still learn from each
              > other, presumably because each person has unique strengths and
              > weaknesses (see LaurieWilliams' research). ... The point is not
              that
              > they are identical (or even very similar) in skill, but that they
              view
              > each other as equals. This is to promote collaboration and reduce
              > frustration."
              >
              > --
              > Alex Chaffee mailto:alex@j...
              > jGuru - Java News and FAQs http://www.jguru.com/alex/
              > Creator of Gamelan http://www.gamelan.com/
              > Founder of Purple Technology http://www.purpletech.com/
              > Curator of Stinky Art Collective http://www.stinky.com/


              I'd tend to agree...when I was the 'mentor', I'd let the other person
              drive for longer periods of time...it seemed to make things sink in
              better than having them sit idle and take notes. When I was on
              the 'student' side, I enjoyed driving, and having them point out the
              landmarks.

              -Eric
            • ralphamack
              ... First, pry the big gun out from behind the keyboard. :-) He ll never learn how to write code that is easy and intuitive for others to pick up until he
              Message 6 of 14 , Feb 22, 2002
              • 0 Attachment
                --- In extremeprogramming@y..., "schenectady72" <
                schenectady72@y...> wrote:
                > Hi all - I am a project manager new to XP. We are using it and
                > we love it, but are kind of stumped about how to make pair
                > programming really work.

                First, pry the "big gun" out from behind the keyboard. :-) He'll
                never learn how to write code that is easy and intuitive for others
                to pick up until he gets to watch and help somebody struggle
                through it. (Yes, learning is _always_ a two-way street.)

                A strong background makes it easy to write code when working
                solo that isn't as simple as it needs to be. Just being in the
                sidecar gives a different perspective. With his broad experience,
                he will probably recognize six or eight refactorings he should
                have done long before but never noticed when he was driving.
                Scribble them down, get a few unit tests in place to cover the fix
                area, and then go for it.

                > We are worried it will slow down our iteration time
                > (currently 3 weeks).

                One of the beauties of variable scope projects is that the code is
                never late. Sometimes you have to tell your customer that it may
                be missing one or two features that would have made it
                otherwise, but it is never late. Then you adjust your velocity so
                you don't promise so much for the next iteration. Customers can
                usually handle this. Their alternative is an approach that leaves
                them with nothing until the full promised functionality was ready,
                tending toward a snowball effect of "hurry up and wait", the
                mighty devourer of projects.

                As people come up to speed, you reach an iteration where you
                have room to squeeze one more little feature beyond what was
                promised and your measured velocity starts to go back up. No
                customer I have ever heard of objects to being asked
                occasionally which of the following items they would like to
                receive an iteration or two early. :-)

                Ralph
              • jeffgrigg63132
                ... will talk ... notes, ... drive. ... of ... person ... the ... Tell your senior developer: LEARN TO SHARE!!! (And play nice, don t hit, take a nap,
                Message 7 of 14 , Feb 23, 2002
                • 0 Attachment
                  > > schenectady72 wrote:
                  > > > [...] Currently we have 1 really strong programmer who has
                  > > > been using pair programming to teach other individuals (he
                  will talk
                  > > > through while he is coding, and the other programmer takes
                  notes,
                  > > > asks questions, etc.) [...]

                  > --- alex@j... wrote:
                  > > [...]
                  > > Sounds like maybe your star doesn't want to let the other guy
                  drive.
                  > > [...] Yes, one rule of thumb I heard was to
                  > > pair people at 1 level apart, and have the weaker partner do most
                  of
                  > > the driving. [...]

                  --- "ericheikkila" <ericheikkila@y...> wrote:
                  > I'd tend to agree...when I was the 'mentor', I'd let the other
                  person
                  > drive for longer periods of time...it seemed to make things sink in
                  > better than having them sit idle and take notes. When I was on
                  > the 'student' side, I enjoyed driving, and having them point out
                  the
                  > landmarks.


                  Tell your "senior" developer: "LEARN TO SHARE!!!"

                  (And play nice, don't hit, take a nap, and so on... ;-)


                  It is *vitally important* that a much more experienced person let the
                  junior person drive most of the time. This is many times as
                  important in a "learning situation" (...than in the ordinary "paring
                  of partners" situation). The learner must *pace* the session, or
                  they won't learn anything. Yes, it will "slow things down" -- but
                  would you rather have a process that rapidly accomplishes NOTHING or
                  an effective process that slowly accomplishes something of value?

                  So the experienced person must learn to "sit on their hands" and hold
                  their tongue while the student thrashes around a little bit. It's a
                  learning experience (for the student). The experienced trainer needs
                  to learn how to offer gentile guidance now and then, and then "hands
                  off" pause for a bit so it can sink in.

                  The senior developer may...
                  * talk
                  * point
                  * draw pictures

                  The senior developer must not:
                  * take the keyboard
                  * run the show
                  * go at their own pace (instead of the student's pace)

                  The senior developer needs to learn to...
                  * shut up (...spoken from repeated personal experience! ;-)
                  * sit back and let the student try it
                  * let the student think for a moment (...and only if they still
                  don't get it, offer some gentile advice.)
                  * restrain yourself (OK, you can shout -- but "only in the inside
                  of your head." ;-)


                  "All I Really Need to Know about Pair Programming I Learned In
                  Kindergarten"
                  http://collaboration.csc.ncsu.edu/laurie/Papers/Kindergarten.PDF
                • Rick Hightower
                  ... Sounds like you need a better screening process... This person should have been filtered out in the phone screen before the interview process began.
                  Message 8 of 14 , Feb 25, 2002
                  • 0 Attachment
                    >I've found that when I do this the junior person is completely incapable of
                    > accomplishing anything. I try to stay away from "okay, type in
                    > g-e-t-capital-f-o-o-open paren-close paren-semicolon" but sometimes I have
                    >to do that or be faced with five minutes of watching someone try to write a
                    > function call.


                    Sounds like you need a better screening process...
                    This person should have been filtered out in the phone screen before the
                    interview process began.
                    Getting and keeping the right people is key to any type of development... XP
                    or not!

                    Rick Hightower

                    *******************************************
                    * Check out my new book!: *
                    * Java Tools for Extreme Programming: *
                    * Mastering Open Source Tools, *
                    * including Ant, JUnit, and Cactus *
                    *******************************************

                    http://www.rickhightower.com/JavaXPToolkit/

                    Buy it at Amazon:

                    http://www.amazon.com/exec/obidos/ASIN/047120708X/rickhightower-20

                    The book was written by members of the eBlox team!
                  • Brian C. Robinson
                    ... I ve found that when I do this the junior person is completely incapable of accomplishing anything. I try to stay away from okay, type in
                    Message 9 of 14 , Feb 25, 2002
                    • 0 Attachment
                      jeffgrigg63132 made a strange utterance something like this:
                      >It is *vitally important* that a much more experienced person let the
                      >junior person drive most of the time.

                      I've found that when I do this the junior person is completely incapable of
                      accomplishing anything. I try to stay away from "okay, type in
                      g-e-t-capital-f-o-o-open paren-close paren-semicolon" but sometimes I have
                      to do that or be faced with five minutes of watching someone try to write a
                      function call.


                      --
                      "The best programmers that I have ever met have an amazing ability to make
                      nasty sh*t disappear. *Poof*" Gareth Reeves -- reevesg@...
                    • Rick Hightower
                      ... hired last and having the least experience. So I m not in a position to screen anyone. Ouch... been there. Maybe you should have screened the company. I
                      Message 10 of 14 , Feb 25, 2002
                      • 0 Attachment
                        >Unfortunately I am technically the junior person on the team having been
                        hired last and having the least experience. So I'm not in a position to
                        screen anyone.

                        Ouch... been there. Maybe you should have screened the company.

                        I want to be tech screened and behavior screened when I am being
                        interviewed.
                        I get really nervous when a company hires me without screening me.
                        It makes me wonder who my co-workers are going to be!

                        Suggestion: Help them improve the screening process for new recruits.
                        Put together a training program, brownbag technical lunches (which include
                        book studies), etc. to improve existing staff.

                        I did when I was in a similar situation. It helped out a lot.

                        Help your company define what the job requirements for the position are (for
                        developers). You can be subtle if you are shy.

                        Rick Hightower

                        *******************************************
                        * Check out my new book!: *
                        * Java Tools for Extreme Programming: *
                        * Mastering Open Source Tools, *
                        * including Ant, JUnit, and Cactus *
                        *******************************************

                        http://www.rickhightower.com/JavaXPToolkit/

                        Buy it at Amazon:

                        http://www.amazon.com/exec/obidos/ASIN/047120708X/rickhightower-20

                        The book was written by members of the eBlox team!
                      • Brian C. Robinson
                        ... Unfortunately I am technically the junior person on the team having been hired last and having the least experience. So I m not in a position to screen
                        Message 11 of 14 , Feb 25, 2002
                        • 0 Attachment
                          Rick Hightower made a strange utterance something like this:
                          > >I've found that when I do this the junior person is completely incapable of
                          > > accomplishing anything. I try to stay away from "okay, type in
                          > > g-e-t-capital-f-o-o-open paren-close paren-semicolon" but sometimes I have
                          > >to do that or be faced with five minutes of watching someone try to write a
                          > > function call.
                          >
                          >Sounds like you need a better screening process...

                          Unfortunately I am technically the junior person on the team having been
                          hired last and having the least experience. So I'm not in a position to
                          screen anyone.


                          --
                          "The best programmers that I have ever met have an amazing ability to make
                          nasty sh*t disappear. *Poof*" Gareth Reeves -- reevesg@...
                        • Changjune Kim
                          ... _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com
                          Message 12 of 14 , Feb 25, 2002
                          • 0 Attachment
                            ----- Original Message -----
                            From: "Brian C. Robinson" <brian.c.robinson@...>
                            To: <extremeprogramming@yahoogroups.com>
                            Sent: Tuesday, February 26, 2002 4:26 AM
                            Subject: Re: [XP] New to XP - Advice on Pair Programming - senior + junior
                            partners


                            > jeffgrigg63132 made a strange utterance something like this:
                            > >It is *vitally important* that a much more experienced person let the
                            > >junior person drive most of the time.
                            >
                            > I've found that when I do this the junior person is completely incapable of
                            > accomplishing anything. I try to stay away from "okay, type in
                            > g-e-t-capital-f-o-o-open paren-close paren-semicolon" but sometimes I have
                            > to do that or be faced with five minutes of watching someone try to write a
                            > function call.


                            http://c2.com/cgi/wiki?LetTheJuniorDrive didn't work very successfully if the
                            purpose was two-fold of teaching and building something valuable. Now I use
                            some different approach, like
                            http://c2.com/cgi/wiki?DialogueWhilePairProgramming



                            _________________________________________________________
                            Do You Yahoo!?
                            Get your free @... address at http://mail.yahoo.com
                          • Laurent Bossavit
                            ... As an exercise, please list three ways in which the actions of a lowly programmer might have influence on the hiring practices of a large company. (I ll
                            Message 13 of 14 , Mar 1, 2002
                            • 0 Attachment
                              > Plus, I work for a large company and they have some institutionalized
                              > hiring practices I doubt they would let a programmer alter.

                              As an exercise, please list three ways in which the actions of a
                              "lowly" programmer might have influence on the hiring practices of a
                              large company.

                              (I'll list one for free - date a nice-looking girl from HR, make her see
                              things from your point of view.)
                            • Brian C. Robinson
                              ... Well, I was not in a position of power. I just graduated from college and though I had two years of industry experience I wasn t flooded with offers. The
                              Message 14 of 14 , Mar 1, 2002
                              • 0 Attachment
                                Rick Hightower made a strange utterance something like this:
                                > >Unfortunately I am technically the junior person on the team having been
                                >hired last and having the least experience. So I'm not in a position to
                                >screen anyone.
                                >
                                >Ouch... been there. Maybe you should have screened the company.

                                Well, I was not in a position of power. I just graduated from college and
                                though I had two years of industry experience I wasn't flooded with
                                offers. The company I'm with now made me a good offer and it turns out I
                                really like the environment; all the people I work with are great and we
                                get along really well. This is a big difference from jobs I've had in the
                                past and it really makes me appreciate the job. It also makes the
                                inexperience of some of the people I work with all the more frustrating.

                                >Suggestion: Help them improve the screening process for new recruits.
                                >Put together a training program, brownbag technical lunches (which include
                                >book studies), etc. to improve existing staff.

                                I don't think we're hiring anyone new right now. Plus, I work for a large
                                company and they have some institutionalized hiring practices I doubt they
                                would let a programmer alter.


                                --
                                "The best programmers that I have ever met have an amazing ability to make
                                nasty sh*t disappear. *Poof*" Gareth Reeves -- reevesg@...
                              Your message has been successfully submitted and would be delivered to recipients shortly.