This document discusses pair programming, an agile software development technique where two programmers work together at one workstation. One programmer acts as the driver, writing code, while the other serves as the navigator and reviews each line of code. The roles are switched frequently. Benefits of pair programming include instant code reviews, knowledge sharing, and reduced training costs. Challenges include dependency on partners and difficulty with scheduling, noise levels, and skill imbalances between partners. Research shows pair programming can reduce assimilation time for new programmers and lower training efforts.
2. ABOUT ME
STARTED MY CAREER IN 2003 IN .NET ESPECIALLY ASP.NET
TECHNOLOGIES
WORKING WITH INDECOMM FOR NEARLY 4 YEARS
ASP.NET, JAVASCRIPT (OOPS), EXTJS, ASP.NET MVC, ASP.NET
WEBAPI ETC.
FAN OF DESIGN PATTERNS
BDD (BEHAVIOR DRIVEN DEVELOPMENT) AND TDD (TEST
DRIVEN DEVELOPMENT)
AGILE (SRUM AND EXTREME PROGRAMMING [XP])
OTHER
10. PAIR PROGRAMMING
WIKI DEFINITION
PAIR PROGRAMMING IS AN AGILE
SOFTWARE DEVELOPMENT TECHNIQUE
IN WHICH TWO PROGRAMMERS WORK
TOGETHER AT ONE WORKSTATION.
ONE, THE DRIVER, WRITES CODE WHILE
THE OTHER, THE OBSERVER, REVIEWS
EACH LINE OF CODE AS IT IS TYPED IN.
THE TWO PROGRAMMERS SWITCH
ROLES FREQUENTLY.
13. OBSERVER
POINTER OR NAVIGATOR
KEEPS AN EYE ON TACTICAL AND STRATEGIC ERRORS
TACTICAL ERROR: TYPOS, SYNTACTICAL ERRORS, CALLING THE
WRONG METHOD ETC
STRATEGIC ERROR: IMPLEMENTATION IS MEETING THE GOAL OR
NOT
SANITY TESTING THE CODE
THINKING THROUGH PROBLEMS
WHERE TO GO NEXT
KEEP THE DRIVER ON COURSE
15. EXPERT-EXPERT PAIRING
TO SOLVE COMPLEX PROBLEMS
CAN GIVE GREAT RESULTS
LESS TIME SPEND ON EXPLAINING
THINGS
NO NEW WAYS TO SOLVE THE
PROBLEMS
UNLIKELY TO QUESTION ESTABLISHED
PRACTICES
EXPERTS HAVE BIG EGO, “DO IT MY WAY
16. EXPERT-NOVICE
FOR MENTORING A NOVICE
GETTING EASY JOB DONE
CAN HAVE NEW SOLUTION TO A
PROBLEM
NEW PEOPLE CAN HELP OUT
ALMOST IMMEDIATELY
EXPERT HAS TO TAKE OFF “I
KNOW EVERYTHING” MASK
CREATE CONDUCIVE
ENVIRONMENT
17. NOVICE-NOVICE
MOSTLY HAPPENS IN
COLLEGES
MENTOR HAS BE ASSIGNED
EASY WAY TO LEARN THINGS
PAIRS ARE MORE LIKELY TO ASK
QUESTION THAN INDIVIDUAL
18. MYTHS
IT WILL DOUBLE THE WORKLOAD WITH TWO DOING THE WORK ONE
CAN DO
I’LL NEVER GET TO WORK ALONE. I COULDN’T STAND THAT!
IT WILL WORK WELL ONLY WITH THE RIGHT PARTNER
PAIR PROGRAMMING IS GOOD FOR TRAINING. BUT, ONCE YOU
KNOW WHAT YOU’RE DOING, IT IS A WASTE OF TIME
I’LL NEVER GET CREDIT FOR DOING ANYTHING. I’LL HAVE TO
SHARE ALL THE RECOGNITION WITH MY PARTNER
THE ONLY TIME I EVER GET ANY REAL WORK DONE IS WHEN I’M
ALONE. NOW, I’LL NEVER GET ANYTHING
DONE! PAIR PROGRAMMING WOULD DRIVE ME CRAZY
19. GUIDELINES
MIN OF 17INCH MONITOR AND
COMFORTABLE SEATING
TALK A LOT
NO POINTING ON THE SCREEN WITH
FINGER (NAVIGATOR)
PAIR ROTATION
GIVE THE DRIVER NANO SECONDS TO FIND
AND CORRECT HIS/HER OWN MISTAKES
INTRA AND INTERPAIR COMMUNICATION
DEVELOPMENT ENVIRONMENT
20. GUIDELINES CONTD…
MAKE USE OF TDD
PRACTICE ACTIVE LISTENING
NOISE CONSIDERATION
IF YOU PARTNER IS NOT LISTENING, JUST WALK AWAY
IF YOU DON’T UNDERSTAND WHAT YOUR PARTNER IS DOING,
THEN STOP AND ASK. STILL YOU DON’T UNDERSTAND , ASK
AGAIN, ASK AGAIN ASK AGAIN….
TAKE ENOUGH SHOWER; EAT LOTS OF BREATH MINTS
21. ADVANTAGES
INSTANT CODE REVIEW
KNOWLEDGE SHARE
REDUCES THE TRAINING COST
EXCELLENT TOOL TO BREAK COMMUNICATION BARRIERS
BETWEEN TEAMMATES
With Pair Programming Without Pair Programming
Assimilation Time (work days) 18 40
Mentoring Time (%) 26 36
Training Effort (work days) 15 37
22. PROBLEMS, PROBLEMS AND LOT MORE PROBLEMS
DEPENDENCY
SCHEDULING
THE EVER POPULAR EXPERT
COLOCATION
NOISE AND FACILITY CONSIDERATION
CONCENTRATION
DISAGREEMENT
OVERCONFIDENCE
RUSHING
SKILL IMBALANCE
SIMPLY NOT FOR EVERYONE
27. CONCLUSION
• SUPPORT FROM TEAM/MENTOR/LEADER/COACH AND OF
COURSE FROM THE MANGER
• 20YEARS OF DATA FOR BENEFITS OF REVIEW
• PROGRAMMERS AVOID REVIEW LIKE PLAGUE
• PROGRAMMERS ARE STRONG BELIEVERS THAT THEY CAN
ACHIEVE MORE BY GOING SOLO
• COLLECT AND DISSEMINATE INFORMATION/METRICS TO THE
TEAM
• MANAGEMENT BY WALKING AROUND