KEMBAR78
Pair programming | PPTX
PAIR PROGRAMMING
BY SANDEEP P R
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
PAIR PROGRAMMING
AGENDA
 WHAT IS PAIR PROGRAMMING?
 PARTICIPANTS IN PAIR PROGRAMMING
 PAIRING VARIATIONS
 MYTHS
 GUIDELINES
 ADVANTAGES
 PROBLEMS
 TIT BITS
 QUESTIONS
WHO IS A PROGRAMMER?
“LONELY MACHO
WARRIORS, BATTLING
AGAINST A SEA OF BITS
AND BYTES.”Professor Matthias Felleisen
WHEN THINGS GO RIGHT?
WE ARE CHILDISHLY
DELIGHTED WITH WHAT
WE HAVE CREATED
WHEN THINGS GO WRONG?
“BANG-YOUR-HEAD-AGAINST-
THE-WALL”
“A TECHNIQUE THAT CAN RADICALLY
INCREASE THE NUMBER OF TIME THINGS
GO RIGHT AND DECREASE THE NUMBER
OF TIMES THINGS GO WRONG”
THIS IS NOT PAIR PROGRAMMING
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.
WHAT PAIR PROGRAMMING MEANS?
 PAIR DESIGN
 PAIR DEBUGGING
 PAIR TESTING
 PAIR CODING
DRIVER
 FOCUSES ON THE CODE
AT HAND
 SYNTAX
 SEMANTICS
 ALGORITHM
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
PAIRING VARIATIONS
 EXPERT-EXPERT
 EXPERT-NOVICE
 NOVICE-NOVICE
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
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
NOVICE-NOVICE
 MOSTLY HAPPENS IN
COLLEGES
 MENTOR HAS BE ASSIGNED
 EASY WAY TO LEARN THINGS
 PAIRS ARE MORE LIKELY TO ASK
QUESTION THAN INDIVIDUAL
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
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
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
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
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
TIT BITS
MICROSOFT RESEARCH BY ANDREW BEGEL & NACHIAPPAN
NAGAPPAN
MICROSOFT RESEARCH BY ANDREW BEGEL & NACHIAPPAN NAGAPPAN
CONT…
ALISTAIR COCKBURN & LAURIE WILLIAMS
THE COSTS AND BENEFITS OF PAIR PROGRAMMING
ALISTAIR COCKBURN & LAURIE WILLIAMS
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
RESEARCH LINKS
• HTTP://RESEARCH.MICROSOFT.COM/PUBS/75108/ESEM-BEGEL-
2008.PDF
• HTTP://WWW.CS.POMONA.EDU/CLASSES/CS121/SUPP/WILLIAMS_PR
PGM.PDF
• HTTP://WWW.SOBERIT.HUT.FI/~JVANHANE/PUBS/LICTHESIS_VANHAN
EN.PDF
• HTTP://CITESEERX.IST.PSU.EDU/VIEWDOC/DOWNLOAD?DOI=10.1.1.2
58.7427&REP=REP1&TYPE=PDF
• HTTP://AGILE.VTT.FI/DOCS/PUBLICATIONS/2005/2005_MULTIPLE_CAS
E_STUDY_PAIR_PROGRAMMING.PDF
WAYS TO REACH ME
• SANDEEP.R@ACCELRYS.COM
• SANDEEP.R@INDECOMM.NET
• HTTPS://WWW.LINKEDIN.COM/IN/SANDEEPPR
• HTTPS://TWITTER.COM/SNDPPR
Questions???

Pair programming

  • 1.
  • 2.
    ABOUT ME  STARTEDMY 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
  • 3.
  • 4.
    AGENDA  WHAT ISPAIR PROGRAMMING?  PARTICIPANTS IN PAIR PROGRAMMING  PAIRING VARIATIONS  MYTHS  GUIDELINES  ADVANTAGES  PROBLEMS  TIT BITS  QUESTIONS
  • 5.
    WHO IS APROGRAMMER? “LONELY MACHO WARRIORS, BATTLING AGAINST A SEA OF BITS AND BYTES.”Professor Matthias Felleisen
  • 6.
    WHEN THINGS GORIGHT? WE ARE CHILDISHLY DELIGHTED WITH WHAT WE HAVE CREATED
  • 7.
    WHEN THINGS GOWRONG? “BANG-YOUR-HEAD-AGAINST- THE-WALL”
  • 8.
    “A TECHNIQUE THATCAN RADICALLY INCREASE THE NUMBER OF TIME THINGS GO RIGHT AND DECREASE THE NUMBER OF TIMES THINGS GO WRONG”
  • 9.
    THIS IS NOTPAIR PROGRAMMING
  • 10.
    PAIR PROGRAMMING WIKI DEFINITION PAIRPROGRAMMING 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.
  • 11.
    WHAT PAIR PROGRAMMINGMEANS?  PAIR DESIGN  PAIR DEBUGGING  PAIR TESTING  PAIR CODING
  • 12.
    DRIVER  FOCUSES ONTHE CODE AT HAND  SYNTAX  SEMANTICS  ALGORITHM
  • 13.
    OBSERVER  POINTER ORNAVIGATOR  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
  • 14.
    PAIRING VARIATIONS  EXPERT-EXPERT EXPERT-NOVICE  NOVICE-NOVICE
  • 15.
    EXPERT-EXPERT PAIRING  TOSOLVE 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 MENTORINGA 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 HAPPENSIN COLLEGES  MENTOR HAS BE ASSIGNED  EASY WAY TO LEARN THINGS  PAIRS ARE MORE LIKELY TO ASK QUESTION THAN INDIVIDUAL
  • 18.
    MYTHS  IT WILLDOUBLE 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 OF17INCH 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…  MAKEUSE 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 CODEREVIEW  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 ANDLOT MORE PROBLEMS  DEPENDENCY  SCHEDULING  THE EVER POPULAR EXPERT  COLOCATION  NOISE AND FACILITY CONSIDERATION  CONCENTRATION  DISAGREEMENT  OVERCONFIDENCE  RUSHING  SKILL IMBALANCE  SIMPLY NOT FOR EVERYONE
  • 23.
    TIT BITS MICROSOFT RESEARCHBY ANDREW BEGEL & NACHIAPPAN NAGAPPAN
  • 24.
    MICROSOFT RESEARCH BYANDREW BEGEL & NACHIAPPAN NAGAPPAN CONT…
  • 25.
    ALISTAIR COCKBURN &LAURIE WILLIAMS THE COSTS AND BENEFITS OF PAIR PROGRAMMING
  • 26.
    ALISTAIR COCKBURN &LAURIE WILLIAMS
  • 27.
    CONCLUSION • SUPPORT FROMTEAM/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
  • 28.
    RESEARCH LINKS • HTTP://RESEARCH.MICROSOFT.COM/PUBS/75108/ESEM-BEGEL- 2008.PDF •HTTP://WWW.CS.POMONA.EDU/CLASSES/CS121/SUPP/WILLIAMS_PR PGM.PDF • HTTP://WWW.SOBERIT.HUT.FI/~JVANHANE/PUBS/LICTHESIS_VANHAN EN.PDF • HTTP://CITESEERX.IST.PSU.EDU/VIEWDOC/DOWNLOAD?DOI=10.1.1.2 58.7427&REP=REP1&TYPE=PDF • HTTP://AGILE.VTT.FI/DOCS/PUBLICATIONS/2005/2005_MULTIPLE_CAS E_STUDY_PAIR_PROGRAMMING.PDF
  • 29.
    WAYS TO REACHME • SANDEEP.R@ACCELRYS.COM • SANDEEP.R@INDECOMM.NET • HTTPS://WWW.LINKEDIN.COM/IN/SANDEEPPR • HTTPS://TWITTER.COM/SNDPPR
  • 30.

Editor's Notes

  • #2 Get intro from everyoneName, team, technology.
  • #26 Alistair Cockburn (Humans and Technology, Dell RD)Laurie Williams (University of Utah Computer Science)