Extreme Development: Pair Programming
-
Upload
devin-olson -
Category
Software
-
view
60 -
download
2
Transcript of Extreme Development: Pair Programming
Extreme Development:Pair ProgrammingDevin S. OlsonCollaborative Solutions DeveloperCzarnowski Exhibit Services
Mike McGarelCollaborative Solutions DeveloperCzarnowski Exhibit Services
• Who we are
• What is “Pair Programming”?
• History of pair programming
• Basic concepts
• Benefits
• Breakdowns
• Tools
• Getting started
AD107Extreme Development: Pair Programming
Agenda
• Collaborative Solutions Developer at Czarnowski Display Services
• Notes / Domino consultant since 1995 (that's R3 for you punks)
• PCLP SA/AD R4.6, R5, R6, R7 (stopped taking tests after that)
• Beer Snob (Anheuser-Busch Certified Beer Master)
• IBM Champion
• LearningXPages.com
AD107Extreme Development: Pair Programming
Who We Are – Devin S. Olson
• Collaborative Solutions Developer at Czarnowski Display Services
• Working with Notes/Domino since version 4.6
• Working on the Web since 1999
• OpenNTF contributor
• Maintain MWLUG site
• IBM Champion (2015)
AD107Extreme Development: Pair Programming
Who We Are – Mike McGarel
• Two people
• Same code
• Same computer
• Same time
AD107Extreme Development: Pair Programming
What is “Pair Programming”?
By Calqui (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons
• 1950s and probably before
• Early adopters: NASA, Chrysler
• Part of Extreme or Agile development
• Widely used
- NASA, Boeing, Google, Facebook, Microsoft, Czarnowski ;-)
• Where it’s going
- “To the moon Alice!”
AD107Extreme Development: Pair Programming
History of Pair Programming
• “Lone wolves”
• Lack of formal programming training
• Unpleasant without third party tools
• Lack of Notes/Domino development standards
• Applications designed to solve specific problems
AD107Extreme Development: Pair Programming
Why Is It Rare in Notes/Domino?
• Driver
• Navigator
• Switching
• Task oriented
• Scheduled times
• Temporary partnerships
• Combination of different skill sets
AD107Extreme Development: Pair Programming
Basic Concepts
Images courtesy of Streetwise Motorsportswww.streetwiseparts.com
• Faster deliverables
• Better quality code
• Shared knowledge
• Improved team communication
• Personal growth
• "You are not alone"
AD107Extreme Development: Pair Programming
Competitive Advantages
Images courtesy of Streetwise Motorsportswww.streetwiseparts.com
• Personality conflicts
• Scheduling conflicts
• Distractions
• Teacher/student pattern
• "Code hog"
• “I wouldn’t do it that way”
AD107Extreme Development: Pair Programming
Breakdowns
Images courtesy of Streetwise Motorsports www.streetwiseparts.com
• Daily task list
• Pre/post review
• Time management
• Remove distractions
• Flexibility
• Coding standards
• Talk, talk, talk
AD107Extreme Development: Pair Programming
Making It Work
Images courtesy of Streetwise Motorsports www.streetwiseparts.com
• Code repository
- e.g. Github, Mercurial, Bitbucket
• Source control manager
- e.g. SourceTree
• Diagramming software
- e.g. Vizio, LucidChart
• Pen, paper and index cards
AD107Extreme Development: Pair Programming
Tools for Paired Programming
• High quality internet
• Online meeting software
- e.g. GoToMeeting, Skype, Sametime
• Online file sharing store
- e.g. Box, Dropbox, Connections, Google Drive, OneDrive
• Good speakers, microphone and headset
AD107Extreme Development: Pair Programming
Tools for Remote Programming
AD107Extreme Development: Pair Programming
A Quick Spin
Images courtesy of Streetwise Motorsports www.streetwiseparts.com
• So, is it working for us?
• Benefits
• Roadblocks (no breakdowns)
AD107Extreme Development: Pair Programming
Maintenance Check
• http://collaboration.csc.ncsu.edu/laurie/Papers/ESE%20WilliamsPairProgramming_V2.pdf
• http://www.thoughtworks.com/insights/blog/effective-navigation-in-pair-programming
• http://www.youtube.com/watch?v=saSEu2p7aAI&feature=youtu.be
• http://medium.com/@dickeyxxx/how-to-pair-program-d6741077e513#.rttygvc91
• http://www.wikihow.com/Pair-Program
• http://programmers.stackexchange.com/questions/166635/reasons-for-pair-programming
• http://c2.com/cgi/wiki?PairProgramming
• http://www.semanticscholar.org/paper/Pair-Programming-Williams/1d4c7da6969ad0df86aa1d81274305fddc1e20e0/pdf
• http://www.nomachetejuggling.com/2009/02/21/i-love-pair-programming/
• http://www.quora.com/What-is-the-origin-of-pair-programming
• https://www.agilealliance.org/glossary/pairing/
AD107Extreme Development: Pair Programming
References
• Research
• Start small
- Volunteer at work
- Contribute to open source
- Mentor at community college
AD107Extreme Development: Pair Programming
Call to Action!
Image courtesy of Wikimedia http://commons.wikimedia.org
AD107Extreme Development: Pair Programming
Thank You!Devin S. Olson
Email: [email protected]
Twitter, Skype: @spanky762
LinkedIn: www.linkedin.com/in/devinolson
www.learningxpages.com
Mike McGarel
Email: [email protected]
Twitter: @mmcgarel
LinkedIn: www.linkedin.com/in/mikemcgarel