CPE 103 Pair Programming Administration
Rules and Procedures
Basic Procedures
Remember, you are being allowed to complete your programming
assignments and labs with a partner ONLY as long as you do it following
the principles of “pair programming” as described
in the Fun
with Pair Programming video.
Each partner should
take the “driver” role roughly 50% of the time the pair is working
together. The object is
to work together, learning from each other, not to divide the work into
two pieces with each partner working on a different piece.
This rule is inviolable: You may not touch the code without your
partner. This means you can't alter a single character
of your program unless you are working as a pair. If you
are caught working alone on your code you will be given a zero for the
assignment.
You may read the problem description individually. You may
think about how to attack the problem when you are alone. But you
may not write down anything or do any work on the computer unless you
are both working together. This means two people sitting
at one computer.
You are free to select any other student from your class to be
your
partner. Make sure that both names appear on all work submitted by
the pair. You only need to submit your work under one person's
username.
You should make a reasonable attempt to remain with the same
partner
for the
entire class. Research studies have shown that it can take several
weeks for a pair to “jell” and begin working well
together. Changing partners interferes with this jelling process.
Partner Coordination
You will choose or be assigned a partner to work with on the course
projects. This work is to be completed outside of class, so it is
your responsibility to schedule adequate time when you can meet to work
on the assignment together. The instructor suggests you write
down all scheduled meeting dates/times/places in your lab notebook so
there is documented evidence in the event someone flakes out.
If someone decides in advance they want to work solo on a particular
assignment, inform the instructor and he will try to find a partner for
the other person.
Coordination Breakdowns
If your partner doesn't show up to a scheduled programming
session you
have a coordination breakdown. In most cases you should wait for
the tardy partner, perhaps delaying, postponing, or rescheduling the
meeting. But if you are up against a deadline, you may be in a
situation where there is no other time remaining and the only way to
complete the assignment is to finish it alone. If you decide to
proceed
alone, you have abandoned pair programming and the assignment becomes a
solo assignment for you, with all the restrictions that implies.
If your partner arrives late ... too bad. You must proceed
solo!
Otherwise you MUST reschedule with your partner at a later time.
Unfortunately this may mean you suffer a late penalty.
If you feel you have been abandoned and decide to go solo, be sure to
save a copy of the team's work at the time of the breakup. This
way your partner has something they can submit that documents the work
they contributed to.
If you decide to break up the pair, obtain a new programming log and
cross out "Pair" and write "Solo." Then proceed to complete the
log as usual.
Success Tips
When first starting to work with a new partner, have a discussion about
how you like to work, your personal problem solving style,
introvert/extrovert, etc. Try to come to agreement about how to
make pair programming a success.
If the navigator starts to get bored, swap and let them drive.
Compromise. The solution doesn't always have to go your
way. If you never consider your partners ideas, you're not
pairing.
Discuss alternatives rationally. If you think one approach is
best, argue for it rationally by listing the strengths and
weaknesses. Then evaluate other approaches in the same
manner. Don't just raise your voice and say "I know this will
work!"
Talk a lot. Talk about what you are doing as you drive the entire
time. If 60 seconds goes by without saying anything, you aren't
talking enough.
Ask. If you are navigating and you don't understand what the
driver is doing you must ask. You can't navigate if you don't
know what's going on. Think: "If I was handed the keyboard right now,
would I be able to continue immediately?" You are helping to make
the work more collaborative, so you have to contribute.
Find a favorite breath mint.
The navigator can keep a "design rationale" in your notebook.
This will record important design decisions you made so you can refer
to it if you get confused.
Balance! Share driving. Talk a lot. Ask questions. Be
patient while your partner catches up. If you're confident,
practice humility. If you're shy, practice assertiveness.
Take breaks. Frequently.
Stay engaged. Both partners own everything. Be alert and
questioning. If your partner replies "Trust me, this will work",
that's not an adequate response. Insist that everything is
crystal clear to both people.