extreme development: pair programming
TRANSCRIPT
![Page 1: Extreme Development: Pair Programming](https://reader034.vdocuments.mx/reader034/viewer/2022042908/58f313561a28abaa6c8b45e5/html5/thumbnails/1.jpg)
Extreme Development:Pair ProgrammingDevin S. OlsonCollaborative Solutions DeveloperCzarnowski Exhibit Services
Mike McGarelCollaborative Solutions DeveloperCzarnowski Exhibit Services
![Page 2: Extreme Development: Pair Programming](https://reader034.vdocuments.mx/reader034/viewer/2022042908/58f313561a28abaa6c8b45e5/html5/thumbnails/2.jpg)
• Who we are
• What is “Pair Programming”?
• History of pair programming
• Basic concepts
• Benefits
• Breakdowns
• Tools
• Getting started
AD107Extreme Development: Pair Programming
Agenda
![Page 3: Extreme Development: Pair Programming](https://reader034.vdocuments.mx/reader034/viewer/2022042908/58f313561a28abaa6c8b45e5/html5/thumbnails/3.jpg)
• 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
![Page 4: Extreme Development: Pair Programming](https://reader034.vdocuments.mx/reader034/viewer/2022042908/58f313561a28abaa6c8b45e5/html5/thumbnails/4.jpg)
• 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
![Page 5: Extreme Development: Pair Programming](https://reader034.vdocuments.mx/reader034/viewer/2022042908/58f313561a28abaa6c8b45e5/html5/thumbnails/5.jpg)
• 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
![Page 6: Extreme Development: Pair Programming](https://reader034.vdocuments.mx/reader034/viewer/2022042908/58f313561a28abaa6c8b45e5/html5/thumbnails/6.jpg)
• 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
![Page 7: Extreme Development: Pair Programming](https://reader034.vdocuments.mx/reader034/viewer/2022042908/58f313561a28abaa6c8b45e5/html5/thumbnails/7.jpg)
• “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?
![Page 8: Extreme Development: Pair Programming](https://reader034.vdocuments.mx/reader034/viewer/2022042908/58f313561a28abaa6c8b45e5/html5/thumbnails/8.jpg)
• 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
![Page 9: Extreme Development: Pair Programming](https://reader034.vdocuments.mx/reader034/viewer/2022042908/58f313561a28abaa6c8b45e5/html5/thumbnails/9.jpg)
• 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
![Page 10: Extreme Development: Pair Programming](https://reader034.vdocuments.mx/reader034/viewer/2022042908/58f313561a28abaa6c8b45e5/html5/thumbnails/10.jpg)
• 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
![Page 11: Extreme Development: Pair Programming](https://reader034.vdocuments.mx/reader034/viewer/2022042908/58f313561a28abaa6c8b45e5/html5/thumbnails/11.jpg)
• 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
![Page 12: Extreme Development: Pair Programming](https://reader034.vdocuments.mx/reader034/viewer/2022042908/58f313561a28abaa6c8b45e5/html5/thumbnails/12.jpg)
• 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
![Page 13: Extreme Development: Pair Programming](https://reader034.vdocuments.mx/reader034/viewer/2022042908/58f313561a28abaa6c8b45e5/html5/thumbnails/13.jpg)
• 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
![Page 14: Extreme Development: Pair Programming](https://reader034.vdocuments.mx/reader034/viewer/2022042908/58f313561a28abaa6c8b45e5/html5/thumbnails/14.jpg)
AD107Extreme Development: Pair Programming
A Quick Spin
Images courtesy of Streetwise Motorsports www.streetwiseparts.com
![Page 15: Extreme Development: Pair Programming](https://reader034.vdocuments.mx/reader034/viewer/2022042908/58f313561a28abaa6c8b45e5/html5/thumbnails/15.jpg)
• So, is it working for us?
• Benefits
• Roadblocks (no breakdowns)
AD107Extreme Development: Pair Programming
Maintenance Check
![Page 16: Extreme Development: Pair Programming](https://reader034.vdocuments.mx/reader034/viewer/2022042908/58f313561a28abaa6c8b45e5/html5/thumbnails/16.jpg)
• 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
![Page 17: Extreme Development: Pair Programming](https://reader034.vdocuments.mx/reader034/viewer/2022042908/58f313561a28abaa6c8b45e5/html5/thumbnails/17.jpg)
• 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
![Page 18: Extreme Development: Pair Programming](https://reader034.vdocuments.mx/reader034/viewer/2022042908/58f313561a28abaa6c8b45e5/html5/thumbnails/18.jpg)
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