Hi everybody! I’m Nguyen, a front-end developer in Japan. It’s been over a year since I began working at ZEALS.
For the past several year, I decided to share a tip that has improved my skill. It's pair programming, though not new to everyone, are we using it correctly?
What is Pair programming?
Pair programming is a software development technique, when two people work on the same computer, programming together.
There are 2 roles: Driver and Navigator. The driver codes the app, while the navigator supervises the driver, giving advice, and trying to understand and conveying the overall objectives to the driver. Both roles can be interchanged at regular intervals.
Advantages of pair programming
There are a lot of articles about this on the internet, but I want to share my personal opinions.
For developer:
- Faster learning: when you pair programming, Driver and navigator will get different perspectives, different knowledge and techniques. Particularly when you are pair-programming the same code with a more experienced developer.
- Confidence: Imagine receiving a task you are not capable of performing. Surely you will feel confused and scared, but after pair programming, most problems in the task will be dissected and resolved. Therefore you will be more confident.
- Concentration: Pair programming reduces the distractions of your surroundings
For Team:
- Solving problems: Two people are more productive than one because they can help to solve problems in different ways. In the end, the two (driver and navigator) will agree on the best solution.
- Quality: While pair-programming, your partner will check your mistakes. It reduces more bugs than coding by your self
- Save time: Difficult problems often take a long time to solve, but as I mentioned above, pair-programming with the experienced person can help you get to the solution faster.
Ways of part programming
I think Erik Dietrich’s post mentions ways of pair programming, which is pretty cool.
When do we need pairs?
- There is a complicated task, or a PR too large.
- Coaching
- Fixing a bug that you can’t resolve by yourself
- Learning a new skill can make you understand more about the project.
Notes
- Prepare everything you have before starting to pair program.
- Focus on the main issues
- Take a rest if you two are too fatigued. Don’t take a rest to complete an additional task (check mail, review code…)
- Make sure the questions you ask are relevant to the issue
- Ensure you understand and solve each problem. If you don’t understand, don’t hesitate to ask.
Conclusion
Does pair programming work for everyone? The answer is not simple. We are all different, so results will be various. Some people work better in pair programming, others do not. Remember that pair programming is not suitable for every issue, problem, or project.
Personally, I have gained a lot of knowledge working with my team and especially the team leader (Aaron). After over a year, I feel more confident, and be able to solve problems better than before.