Let's Pair!

Creative Commons License

Pair Programming

 

HowTo use Floobits

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,562