Slide 1

Slide 1 text

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