Swallowing the-pair-programming-pill

491 views
419 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
491
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Mute your sound\n
  • Who am I? El Tigre Grande.\nPairing everyday at work for the past 3 years (In fact, yesterday was my three year anniversary and my first day at Hashrocket I attended a conference).\n\nPaired with Javier Vidal, Jorge Gorka when they came to work at Hashrocket\n
  • Two developers, literally sitting side by side developing one piece of software at the same computer.\n\nKent Beck coined the term but he meant something very specific. Driver and Navigator - The driver is in control and the navigator is focused on what is upcoming.\n\nWhen I hear this I think World Rally Championships, or at the very least Rally Car Racing. Perhaps it’s not a perfect analogy.\n
  • Pair programming has evolved. Today I think pair programming has a much broader definition.\n\nTwo developers actively, consciously, collaborating to develop a piece of software at the same time.\n\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • I like to Travel. Just this year I’ve been to Edinburgh, Scotland; Austin, TX; Phoenix, AZ; Chicago, IL; and now Madrid. That left me with almost no vacation and more travel that I wanted to do. Admittedly, this was a selfish reason but, I wanted to visit my wife who was attending university about > 1600 km away.\n\nMy pair for that week and I decided to find a remote pairing solution that worked for us.\n\n
  • We can’t always be in the same location but, today that doesn’t mean you can’t collaborate on software.\n
  • We can’t always be in the same location but, today that doesn’t mean you can’t collaborate on software.\n
  • We can’t always be in the same location but, today that doesn’t mean you can’t collaborate on software.\n
  • \n
  • \n
  • \n
  • Stephen Caudill (Voxdolo) blogged about what worked for us with step by step instructions and Vim keybindings for TMUX.\n
  • It depends. No silver bullet. Use what works for you. Why are you using pair-programming at all?\n\n
  • Hopefully it's not (only) because you saw a talk at a conference.\n\n- Knowledge Transfer\n-- training\n-- Bus Sensitivity\n- Fewer bugs\n- Better architecture/design decisions\n- To make sure my team isn't screwing around\n\n
  • Few examples to illustrate why eliminating bugs as they happen or preventing them is favorable and how they happen.\n
  • Imagine Waldo is a mistake that was made while developing this drawing. If you had been with the artist as they drew this picture you would have seen the addition of Waldo and stopped and corrected the issue right away.\n
  • \n
  • How many people can read this? It may work poorly so let me read it. If you mind is able to parse the overview details no wonder it’s so easy to transpose letters or make other typos.\n
  • I want everyone to be able to see this so, here is a version in Espanol.\n
  • We’re going to watch a very quick video and I want you count the number of times the white (blanco) team pass the ball.\n\nIf you’ve seen this video please let everyone else see if they can count each pass.\n
  • How many people counted 14 passes? 15 passes? 16 passes? How many people saw a gorilla?\n
  • Another problem that can occur is inattentional blindness. You become so focused on the task at hand that you lose track of the obvious thing that you could not have otherwise missed. This is a trick known to and used by stage magicians.\n
  • \n
  • If we’re pairing and you know I am going to type ActiveRecord you will see the misspelling immediately and fix the problem.\n\nAs Luismi mentioned yesterday in order for examples to be deliverable in a talk format the ideas need to be simplified to the point it doesn’t appear worth the effort. So, a minor misspelling might not be worth pairing this is a simplified way to express the idea that your pair will help you find mistakes in your code and you in theirs. \n
  • With pairing learning is built-in. My experience is learning vim. I was happy using textmate. Until I saw the people I was pairing with and how efficient they had become in Vim in a short amount of time.\n\nEverything you do is an opportunity to show someone how to be more efficient and vice versa.\n
  • Another added benefit is the ability to continue development if a person is no longer available. This is often referred to as a Truck Number or Bus Sensitivity. What would happen if developer X were hit by a bus?\n
  • You are not as good of a developer as you think you are. You are also not as bad of a developer as you fear you are. Many people are scared of pairing because they don’t want to be exposed for knowing so little. Programming can be a very competitive environment but it doesn’t need to be. Can you be a “Yes, and” developer like Jessie was talking about yesterday. If someone comes in with a different idea do you block it because it’s different?\n
  • Better Design/Architecture\n\nWe have different experience to pull from and therefore can have different solutions come to mind. When we reach into our toolbox we have different sets of tools. Perhaps you have a bigger hammer or jewelers hammer.\n
  • While you may see enhanced accountability and responsibility this is a terrible reason to start pair programming. It implies that you don’t trust you team and is a smell that there are bigger issues.\n\n
  • \n
  • Raul mentioned “the zone” in his opening talk yesterday. When working in a pair on a sufficiently engaging problem pairs can achieve pair flow. In fact, at Hashrocket we have a large open room and when things are clicking and you get into a rhythm the rest of the room falls away. However, you still have to be disciplined about which distractions you allow. \n\nAn added benefit is people will find it harder to interrupt you if you are in a conversation with another person. The same effect can also be achieved by talking to yourself, although I don’t recommend this approach.\n
  • With pairing learning is built in and developers become more efficient by learning best practices & shortcuts. Potential bugs are often found sooner. Also, the mastubatory exercise of going to find the perfect design is avoided when you have to convince your pair to masturbate with you.\n
  • Clearly then these people don’t know what they are doing Corey Haines, Kent Beck, Uncle Bob. \n
  • Who cares?! This isn’t the nobel prize. Either that or work with someone whose work you can steal. :)\n
  • This is just getting silly. \n
  • Growing in popularity; Pair programming journeys or Tours\n
  • By knowing that they are working with someone who will not block their idea simply because it’s different you will be exposed to many different ideas\n
  • Anyone can use pair programming, it’s a tool for your toolbox. If pairing is not working for you it is likely because one of you doesn’t want it to work.\n
  • \n
  • \n
  • Swallowing the-pair-programming-pill

    1. 1. HASHROCKETEXPERTLY CRAFTED WEB Mechanics, Myths, & Mints The Pair Programming PillSwallowingPRESENTED BYJim ‘Big Tiger’ Remsik
    2. 2. HASHROCKETEXPERTLY CRAFTED WEB Mechanics, Myths, & Mints The Pair Programming PillSwallowingPRESENTED BYJim ‘Big Tiger’ Remsik
    3. 3. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big What is Pair Programming?
    4. 4. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big What is Pair Programming today?
    5. 5. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “BigLocal Configurations
    6. 6. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “BigLocal Configurations • One developer and his rubber duck
    7. 7. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “BigLocal Configurations • One developer and his rubber duck • Two developers, one keyboard, & one mouse
    8. 8. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “BigLocal Configurations • One developer and his rubber duck • Two developers, one keyboard, & one mouse • Two developers, two keyboards, & two mice, shared display
    9. 9. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “BigLocal Configurations • One developer and his rubber duck • Two developers, one keyboard, & one mouse • Two developers, two keyboards, & two mice, shared display • Two developers, two machines, & a network connection
    10. 10. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big
    11. 11. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big
    12. 12. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big
    13. 13. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big
    14. 14. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big What do you mean I can’t go on vacation?
    15. 15. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “BigRemote Configurations
    16. 16. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “BigRemote Configurations • Access to the view changes in real time
    17. 17. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “BigRemote Configurations • Access to the view changes in real time • Ability for either developer to edit the code
    18. 18. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “BigRemote Configurations • Access to the view changes in real time • Ability for either developer to edit the code • Ability to communicate (Audio at least)
    19. 19. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “BigiChat or Screen-sharing
    20. 20. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “BigiChat or Screen-sharing • See exactly what the other person sees • High bandwidth requirements • Screen lag • No ability to share video
    21. 21. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “BigTeamviewer
    22. 22. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “BigTeamviewer • See exactly what the other person sees • High bandwidth requirements • Not free ($)
    23. 23. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “BigShared Terminal
    24. 24. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “BigShared Terminal • See exactly what the other person sees • Low bandwidth requirements • Audio/Video channels are still available • Free • Available on most machines • We could use Vim!
    25. 25. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big Remote Pairing config with TMUX/Vim/Skype http://vurl.me/WPP
    26. 26. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big Which of these should you use?
    27. 27. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big Why are you using pair-programming?
    28. 28. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big Fewer Bugs
    29. 29. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big
    30. 30. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big
    31. 31. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big Aoccdring to rscheearch at Cmabrigde uinervtisy, it deosnt mttaer waht oredr the ltteers in a wrod are, the olny iprmoetnt tihng is taht the frist and lsat ltteres are at the rghit pclae. The rset can be a tatol mses and you can sitll raed it wouthit a porbelm. Tihs is bcuseae we do not raed ervey lteter by it slef but the wrod as a wlohe.
    32. 32. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big Sgeun un etsduio de una uivenrsdiad ignlsea, no ipmotra el odren en el que las ltears etsan ersciats, la uicna csoa ipormtnate es que la pmrirea y la utlima ltera esten ecsritas en la psiocion cocrrtea. El rsteo peuden estar ttaolmntee mal y aun pordas lerelo sin pobrleams. Etso es pquore no lemeos cada ltera por si msima preo la paalbra es un tdoo.
    33. 33. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big The White Team Exercise
    34. 34. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big
    35. 35. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big
    36. 36. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big Inattentional Blindness
    37. 37. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big
    38. 38. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big
    39. 39. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big
    40. 40. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big AcvtieRecord
    41. 41. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big Knowledge Transfer
    42. 42. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big Knowledge Transfer
    43. 43. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big Put your skills in context
    44. 44. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big“The intersection of your ignorance and my ignorance is much smaller than each of our individual ignorances”
    45. 45. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big “I want my team to pair so that I can make sure that my team is not screwing around”
    46. 46. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big Common Myths
    47. 47. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big I wont be able to get into the "zone"
    48. 48. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big “Two developers working on one piece of software will take twice as long to achieve the same results as if they were separated”
    49. 49. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big “Pair programming is good for training. But, once you know what youre doing, its a waste of time”
    50. 50. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big “I’ll have to share credit for my work.”
    51. 51. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big “I’ll have to go to the bathroom at the same time as my pair.”
    52. 52. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big Summary
    53. 53. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big Yes, and ...
    54. 54. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big It’s not for everybody but, it is for anybody.
    55. 55. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big Pair programming requires a mutual respect between the developers and an ability to communicate.
    56. 56. Mechanics, Myths, and Mints: Swallowing the Pair Programming pillTiger” Remsik Jim “Big HASHROCKET EXPERTLY CRAFTED WEB Thank you Jim Remsik bigtiger@hashrocket.com

    ×