I've had many experiences with pair programming over the past few years. Sometimes in my team, sometimes with clients, sometimes in coding dojos, and sometimes in my open source projects. For programmers who know how to pair program, this model is great and very effective.
But you can't just put a computer in front of two programmers and expect them to do a great job right out of the gate. Pair programming requires learning, and programmers need to know the difference between an implementer (the one typing away) and a pilot. Let's look at some details.
I encountered some misunderstandings in pair programming, which are listed below.
1. Navigator’s Misconceptions
1. The one who gives orders
A person who likes to give orders always tells the person typing: "Go to the last line, add a back bracket, and then..." He does not pay attention to the solution and what to do next, but pays too much attention to some programming details.
In fact, he wants to be in control of the keyboard himself. So when you meet someone who likes to give orders, hand the keyboard to him and switch the role of navigator.
2. Spelling Corrector
The spell checker sits next to you and corrects every wrong character you type. Of course, he doesn't have time to actually navigate.
Make an arrangement with the corrector to buy you a cup of coffee (or anything else you want) while he or she corrects you.
3. Fault-finder
A nitpicker will criticize every line of code you write. When his opinion is correct, he will insist on doing it his way, not using the code you have already written, but completely following his ideas.
Just as free jazz musicians reuse notes from other band members to construct a piece of music, good pair programming should build on the existing foundation.
Try reversing roles and maybe the nitpicker will become a snob.
4. The Silent One
The silent person is the one who hardly ever says anything. He just sits there and watches you work.
Try asking him what he thinks of your approach, or what test code to write next. [page]
5. Absent-minded
Distracted people are trying to distract you rather than offer you constructive feedback and help you solve your problems.
So let him go, it's better to program alone than with someone who distracts you.
2. Misconceptions of implementers
1. The hidden one
The deep covert just types the code without telling anyone what he is doing. The navigator has to figure it out on his own. There is absolutely no communication between the navigator and the implementer about what approach to use or which design to choose.
The Navigator needs to ask the Deep One about his plans or ideas.
2. A person who looks down on others
Arrogant people usually ignore all suggestions from the navigator, mostly because they feel their ideas or programming skills are superior.
When you encounter an arrogant person, stop pair programming immediately and start the next task. Arrogant people are often not good navigators. They are likely to become bosses or nitpickers.
3. People who are overwhelmed
People who feel overwhelmed are often not used to pair programming, are very nervous, and don't feel in control.
Make sure you are doing your best as a navigator. Give advice carefully and mainly encourage those who are overwhelmed.
However, this is the case for most programmers at the beginning. So, don't expect too much from them in pair programming. Let them become a navigator first, or have a navigator who can handle interpersonal issues well beside them.
4. People who jump a lot
People who make big jumps like to make big jumps in the code so that the navigator has no idea where they are.
The navigator needs to slow him down, ask him about his plans, and make sure he knows more shortcuts than he does.
5. People who are not familiar with the tools
People who are not familiar with the tools do not know the shortcut keys of the development environment, and their efficiency is very low.
Switch roles and show him your tricks. Or print out a cheat sheet with the shortcut keys.
I’m sure there are other misconceptions out there, if you have any ideas please leave them in the comments.
Previous article:Summary of MCU Programming Experience
Next article:How many times can a microcontroller be programmed?
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- [Rawpixel RVB2601 development board trial experience] GRB breathing light
- Dancing flame pendant
- Do you purchase samples or apply for them for free?
- SDK BLE example project command line compilation (HeartRate device)
- EEWorld interviews Toshiba PCIM booth engineer: 2-minute short video shows you key products and solutions
- Is it necessary to learn TI's KeystoneII series multi-core heterogeneous processors?
- cc2540 cc2541 low power consumption measurement and summary - and precautions - low power consumption less than 10uA
- I am looking for a book that explains in detail the pronunciation rules of English words, such as the relationship between open syllables, closed syllables, stress and open syllables.
- Tesla Robot Optimus Prime Conference Uncut 4K HD Episode 2
- FPGA error, added clock timing, and how to solve this error