pair programming

27
NAME : JASLEEN ROLL NO:10509 (GROUP:C1) PAIR PROGRAMMING

Upload: jazzsodhi

Post on 08-May-2015

238 views

Category:

Devices & Hardware


3 download

TRANSCRIPT

Page 1: Pair Programming

NAME : JASLEEN

ROLL NO:10509

(GROUP:C1)

PAIR PROGRAMMING

Page 2: Pair Programming

What is it?

•“Two programmers work side-by-side at one computer, continuously collaborating on the same design, algorithm, code, and test.”

•It allows two people to produce a higher quality of code than that produced by the summation of their individual efforts.

Page 3: Pair Programming

How it works

• Driver– Actively implements the program.– Actually types or writes down– Explains actions taken– Participates in brainstorming/planning

• Navigator– Continuously observes the work of the driver to identify

defects.– Thinks about the direction of the work.

Page 4: Pair Programming

Navigator

Driver

Page 5: Pair Programming

Pair Programming

• Driver and Navigator working together on one task

• Roles changing often

• Collective responsibility for outcome

• Bringing together of multiple perspectives, experiences and abilities

Page 6: Pair Programming

Why Pair ???

• Higher quality code

• Faster cycle time

• Enhanced trust/teamwork

• Knowledge transfer

• Enhanced learning

• More fun

Page 7: Pair Programming

Higher Quality Code

• Immediate reviews of all code written

• Multiple perspectives on how code should work

• People from different areas (UI/database, development/testing) working together – no (incorrect) assumptions

• Each person learns from the other – increased skills

Page 8: Pair Programming

Faster cycle time

• Less temptation/ability to get distracted on non-work things

• Less rework due to bad assumptions

• Fewer defects slip through, so less rework for defect repair

• Less interruption for pair

• More communication

Page 9: Pair Programming

Enhanced Trust/Teamwork

• People in pairs get to know each other better than people working solo

• Better understanding of people’s skills

• Shared events = common ground

Page 10: Pair Programming

Knowledge Transfer

• Rotation of pairs means lots of combinations

• Lots of combinations make knowledge transfer exponential

• Fewer assumptions

Page 11: Pair Programming

Enhanced Learning

• Each member of a pair has ongoing opportunities to learn from their partner

Page 12: Pair Programming

More Fun

• Social interactions

• Shared events

• Studies show high numbers of people trying pair programming prefer it

Page 13: Pair Programming

Why Pair Programming Works

• Pair Pressure

• Pair Negotiation

• Pair Courage

• Pair Reviews

• Pair Debugging

• Pair Learning

• Pair Trust

Page 14: Pair Programming

Pair Pressure

• Each member doesn’t want to let the other down

• Improved adherence to procedures and standards

• Motivation to get a task done in a session while partner is available

Page 15: Pair Programming

Pair Negotiation

• Working together to get the best solution

• Each pair member has – Own set of skills, abilities, outlook.– Shared goal of accomplishing task

• Brainstorming (building on ideas of others)

Page 16: Pair Programming

Pair Courage

• Having a partner agree with a fix or a solution adds confidence to the solution

• Two people expressing confusion are more confident to go get the help they need

Page 17: Pair Programming

Pair Reviews

• Members of pairs are immediately reviewing code as it is written

• Two heads better than one

Page 18: Pair Programming

Pair Debugging

• Effective debugging technique is to explain problem to someone else

• Talking about problem in a pair can lead to a solution becoming obvious

Page 19: Pair Programming

Pair Learning

• No two people are at exact same levels of knowledge on software development

• Exposure to different approaches

Page 20: Pair Programming

Enabling Pair Programming

• Accessible workspace

• Communication

• Standards

• Knowledge of people’s specialties

• Pair rotation

• Group appraisal

• Smaller groups

Page 21: Pair Programming

Workspace accessible to both

• Display visible to both people

• Side by side, not one in front of the other

• Keyboard/mouse available to either person

Page 22: Pair Programming

Expectation of communication

• Ask to drive

• Ask questions

• Explain actions taken

Page 23: Pair Programming

Standards

• Standard tools reduce learning curve time in pairs

• Coding standards assist in both members following the code being written and avoid disagreements on how to write something

Page 24: Pair Programming

Knowledge of people’s specialties

• Know who to pair with to achieve benefit in a given situation

• If a task overlaps two areas (e.g., UI and database) pair one person from each area

Page 25: Pair Programming

Pair Rotation

• No given pair of programmers is the right pair for every situation

• Rotation enables knowledge transfer

Page 26: Pair Programming

Disadvantages to Pair Programming

• Requires even number of developers• Scheduling• Experts/Skill Imbalances• Concentration• Disagreements• Overconfidence• Loss of personal development space• Not for everyone

Page 27: Pair Programming

THANK YOU