Software Development
Practices Patterns:
from Pair to Mob Programming
Herez Moise Kattan |herez at ime dot usp dot br
herez at acm dot org |herez at herez dot com dot br
Slide 2
Slide 2 text
Parafraseando Mario Quintana:
Enquanto alguns Frameworks passarão…
A pesquisa passarinho…
#NoFrameworks
Slide 3
Slide 3 text
Research Method
Slide 4
Slide 4 text
Pair
Programming
Principles and benefits
for your team
Slide 5
Slide 5 text
Pair Programming
Software Development technique in which two
developers work together on the same problem on the
same machine.
Slide 6
Slide 6 text
It is much
more than to
sit together!
Slide 7
Slide 7 text
Pilot
Worried about the
writing code,
language syntax, etc
The possession
of the keyboard
is related with
an increase of
commitment
Slide 8
Slide 8 text
Co-pilot
Broader view of
context, class,
software, next steps
and etc ...
Real time
feedback
Slide 9
Slide 9 text
What do I get
benefits by using
pair programming?
Slide 10
Slide 10 text
Reinforcing practices
that require discipline
such as automated
testing and refactoring
Slide 11
Slide 11 text
Prevents developers
from losing focus and
being distracted by
other things Pair rotation is also
important to prevent
losing focus of the
co-pilot
Slide 12
Slide 12 text
Transfer Knowledge
Slide 13
Slide 13 text
Real-time Code Review
Slide 14
Slide 14 text
The co-pilot should take
care for not lose focus or
just watch what the other
is doing!
Slide 15
Slide 15 text
The senior pilot should not the only one with
the possession of keyboard without giving the
other the opportunity to participate!
Slide 16
Slide 16 text
The first step is to
discuss how
functionality should
be implemented.
Slide 17
Slide 17 text
Often, just explaining your
idea to somebody else, it
gets changes for better!
Slide 18
Slide 18 text
The pilot should try to explain
the code he is creating due
cognitive learning or receiving
feedback
Slide 19
Slide 19 text
The co-pilot should express his
opinion at opportune moments,
avoiding to break the concentration
of the pilot.
Slide 20
Slide 20 text
Developers can (and should)
change positions when they
find it more productive!
Slide 21
Slide 21 text
I will not lose my
privacy to check my
emails and my
messages?
I will not lose my
privacy to check my
emails and my
messages?
Slide 22
Slide 22 text
The developers lose their
privacy to read messages,
emails, websites of personal
interest
But, on the other hand, it
helps to stay focused on the
job and the task!
Slide 23
Slide 23 text
One option is to provide a
more personal place of use
where developers have
time for this type of task
Slide 24
Slide 24 text
Have consideration
with your pair!
Watch out for
hygiene, education,
and communication!
Slide 25
Slide 25 text
But do I have to keep
pairing with the same
person on my team?
But do I have to keep
pairing with the same
person on my team?
Slide 26
Slide 26 text
The Ideal is to make a
rotation between the
pairs. You can change
it every day, task or
even in a few hours!
Slide 27
Slide 27 text
Always pairing between
the same people can
cause islands of
knowledge!
Slide 28
Slide 28 text
But with pair programming,
I do not lose productivity in
some cases e.g when both
in the pair are seniors
programmers?
But with pair programming,
I do not lose productivity in
some cases e.g when both
in the pair are seniors
programmers?
Slide 29
Slide 29 text
Programming and review
simultaneous in Pairs is one
pair programming extension
Slide 30
Slide 30 text
Simultaneous Style Pair Programming
2 people
1 task
Slide 31
Slide 31 text
The responsibility
for the task is also
of the pair! But
they will do
simultaneously!
Slide 32
Slide 32 text
They decide how to
split into chores!
Slide 33
Slide 33 text
They can decide to do tasks with
Pair Programming or simultaneous
style Pair Programming!
Slide 34
Slide 34 text
In the simultaneous style pair
programming, the code review is
done by the other person
Slide 35
Slide 35 text
No need to pair all the
time to get the
benefits of the
technique!
Slide 36
Slide 36 text
Is it possible to have more than
two people on the same problem
at the same time?
Slide 37
Slide 37 text
Mob Programming
The whole team sits in front
of a machine and a projector
and works on the same
problem
Slide 38
Slide 38 text
Help the introverts, stimulating the interaction,
making the environment ideal for them.
Slide 39
Slide 39 text
Suitable for problems requiring
expertise from other people!
Slide 40
Slide 40 text
It is a great way to
disseminate knowledge to
the entire team
Slide 41
Slide 41 text
It is a way to overcome very
difficult challenges or make
very important decisions,
giving each team member the
opportunity to contribute
Slide 42
Slide 42 text
Thank You!
Herez Moise Kattan | herez at ime dot usp dot br
herez at acm dot org | herez at herez dot com dot br