Let's Pair!

Why we do it
Become a more effective engineer!

Communication & Collaboration
No engineer works in isolation

Communication Skills
- Communication skills are just as, if not more, important as technical skills
- Being an effective engineer entails practicing empathy
Expression Skills
- Practice expressing your ideas and execution plan
- Learn to use the correct language
Listening Skills
- Expand your mind through learning from others
- different approaches, tools, best practices
- Practice understanding another person's thought process

Collaboration
Two heads are often better than one!
- Bring more ideas to the table
- Get perspective and discuss various approaches
- Extra pair of eyes - catch more bugs
- On the job you'll be collaborating with others on a team

How we do it
Driver / Navigator Dynamics

Driver vs Navigator Roles
Driver
-
Hands on the keyboard
-
Listens for direction from Navigator
-
Understand the plan (ask questions!)
-
Write pseudocode and actual code
-

Use one shared computer. Both people should be looking at the same set of files.
Navigator
-
Totally hands off
-
Expresses what to do and how to do it using plain English
-
"iterate through the array", NOT "write for-var-i-equals-zero-semi-colon..."
-
Logistics
- Find someone new to pair with
- Briefly re-introduce yourselves
- Work off the same computer
- Agree on starting roles (driver vs. navigator)
- Switch off and aim for a 50/50 balance

Make it a positive experience
- Have one another in mind
- Spend time getting on the same page and communicating rather than racing to the finish line!
- Be curious about how other people approach problems and what you can learn from them

Be a good pair - Senior Person
If you find yourself more experienced than your pair, take this as an opportunity to...
- practice communicating clearly
- deepen your understanding
- solidify your technical skills
-
practice teaching and empathy
- remember what it was like when you were less experienced
- make a positive impact on another person!

Be a good pair - Junior Person
If you find yourself less experienced than your pair, take this as an opportunity to...
- deepen your understanding
- solidify your technical skills
- be curious and ask questions
- express when you don't understand something
- be grateful for the outside support!

Useful Tips
What to do and
what not to do

Good Practices
- check in with one another regularly
- provide feedback to improve the experience
- practice patience, empathy, and understanding
- if there's conflict, talk to instructor or TA

Antipatterns
Be sure to avoid the following:
- hogging the driver's seat
- being too afraid to navigate
- being too aggressive or too shy
- navigating while driving
- stubborn attachment to your own ideas
- being offensive, rude, or condescending

Key Takeaways
- Pair programming rocks
- You'll become a more effective engineer
- Communication
- Collaboration
- Empathy
- Follow the Driver / Navigator dynamic
- Support one another
- Have fun!!

Pair Programming Reflections
Look back on your experiences...

Value gained
What value have you personally experienced from pairing?

- Communication skills
- expression
- listening
- empathy
- Collaboration
- knowledge sharing
- different perspectives and approaches
- immediate bug squashing
- connecting with awesome people
Challenges faced
What challenges have you faced?

Junior pair concerns?
Senior pair concerns?
Lessons Learned
What lessons have you learned and how will you apply them?

Keep it up!!

Pair Programming
By telegraphprep
Pair Programming
- 1,718
