Firstly a disclaimer. I have never done pair Programming. Never read officially about it I.e. Kent Becks Extreme Programming Explained. I have only what I have read in blogs, which is limited and my own thoughts.
I feel it is important to document my ignorant understanding before I embark on learning as it gives a base level of my understanding based on what I currently know about agile methods which I can look at in the near or distant future and see my progress.
Now, for my ideas on pair Programming .
Say you have 2 people, A and B. A has knowledge that B needs.
First phase, A and B sit together. A works while B observes. B can ask questions, but A explains as they go along what they are dong.
Second phase, B takes over while A observes. B applies the knowledge they have learned, while A corrects B for any mistakes or answers any questions as required.
At the end of both phases, you now have 2 people converse in the knowledge.
Now it it time for the third phase. B now teaches C and simultaneously, A can teach D if required.
This I see as a good way to disseminate knowledge through a group. You get the one on one time and then apply the knowledge through teaching.
I first saw something similar in a TV show. ER as a method for surgeons to disseminate knowledge. The saying was…
- See one
- Do one
- Teach one
Now, as I mentioned earlier, this is my ignorant thoughts, but I would like to know everyone else’s on the topic. Let me know in the comments.