The future is here. It's just not evenly distributed yet. - William Gibson
Sonny Gill LinkedIn
Tweets
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
TWO programmers working side-by-side, collaborating on the same design, algorithm, code or test. One programmer, the driver, has control of the keyboard/mouse and actively implements the program. The other programmer, the observer, continuously observes the work of the driver to identify tactical (syntactic, spelling, etc.) defects and also thinks strategically about the direction of the work.
The future is here. It's just not evenly distributed yet. - William Gibson
Sonny Gill LinkedIn
Tweets
Linda Rising<br />Author of <a href="http://www.awprofessional.com/title/0201741571" target="_blank" rel="nofollow">Fearless Change</a>
Originally posted by Sonny Gill:
At my work place though, I sit right accross from my colleague, and we talk to each other to discuss any problems or solutions, occasionally he will roll his chair next to mine to work on something together (and vice versa), and then back to our desks again.
Often if he needs me to look at something, he will do a quick commit, I update my copy, and we go through the code togehter while we stay where we are.
Originally posted by Sonny Gill:
I was actually referring to being a bit of a loner in general, and not specifically in relation to Pair Programming. I also find that, although I am perfectly ease at being in company of other people, often I prefer not to. For me, staying at home reading a good book, or getting together with one or two friends at a quiet place is as much fun ( if not more), as going out and meeting with a large group of people. And I find it really strange when some people think that there is something wrong with that.
Now from my limited knowledge of PP, although pair programming is not a standard practice at my work place, I find that I am really uncomfortable working if there is somebody sitting right beside me looking at it all the time.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Linda Rising:
there's plenty of research to show that introverts (and most developers are introverts) are most comfortable working alone.
It requires extra energy to interact with others. Extroverts, on the other hand, find that their energy is increased by being around others. We are individuals, after all, and have our own best working styles.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Sonny Gill:
http://www.pairprogramming.com/
This doesnt quite look like something for me![]()
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by U Patel:
Isn't this call peer review!!! Which is a very good prectice. Produces less bugs and a very good over all design for piece of work is getting done.
Given a scenario that we have a very good design in place, I never liked the idea of one person is coding and another is driving. To me, it would be like having a navigation system for a route I have drove on about 5 million times. Or like I have a second driver next to me constantly giving out running commentary.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
I'm quite sceptic, because I have seen an extreme introvert becoming a PP fan in my team.
Originally posted by Sonny Gill:
http://www.pairprogramming.com/
This doesnt quite look like something for me
What specifically looks like it isn't for you?
The main advantage of PP over conventional peer review is that suggestions for improvement come while the code is written, not after it is finished. That has several consequences:
- it's much easier to accept a suggestion from someone working with me on *our* code, than from someone nitpicking on *my* code that I supposed to be finished;
- it's much less effort to incorporate improvements into the code while it's currently being formed than when it's already finished;
- when we discuss the code while we write it, we get much faster feedback on what the result of the improvement looks like, and therefore can discuss wether it really was an improvement and/or wether we now see even more ways to improve it.
Originally posted by Ilja Preuss:
Well, that's actually what rally teams prefer to do.
I actually have never seen - and can't imagine - a design that I don't learn something about while coding it.
And if I really felt like coding something the 5 millinon'th time, I'd wonder wether I'm missing some opportunity for reuse. But perhaps I'm just not understanding what you wanted to express using that analogy...
swimming certificate (A & B), shoelaces diploma, and some useless java ones.
Originally posted by Warren Dew:
If a loner doesn't want a job that's overly stressful, they probably shouldn't take a job as an XP programmer, any more than they should take a job as a telemarketer.
Despite loners being in the minority in the overall population, I think most good programmers used to be loners, because non-loners didn't do well in the job: they got bored and inattentive when alone, and so didn't do a good job during long hours of programming or debugging.
I wonder how many of those "loners" are actually "loners by heart", and how many are actually *trained* to be loners by the conditions on their working place.
Pair programming in XP is largely a way to allow non-loners to be productive programmers as well, especially as enough software people are now required that there aren't enough loners to fill the ranks.
Is it? Where do you get this from?
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Sonny Gill:
Do you find that for PP to work, esp. for introverts, the person they pair with has to be 'just right' for them?
Two people pairing up to program must both have something to offer to each other. If there is a big gap in skills, for example, it probabely wont do much good.
Well the part that the other person has to sit right beside me all the time I code.
But, I wouldn't mind having very short cycles of coding and reviewing, even as small as 15 minutes. I wonder if that can be considered PP.
I think a lot depends on who your teammates are. We all know the coworker who has a knack for disturbing you for something trivial right when you are concentrating really hard on something.
Would PP work for somebody like that?
You probabely have come accross what Joes says about programmers being in the zone. http://joelonsoftware.com/articles/fog0000000068.html
I dont totally agree with what he says about having very private offices, but it is worth a read.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by U Patel:
if a piece of work is being designed by two developer or team will be much more effective than looking at the code over the shoulder.
Code is made up of syntaxes. Not saying that code doesn't matter. Just a different perspective that if the logic to solve the problem will be considerd at the componant design time will produce good code.
Wouldn't it be wise to discuss the class diagrams upfront that developers came up with. This is the place where questions would arise like why AbstractClass and not interface? why factory when singleton is need at that point and time?
This discussions will define a very fine design that would eventually end up with good code.
As far as your comments about reuse goes, Don't you think that given a class defined with its responsibilities would bring this point upfront?
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by friso dejonge:
Kind of funny, but I havent heard anyone mentioning the downsides, like testing the keyboard on the other persons head. During studies (about 10 years ago) we had to do something like PP, but my partner and I could not stand each other any more after 2 or 3 hours. Even though he was generally a nice person.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Ilja Preuss:
Not all of those opportunities, no. Code reuse can happen at a very small level that you are quite unlikely to discuss before starting to code, in my experience.
It can already happen when you notice that you have written
getFolder() + "/"
at two places.
Linda Rising<br />Author of <a href="http://www.awprofessional.com/title/0201741571" target="_blank" rel="nofollow">Fearless Change</a>
The future is here. It's just not evenly distributed yet. - William Gibson
Sonny Gill LinkedIn
Tweets
Originally posted by Ilja Preuss:
Interestingly, most programming pairs report that they experience some kind of "flow"/"zone", too. And it's often more stable, because typically only one of the developers needs to take care of the disruption and can be "pulled bag into the zone" by his partner easily.
The future is here. It's just not evenly distributed yet. - William Gibson
Sonny Gill LinkedIn
Tweets
[OCP 21 book] | [OCP 17 book] | [OCP 11 book] | [OCA 8 book] [OCP 8 book] [Practice tests book] [Blog] [JavaRanch FAQ] [How To Ask Questions] [Book Promos]
Other Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, TOGAF part 1 and part 2
Linda Rising<br />Author of <a href="http://www.awprofessional.com/title/0201741571" target="_blank" rel="nofollow">Fearless Change</a>
I would like to ask the skeptics (who aren't convinced that PP is at all worthwhile), if they can think of any situation at all where PP *might* be a good idea??
swimming certificate (A & B), shoelaces diploma, and some useless java ones.
Originally posted by Pradeep Bhat:
Does pair programming mean two people always work together?
I feel that two people should meet only for review, otherwise it would be waste of resources.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Jeanne Boyarsky:
Could someone who does PP regular explain the value of doing something routine in a pair? (I realize there is some benefit to the other person checking for errors, but I can't see how this warrants twice the effort.)
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
If taken to the extremes, it means that every line of code is written by two developers sharing one keyboard, mouse and monitor
Originally posted by Pradeep Bhat:
Does this mean we need less computers in office?
Yes, pair programming has been used in many projects before. Probably for, I don't know, 30 years already?Originally posted by Pradeep Bhat:
Has pair programming used in many projects before(Thanks for you story Ilja) or is it a new concept?
Just like you would handle disagreements in a non-pair programming scenario (hopefully a civilized discussion...).Originally posted by Pradeep Bhat:
What if there are disagreements? How do we handle them.
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
Originally posted by Lasse Koskela:
Just like you would handle disagreements in a non-pair programming scenario (hopefully a civilized discussion...).
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
[OCP 21 book] | [OCP 17 book] | [OCP 11 book] | [OCA 8 book] [OCP 8 book] [Practice tests book] [Blog] [JavaRanch FAQ] [How To Ask Questions] [Book Promos]
Other Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, TOGAF part 1 and part 2
Originally posted by Ilja Preuss:
Two people pairing up to program must both have something to offer to each other. If there is a big gap in skills, for example, it probabely wont do much good.
In my (and not only my) experience, everyone has something to offer (if he cares to speak out). No single person knows only a subset of what someone else knows.
Interestingly, I enjoy PP quite a lot. I wouldn't want to do it 100% of the time, but wouldn't object to 80%.
Originally posted by Warren Dew:
Maybe he should make sure the "XP team" also allows him to write tests only as much as he feels like, and claim individual code ownership over pieces of code he doesn't want others to touch, and not bother running the tests if he's pretty sure his new code works already?
Doesn't sound very eXtreme to me.
During the time period I'm referring to, few programmers had, say, any kind of social life - and that was by choice. They were the kind of people who opted out of high school parties and college beer bashes because they didn't really care to be in the company of other people very much. Part of the reason they made good programmers was that they really preferred associating with machines to associating with people.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Pradeep Bhat:
Who decides who should pair up ?
Sorry, no. Although people do use terms like "triplet programming", it's more a joke than a name for a serious development technique. However, that is not to say that getting together with three (or more) developers in front of a single monitor/keyboard wouldn't be a good idea -- I've often seen and participated in such moments of gathering. It's just that 99% of the time that amount of eyeballs on a single monitor is not really necessary.Originally posted by Pradeep Bhat:
Is there any name for programming where three or more get involved?![]()
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
Oh the stink of it! Smell my tiny ad!
Smokeless wood heat with a rocket mass heater
https://woodheat.net
|