Download - Why pair programming is a good idea
2/17/2017 Why Pair Programming Is A Good Idea | Designveloper Software agency - Meteor prime partner
https://blog.designveloper.com/2017/02/15/pair-programming/ 1/8
Í
Why Pair Programming Is A Good Idea
Lately, our Designveloper (https://www.designveloper.com/) team started implementing a new working
method – Pair Programming, where is two programmers sitting side by side at one computer, sharing
just a single workspace.
We were very nervous at the first time. You know, we, programmers got used to using our own swords
and fighting solo when getting into the war. Then, suddenly you have to share your weapons with
another guy, how confusing it could be?
Surprisingly, we have to admit that much like a cup of coffee a day, pairing tastes awful at first, but we
end up liking it after just a few weeks imbibing of it repeatedly.
So in today’s post, I’m going to share with you some reasons why we fell in love with pair programming
and why it’s a good idea for every ninja coder to give it a try.
D E S I G N V E L O P E R( H T T P S : / / B L O G . D E S I G N V E L O P E R . C O M / C A T E G O R Y / D E S I G N V E L O P E R / )
B y V a n D o ( h t t p s : // b l o g . d e s i g n v e l o p e r . c o m / a u t h o r / v a n d o / ) o n F e b r u a r y 1 5 , 2 0 1 7
Û
Í
2/17/2017 Why Pair Programming Is A Good Idea | Designveloper Software agency - Meteor prime partner
https://blog.designveloper.com/2017/02/15/pair-programming/ 2/8
WHAT EXACTLY IS PAIR PROGRAMMING?In a nutshell, pair programming is when two programmers are coding together.
Í
2/17/2017 Why Pair Programming Is A Good Idea | Designveloper Software agency - Meteor prime partner
https://blog.designveloper.com/2017/02/15/pair-programming/ 3/8
To make it easier to understand, let’s imagine when you and your friend are in the car. You’re driving
and your friend is responsible for looking at the map and show the direction. The same can be said of
pairing. In pair programming, while one developer is writing code and implementing solution, the other
beside will keep an eye on the big picture and navigate.
H ow w e a c t u a l l y p a i r a t D es i g n ve l op er
( h t t p s : // w w w. des i g n ve l op er. c om / )
At Designveloper, we do pair programming slightly different.
Typically, in pair programming, it is recommended to use only one machine for both developers but we
use two machines. The reason is that each developer has his/her own preferences, for example: text
editor, IDE, font, color, screen resolution, place where his/her code resides, etc. Letting each developer
works on his/her own machine would make the developer feel more comfortable. The other developer
can also learn more from these preferences and he/she can pick what he/she wants.
However, the common mistake when 2 developers working on 2 machines is that the navigator tends
to use his/her own machine while the other is coding. To avoid this problem, we explicitly require the
navigator to close his/her own laptop.
2 laptops works best with a big monitor. It is recommended to have at least 23” monitor with 2 HDMI
ports. Skype or Hangout screen sharing work best in case of working remotely. If 2 developers sitting
next to each other but do not have an extra monitor, using built-in screen sharing feature of mac to
keep 2 machines displaying the same is recommended.
Following is the instruction to setup screen sharing on Mac:
Throughout the process, programmers will switch role frequently, constantly talk to each other,
especially do research together to keep both engaged.
We also have pair programming diary. At the end of everyday, the lessons learnt will be documented. In
the end of a working week, all the lessons could be used for sharing via a blog post for example.
Í
2/17/2017 Why Pair Programming Is A Good Idea | Designveloper Software agency - Meteor prime partner
https://blog.designveloper.com/2017/02/15/pair-programming/ 4/8
Last but not least, we highly recommend you to use the Pomodoros
(http://cirillocompany.de/pages/pomodoro-technique/) technique for keeping time and taking break
between every section. You can use Be Focused app (https://itunes.apple.com/us/app/be-focused-
focus-timer-goal/id973134470?mt=12)on app store to execute this.
H ow w e m ea s u re p a i r p rog ra m m i n gIt would never be easy to measure the value. That’s why we use Hubstaff (https://hubstaff.com/) to
track all the work and get invaluable insights about the real result programmers produce.
TYPE OF PAIR PROGRAMMINGThe following are 3 typical pair combinations:
E x p er t – ex p er tSince both members of the team are experienced, they can produce the best quality for sure. The thing
is there’s always something more to learn but experts used not to make questions. And as a result,
they normally lose their creativity and less likely to introduce new solution.
E x p er t – n ov i c eThis will be a great opportunity for the novice learn more from the expert. When the novice raises
questions, the expert have to think over and explain. This Questions & Answers process can lead to the
best new solution.
Nonetheless, make sure the novice is active. If not, the novice may end up just watching and the expert
will feel annoyed. This is the watch-the-master phenomenon.
N ov i c e – n ov i c eObviously, two novices pairing can give better result than they working independently. But this
combination is discouraged.
BENEFITS OF PAIR PROGRAMMINGWe’re gaining huge benefits from pair programming:
B et t e r p rodu c t q u a l i t yAs usual, after the code is written, we need to review it to improve the quality. The things is even
though you try your best to focus on reading your code again and again, you still might not come up
with some suggestions for a better quality.
But with pair programming, the review process will be done WHILE the code is being written. It sure
make the code nicer, reduce the risk of errors and failures.
Moreover, two heads are always better than one. A solo developers can’t think up more alternatives
when proceeding than a pair could. And as the result, it leads to better design quality.
Í
2/17/2017 Why Pair Programming Is A Good Idea | Designveloper Software agency - Meteor prime partner
https://blog.designveloper.com/2017/02/15/pair-programming/ 5/8
B et t e r t ea m kn ow l edg eLet’s face the fact that humans fundamentally like being social. And pairing means more
communication. It gives chances to make friends with the ones we normally don’t hang out with. In
consequences, it builds trust inside the team and makes employees comfortable. Happy employees
help us to build a productive and effective team for sure.
Related: Free Productivity Apps For Business Owners In 2017
(https://blog.designveloper.com/2017/01/04/free-productivity-apps/)
S h a r i n g ex p er i en c esEveryone makes mistakes. Sometimes, to solve the problem you just need a simple solution but
somehow you can’t realize it by yourself. In pair programming process, we will constantly and easily
learn from our partners.
When an expert and a novice are paired, we can save ourselves a lot of headache and time in training
newbies. Pair programming could be a good way to strengthen each other skills faster.
S av i n g t i m e , g e t t i n g m ore m on eyIf you think that having two programmers work on a task will double the hour it takes to do that task,
you’re wrong! I did think the same at the beginning.
A study run by Laurie Williams from the University of Utah shows that pairs just spend about 15% more
time on programs than individuals (Figure 1). However, the resulting code has about 15% fewer defects
(Figure 2). Let’s take a look at two charts below:
Figure 1: Programmer Time
Í
2/17/2017 Why Pair Programming Is A Good Idea | Designveloper Software agency - Meteor prime partner
https://blog.designveloper.com/2017/02/15/pair-programming/ 6/8
Figure 2: Code Defects
Sources: The Costs and Benefits of Pair Programming
(https://collaboration.csc.ncsu.edu/laurie/Papers/XPSardinia.PDF)
Having a second set of eyes can help us debug faster. Time saving is obviously equal to more money!
R edu c i n g s t a f � n g r i s ksDon’t you ever feel frustrated when your staff is off and then tons of workflow are interrupted? When it
comes to pair programming, you can say goodbye to this stress. One member in pair is off, the other
still knows exactly what to do without taking time to transfer.
DOWNSIDES AND HOW WE OVERCOMETHEMNothing is perfect, so does pair programming. On our journey to successful pairing, we have
discovered some of its drawbacks:
– Taking up all the time talking: If one person in pair or both do not have any experience about the
task they are working, they might end up explaining things almost time and might not even touch the
keyboard to write code.
– Bad effect on each other: What I mean is that if a member is with his/her head in the clouds, or is
simply a slow typer, it can slow down his/her partner as well.
– Lacking self confidence: The most common situation we met is someone in pair doesn’t have
courage to admit that he/she is stuck at some points. They just wait and hope things get clearer
instead of asking for an explanation. This can easily lead to the “Watch the Master” phenomenon and
be the main reason of disengagement.
Í
2/17/2017 Why Pair Programming Is A Good Idea | Designveloper Software agency - Meteor prime partner
https://blog.designveloper.com/2017/02/15/pair-programming/ 7/8
– Better when working alone: Some people are just better when working solo. They prefer being
independent and self-reliant.
Nonetheless, from my point of view, there’s nothing wrong with pairing, it just depends on how to find a
right partner for a right task. That’s why at Designveloper, we emphasize the need to carefully recruit
team members. Here are some of our partner recruitment criteria:
– Good attitude: In pair programming, members have to eager to learn and are willing to cooperate,
and make a commitment to excellent quality
– Strong communication skills: Pair programming is also known as “programming out loud”.
Therefore, team member need to be active in speaking and even in writing documentation.
– High skills, good education background
– Sense of humor: Science proves funny people are more intelligent. Additionally, it will make the
working atmosphere comfortable and sure release stress.
– Play hard, work hard
– Fast typing skill: As I said before, a slow typer will slow down other teammate.
FINAL THOUGHTSAfter all, we are just new kids who make a real concerted effort to get their feet wet with new working
method for saving time in our day-to-day workflow and bringing to our customers the best product.
Pair programming can be tough and totally be a nightmare for those who can not find the right
combination. But at least we did try and we have nothing to lose but a chance to win. For now pair
programming still gives us a lot of fun, knowledge sharing and motivation.
How about your opinion? Why don’t you give it a try and share with me your experience in the comment
box below? If you have any further question about pair programming, just ask, I’m eager to help you!
Í
2/17/2017 Why Pair Programming Is A Good Idea | Designveloper Software agency - Meteor prime partner
https://blog.designveloper.com/2017/02/15/pair-programming/ 8/8
(https://www.facebook.com/sharer/sharer.php?
u=https%3A%2F%2Fblog.designveloper.com%2F2017%2F02%2F15%2Fpair-
programming%2F)
(http://twitter.com/intent/tweet?
source=Designveloper
Software
agency
-
Meteor
prime
partner&text=https%3A%2F%2Fblog.designveloper.com%2F2017%2F02%2F15%2Fpair-
programming%2F)
¬
(https://plus.google.com/share?
url=https%3A%2F%2Fblog.designveloper.com%2F2017%2F02%2F15%2Fpair-
programming%2F)
Ɩ
(http://www.linkedin.com/shareArticle?
mini=true&url=https%3A%2F%2Fblog.designveloper.com%2F2017%2F02%2F15%2Fpair-
programming%2F&title=Why%20Pair%20Programming%20Is%20A%20Good%20Idea&summary=Lately%2C%20our%20Designveloper%20team%20started%20implementing%20a%20new%20working%20method%20%26%238211%3B%20Pair%20Programming%2C%20where%20is%20two%20programmers%20sitting%20side%20by%20side%20at%20one%20computer%2C%20sharing%20just%20a%20single%20workspace.%20We%20were%20very%20nervous%20at%20the%20first%20time.%20You%20know%2C%20we%2C%20programmers%20got%20used%20to%20using%20our%20own%20swords%20and%20fighting%20solo%20when%20getting%20into%20the%20%5B%26hellip%3B%5D&source=Designveloper
Software
agency
-
Meteor
prime
partner)
ã
(http://www.tumblr.com/share/link?
url=https%3A%2F%2Fblog.designveloper.com%2F2017%2F02%2F15%2Fpair-
programming%2F&name=Why%20Pair%20Programming%20Is%20A%20Good%20Idea&description=Lately%2C%20our%20Designveloper%20team%20started%20implementing%20a%20new%20working%20method%20%26%238211%3B%20Pair%20Programming%2C%20where%20is%20two%20programmers%20sitting%20side%20by%20side%20at%20one%20computer%2C%20sharing%20just%20a%20single%20workspace.%20We%20were%20very%20nervous%20at%20the%20first%20time.%20You%20know%2C%20we%2C%20programmers%20got%20used%20to%20using%20our%20own%20swords%20and%20fighting%20solo%20when%20getting%20into%20the%20%5B%26hellip%3B%5D)
Ŭ
pair programmingÜ pair programming benefitsÜ pairingÜ working methodÜ
Ű Web Design Trends Will Take Over In 2017 (https://blog.designveloper.com/2017/02/08/web-design-trends-
will-take-over-in-2017/)
% (https://blog.designveloper.com)
Call me Cloudy. I'm just a girl who wants to enjoy every moment of her journey.
A B O U T A U T H O R
Í