2. • Who we are
• What is “Pair Programming”?
• History of pair programming
• Basic concepts
• Benefits
• Breakdowns
• Tools
• Getting started
AD107Extreme Development: Pair Programming
Agenda
3. • 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
4. • 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
5. • 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
6. • 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
7. • “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?
8. • Driver
• Navigator
• Switching
• Task oriented
• Scheduled times
• Temporary partnerships
• Combination of different skill sets
AD107Extreme Development: Pair Programming
Basic Concepts
Images courtesy of Streetwise Motorsports
www.streetwiseparts.com
9. • 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 Motorsports
www.streetwiseparts.com
10. • 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
11. • 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
12. • 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
13. • 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
14. AD107Extreme Development: Pair Programming
A Quick Spin
Images courtesy of Streetwise Motorsports www.streetwiseparts.com
15. • So, is it working for us?
• Benefits
• Roadblocks (no breakdowns)
AD107Extreme Development: Pair Programming
Maintenance Check
17. • 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