There are varying opinions on pair within the programming community and work as a whole. In this presentation, we will dive into how different companies (i.e. Pivotal, Cengage, Menlo) do it and the reasoning behind it. We also use this as a discussion piece to drive what makes pairing succeed or fail as a whole.
1. Pairing with People
- Pair Programming
-Why I Don't Like Pair Programming (and Why I Left Pivotal)
- Mob Programming and XP
2. Defining
Pair programming consists of two programmers sharing a single
workstation (one screen, keyboard and mouse among the pair).The
programmer at the keyboard is usually called the "driver", the other,
also actively involved in the programming task but focusing more on
overall direction is the "navigator"; it is expected that the
programmers swap roles every few minutes or so.
https://www.agilealliance.org/glossary/
3. Origins
1992: "Dynamic Duo" was were it was first seen
1998: in "Chrysler goes to Extremes“
2000: (or earlier) - the roles of Driver and Navigator are introduced
2015+ Still growing and expanding
https://www.mindtools.com/pages/article/newTED_07.htm
4. Talking
Different
Styles…
Menlo Innovations
How do they pair?
When do they pair?
Why do they pair?
How often do they rotate?
What did you notice about noise?
Cengage
How do they pair?
Why did they start pairing?
What style do they apply?
Are they pairing full time?
What did you notice about noise?
6. Why I Don't
Like Pair
Programming
(andWhy I Left
Pivotal)
How does Pivotal approach pairing?
Is it correct?
How does it differ from Menlo and Cengage?
What complications can this bring?
Can people adjust or not?
Does this cause a lot of waste?
http://mwilden.blogspot.com/2009/11/why-i-dont-like-pair-programming-and.html
7. Mob
Programming
andXP
Mob programming is a software development approach where
the whole team works on the same thing, at the same time, in the
same space, and at the same computer.
Extreme programming (XP) is a software development
methodology which is intended to improve software quality and
responsiveness to changing customer requirements. As a type of
agile software development,[1][2][3] it advocates frequent
"releases" in short development cycles, which is intended to
improve productivity and introduce checkpoints at which new
customer requirements can be adopted.
8. What do they
bring to the
table?
What does programming or working in a group promote?
What qualities does that group have to have?
Are there things we could promote?
How does extreme programming fit within this model?
Can we have other areas conform to this (i.e. project
management)?