why pair programming is a good idea

8
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. DESIGNVELOPER (HTTPS://BLOG.DESIGNVELOPER.COM/CATEGORY/DESIGNVELOPER/) By Van Do (https://blog.designveloper.com/author/vando/) on February 15, 2017 Û Í

Upload: designveloper

Post on 19-Feb-2017

15 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: 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

Û

Í

Page 2: 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/ 2/8

WHAT EXACTLY IS PAIR PROGRAMMING?In a nutshell, pair programming is when two programmers are coding together.

Í

Page 3: 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/ 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.

Í

Page 4: 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/ 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.

Í

Page 5: 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/ 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

Í

Page 6: 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/ 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.

Í

Page 7: 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/ 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!

Í

Page 8: 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/ 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

Í