+ All Categories
Home > Technology > Pair Programming Explained By Shrikant Vashishtha

Pair Programming Explained By Shrikant Vashishtha

Date post: 08-May-2015
Category:
Upload: shrikant-vashishtha
View: 721 times
Download: 1 times
Share this document with a friend
20
http:// www.xebia.com Abhishek Agrawal ShriKant Vashishtha Mar 19, 2009 Effective Agile Software Development with Collaborative Programming
Transcript
Page 1: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

Abhishek Agrawal

ShriKant Vashishtha

Mar 19, 2009

Effective Agile Software Development with

Collaborative Programming

Page 2: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

Agenda• What is Collaborative Programming?• A day in solo programming• A day in pair programming• Economics of collaborative programming• Cultural and psychological challenges• How to do it?• When not to do it?• Distributed pair programming

– Need– What it takes– Tools– Demo– When to do it and when not

• Questions

Page 3: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

Collaborative programming• Involves two programmers side-by-side on the design,

coding and testing of a piece of software.

• The concept of driver and navigator

• Constant active review, knowledge sharing and design

discussions

• Pair programming transforms what has traditionally been

a solitary activity into a cooperative effort.

Page 4: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

A day of a solo programmer

Page 5: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

A day in solo programming• Too many distractions (email, messenger, extended

phone calls, internet, personal work etc.)

• Syntactical errors causing at least 10% loss in productivity

• Some errors which eat up more than 8 hours sometimes.

• Code goes for peer review cycles (passive reviews)

• No knowledge sharing of the code.

Page 6: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

A day in collaborative programming

Page 7: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

A day in collaborative programming

Page 8: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

A day in collaborative programming• Minimal distractions as pairing requires respect for each

other.

• Navigator catches the syntactical errors even before you compile the code.

• You find an ACTIVE reviewer.

• Knowledge sharing in its true form.

Page 9: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

Economics of pair programming

• Why should I invest for two programmers for the same task???

• For any two programmers, no matter how good he or she is, if we get them to sit together, the value of their work will be greater than if they sit apart.

• Value = more than typing

• AllProgrammingTasksAreEasyOnceYouveSolvedThem

Page 10: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

Cultural and psychological challenges

• Some people prefer working alone

• Move from Waterfall to Agile world (no heroics anymore)

• Egos and personality conflicts

• Intimidation by expert

Page 11: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

How to do it?• Agree on one tiny goal at a time

• Rely on your partner, support your partner.

• Talk a lot

• Switch roles often

• Write unit test first

• Pay attention – don’t check your email, digg etc

• The person who knows less about the system or language should do most of the driving, to ensure that the novice stays engaged. You learn more through your fingers than through your eyes.

• Ping-pong pairing

Page 12: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

When not to do it?• When reading about a library that might help later on

• Spiking a complex solution or debugging a tricky error with someone that has an experience gap.

• The number of tasks that require pairing is a lot higher than the number of tasks that don't.

Page 13: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

Distributed pair programming

Page 14: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

The Need

Nothing is as effective as collocated team and pair programming. However when teams ARE distributed, we attempt to reach the same level of productivity as for collocated teams - Welcome to the world of Distributed Pair Programming.

TriviaDepartment of Computer Science, North Carolina State University

conducted an experiment to compare the different working arrangements of student teams developing object-oriented software. The results of the experiment indicate that it is feasible to develop software using distributed pair programming, and that the resulting software is comparable to software developed in collocated teams.

The University's technique is based on the emerging software engineering methodology – “pair-programming” combined with nearly 20 years of widespread and active research in collaborative software systems.

Distributed pair programming

Page 15: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

What it takes?

Lots and lots and lots of communication.

• Hardware Challenges

• Software Challenges

• Network Challenges, pair switching

• Cultural Challenges

• Time Differences

Distributed pair programming

Page 16: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

Tools• Microsoft Office Communicator (OCS)• Skype Mikogo• Cola Eclipse plugin• Adobe Acrobat Connect• NetMeeting• VNC• XPairtise - A Distributed Pair Programming Plug-in For Eclipse• Sangam – A Distributed Pair Programming Plug-in for Eclipse - Department

of Computer Science, North Carolina State University• PCAnywhere • SelfLanguage • SqueakSmalltalk - has a shared desktop component named Nebraska• RemoteAdmin from Famatech -- far faster than VNC and far cheaper than

PCAnywhere• SpeakFreely - win32/linux voice chat • Messengers

Baseline: Follow KISS principles - high quality cam, mic, headphones

Distributed pair programming

Page 17: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

Tools

Experiments by some universities – (Carolina State University, University of California et al)

• Virtual WorkSpaceVirtual WorkSpace was intended as an environment to enable distributed collaboration over a network. It depends heavily on computer-generated graphics and virtual reality devices as well.

• ClearBoardClearBoard was similarly a non-co-located collaboration support system that allowed two users to appear to sit face to face, and see the shared work between them

• The members of a pair viewed a common PC display using desktop sharing software; They trailed Microsoft NetMeeting, Symantec’s PCAnywhere, and VNC. They used headsets and microphones to speak to each other, and text chat for communications as well. They used several instant messaging programs (Yahoo Messenger, PalTalk, AOL Messenger) before implementing the project. The final experiment was run with NetMeeting, as this program provided PC sharing, text, audio, and video in one platform.

Distributed pair programming

Page 18: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

Time for some action…

COLA Eclipse Plugin Demo

Distributed pair programming

Page 19: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

• Opportunities for Distributed Pair Programming– New extension of team– KT phases– Domain expert on either side– User story specific need– Collective Code Ownership & knowledge sharing

• When can it be an overkill?– Mixing Remote and local pairing, long tasks– When collocated pairing can be done, avoid

distributed pair programming.

Distributed pair programming

Page 20: Pair Programming Explained  By Shrikant Vashishtha

http://www.xebia.com

Questions


Recommended