Pair Programming

13,313 views

Published on

Naresh and Bhavin's Presentation from the Pair Programming Workshop at Agile Chennai

Published in: Technology
2 Comments
5 Likes
Statistics
Notes
No Downloads
Views
Total views
13,313
On SlideShare
0
From Embeds
0
Number of Embeds
5,585
Actions
Shares
0
Downloads
386
Comments
2
Likes
5
Embeds 0
No embeds

No notes for slide

Pair Programming

  1. 1. Pair Programming You will never work alone again! Naresh Jain naresh@agilefaqs.com Licensed Under Creative Commons by Naresh Jain 1
  2. 2. What is Pair Programming ? 2
  3. 3. Video of a Sniper team working together 3
  4. 4. What did we see ?Two guys working on the same taskBoth have the same targetBoth have different expertiseOne executes the taskThe other watches for external factors, evaluates the situation,corrects him and validates success after executionTwo guys working as a team Licensed Under Creative Commons by Naresh Jain 4
  5. 5. What is Pair Programming ? 5
  6. 6. src: ThoughtWorks India 6
  7. 7. src: ThoughtWorks India 6
  8. 8. Pairing   Stationsrc: ThoughtWorks India 6
  9. 9. Driver Pairing   Stationsrc: ThoughtWorks India 6
  10. 10. Driver Navigator Pairing   Stationsrc: ThoughtWorks India 6
  11. 11. Next  line  of  code,   syntax,  API,   class  under  dev   Driver Navigator Pairing   Stationsrc: ThoughtWorks India 6
  12. 12. are  we  in  the  right  direction?,   Next  line  of  code,   requirements,  alternatives,   syntax,  API,   next  test  case, class  under  dev   impact   Driver Navigator Pairing   Stationsrc: ThoughtWorks India 6
  13. 13. Isnt it a waste ?Two developers will do the work of oneJunior guys will slow down seniorsLess work will get doneMy cost will doubleWhy would I put two people on a job that just one can do? Licensed Under Creative Commons by Naresh Jain 7
  14. 14. TICO TICO (Guitar Four-Hand Exchanging) Video http://www.youtube.com/watch?v=CcsSPzr7ays 8
  15. 15. 9
  16. 16. 10
  17. 17. 11
  18. 18. 12
  19. 19. How does it Help? Licensed Under Creative Commons by Naresh Jain 13
  20. 20. Continuous Review 14
  21. 21. Less DefectsDefects caught early 15
  22. 22. Improvement in theQuality of the Design 16
  23. 23. Better Problem Solving 17
  24. 24. More Economical 18
  25. 25. “Pair-Pressure”ensures timely delivery 19
  26. 26. Rapid Hands-onApproach to Learning 20
  27. 27. Better Induction ofnew Team Members 21
  28. 28. Better Induction ofnew Team Members 22
  29. 29. Saved Effort on Intra-Team Documentation 23
  30. 30. Less Distraction leading to Higher Productivity 24
  31. 31. Improved Satisfaction 25
  32. 32. Sustainable Pace:Helps you slow down and think 26
  33. 33. Better Team Buildingand Communication 27
  34. 34. Project Management:Risk Mitigation Strategy 28
  35. 35. We are in the business of building software and this processrequires craft and skill, rather than a series of manual steps. Programming requires lot of thinking, creating abstractions, figuring out the logic and trying out things.An evolutionary, iterative and collaborative process. Its a lot more than just typing code. (Using the keyboard or even worse, using the mouse) 29
  36. 36. A Normal Pair Programming Videohttp://www.youtube.com/watch?v=q-QWdFa4awI 30
  37. 37. Consider the following... An experiment on Pair Programming at University of Utah Licensed Under Creative Commons by Naresh Jain 31
  38. 38. Cost and savingsLicensed Under Creative Commons by Naresh Jain 32
  39. 39. Cost and savingsLicensed Under Creative Commons by Naresh Jain 33
  40. 40. Cost of fixing defectsCost  of  defect Time Licensed Under Creative Commons by Naresh Jain 34
  41. 41. Cost of fixing defects Cost  of  defect Time“IBM reported spending about $250 million repairing and reinstalling fixes to 30,000 customer-reported problems. That is over $8,000 for each defect!” - “A Discipline for Software Engineering”, 1995, Humphrey, W.S. Licensed Under Creative Commons by Naresh Jain 34
  42. 42. Incorporating pair-programming into asoftware development process will help yield software products of betterquality in less time with happier, more confident programmers! 35
  43. 43. Points of resistance Things to watch out for... Licensed Under Creative Commons by Naresh Jain 36
  44. 44. Difficulty in convincing stakeholders to let twopeople work on one task 37
  45. 45. Everyone settles downinto a “Comfort Zone”Pairing would disrupt it 38
  46. 46. Strong Code Ownership 39
  47. 47. People Who Don’t Care 40
  48. 48. Developers not involvedin Estimation and Planning 41
  49. 49. InconsistentWorkstation Setup 42
  50. 50. Small Work Area (Cubicles) 43
  51. 51. Techniques of Pairing Licensed Under Creative Commons by Naresh Jain 44
  52. 52. Ping-Pong Pairing 45
  53. 53. Keyboard n Mice Pairing 46
  54. 54. Selective Pairing 47
  55. 55. Cross functional Pairing 48
  56. 56. Distributed Pairing 49
  57. 57. Tips n Tricks Licensed Under Creative Commons by Naresh Jain 50
  58. 58. Pairing Stations 51
  59. 59. Pair Rotation with Pair Hinging 52
  60. 60. PromiscuousPair Programming 53
  61. 61. Pairing Round 54
  62. 62. Pair Stairs 55
  63. 63. Spikes 56
  64. 64. Pairing Smells Things to Watch out for... Licensed Under Creative Commons by Naresh Jain 57
  65. 65. Pair Programming Anti Patterns Videohttp://www.youtube.com/watch?v=ReuFZYtGeCc 58
  66. 66. No Pair Rotation 59
  67. 67. Only one person driving Distracted Pair 60
  68. 68. Selective Pairing closer to a Release 61
  69. 69. Manager decides the Pairs 62
  70. 70. When its not necessary?Tasks which involve Mundane Work (may be)Trivial bug fixes like TyposOne person in the Pair is Sick Licensed Under Creative Commons by Naresh Jain 63
  71. 71. F.A.Q.sHow do you do estimation? Its 2 people working on one task now.How do you do performance reviews for individuals?Can we keep it optional for some people on a team? Licensed Under Creative Commons by Naresh Jain 64
  72. 72. ReferencesThe Costs and Benefits of Pair Programming - Laurie Williams & Alistair CockburnStrengthening the Case for Pair-Programming - Laurie Williams, Robert R. Kessler, Ward Cunningham & Ron JeffriesOn the Economic Feasibility of Pair Programming - Hakan Erdogmus & Laurie Williams Licensed Under Creative Commons by Naresh Jain 65
  73. 73. Thank You!Questions? Licensed Under Creative Commons by Naresh Jain 66

×