Pair programming

283 views
163 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
283
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Get intro from everyoneName, team, technology.
  • Alistair Cockburn (Humans and Technology, Dell RD)Laurie Williams (University of Utah Computer Science)
  • Pair programming

    1. 1. PAIR PROGRAMMING BY SANDEEP P R
    2. 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
    3. 3. PAIR PROGRAMMING
    4. 4. AGENDA  WHAT IS PAIR PROGRAMMING?  PARTICIPANTS IN PAIR PROGRAMMING  PAIRING VARIATIONS  MYTHS  GUIDELINES  ADVANTAGES  PROBLEMS  TIT BITS  QUESTIONS
    5. 5. WHO IS A PROGRAMMER? “LONELY MACHO WARRIORS, BATTLING AGAINST A SEA OF BITS AND BYTES.”Professor Matthias Felleisen
    6. 6. WHEN THINGS GO RIGHT? WE ARE CHILDISHLY DELIGHTED WITH WHAT WE HAVE CREATED
    7. 7. WHEN THINGS GO WRONG? “BANG-YOUR-HEAD-AGAINST- THE-WALL”
    8. 8. “A TECHNIQUE THAT CAN RADICALLY INCREASE THE NUMBER OF TIME THINGS GO RIGHT AND DECREASE THE NUMBER OF TIMES THINGS GO WRONG”
    9. 9. THIS IS NOT PAIR PROGRAMMING
    10. 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.
    11. 11. WHAT PAIR PROGRAMMING MEANS?  PAIR DESIGN  PAIR DEBUGGING  PAIR TESTING  PAIR CODING
    12. 12. DRIVER  FOCUSES ON THE CODE AT HAND  SYNTAX  SEMANTICS  ALGORITHM
    13. 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
    14. 14. PAIRING VARIATIONS  EXPERT-EXPERT  EXPERT-NOVICE  NOVICE-NOVICE
    15. 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. 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. 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. 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. 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. 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. 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. 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
    23. 23. TIT BITS MICROSOFT RESEARCH BY ANDREW BEGEL & NACHIAPPAN NAGAPPAN
    24. 24. MICROSOFT RESEARCH BY ANDREW BEGEL & NACHIAPPAN NAGAPPAN CONT…
    25. 25. ALISTAIR COCKBURN & LAURIE WILLIAMS THE COSTS AND BENEFITS OF PAIR PROGRAMMING
    26. 26. ALISTAIR COCKBURN & LAURIE WILLIAMS
    27. 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
    28. 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. 29. WAYS TO REACH ME • SANDEEP.R@ACCELRYS.COM • SANDEEP.R@INDECOMM.NET • HTTPS://WWW.LINKEDIN.COM/IN/SANDEEPPR • HTTPS://TWITTER.COM/SNDPPR
    30. 30. Questions???

    ×