Cooperation, Collaboration and Pair-Programming: Field Studies on Backup Behavior - Franz Zieris

Page created by Felix Reed
 
CONTINUE READING
Cooperation, Collaboration and Pair-Programming: Field Studies on Backup Behavior - Franz Zieris
Cooperation, Collaboration
      and Pair-Programming: Field
      Studies on Backup Behavior

Franz Zieris
franz.zieris@fu-berlin.de           1
Cooperation, Collaboration and Pair-Programming: Field Studies on Backup Behavior - Franz Zieris
Reminder

This paper is a peer-reviewed and
accepted journal article.
  – Status is Corrected Proof:
    “Articles in Press that contain the authors'
    corrections”.

                                                   2
Cooperation, Collaboration and Pair-Programming: Field Studies on Backup Behavior - Franz Zieris
Aim?    Identify situations in which pair programming is likely to be truly
        needed and thus most beneficial.
How?    Study and classify a broad range of developer interactions,
        evaluating them for type, purpose an patterns of occurrence.
What?   Two studies: Students and professionals, both of them free to
        interact as they liked.

Results: Solo work is important component of team work.
         Team interactions have two purposes:
         Cooperation & Collaboration.
         Collaborative behavior occurs much less often.
         Mandatory Pair Programming may be less efficient.

                                                                          3
Cooperation, Collaboration and Pair-Programming: Field Studies on Backup Behavior - Franz Zieris
Let’s start reading …

                        4
Cooperation, Collaboration and Pair-Programming: Field Studies on Backup Behavior - Franz Zieris
Definitions
• Backup Behavior:

                         5
Cooperation, Collaboration and Pair-Programming: Field Studies on Backup Behavior - Franz Zieris
Definitions
• Backup Behavior:

  – Deutsch: Unterstützung, Beistand

                                       6
Definitions
• Backup Behavior:

  – For the authors, all PP is backup behavior
                                                 7
Definitions
• Collaborative & Cooperative Activities:

                                            8
OK, so what did they do?

                           9
The Study
• Development Team:
  –   eXtreme Programming (but PP is optional)
  –   10 developers, 10-15 years experience
  –   3 issue types (user stories, bugs, tasks)
  –   each issue: 1 responsible developer
• Policy: sessions last 25 minutes max.
  – team had been using a timing software for
    several month
  – start: enter developer name(s) and issue ID
  – after 25 min: notification window pops up

                                                  10
The Data
• Recorded 4915 sessions
  – length: 1 to 25 minutes
  – content: issue ID and participating devs
  – 4001 solo sessions, 914 BB (pair) sessions
• Related to 300 issues
  – each of them has a sequence of sessions
  – 200 of them are shorter than 25 sessions

                                                 11
Patterns

           12
Pattern SB

             13
What about
Cooperation/Collaboration?

                             14
Pattern SB: Coop./Collab.
   Collaboration
  22 ≥ 5 BB
        12

              10           Cooperation
                             < 5 BB
                   2
                       5
                               4
                                     4
                                         2

                                             15
Cooperation/Collaboration
• The authors’ consideration:
  Less than five pair-sessions per issue  task nature
  requires little involvement  cannot be true collaboration
   it is cooperation
• Consequence (not discussed):
   – Four pair sessions (2:00 h) to fix a bug is “cooperation”.
   – Five pair sessions (1:30 h) plus one solo session (0:30 h) to fix
     a bug is “collaboration”.
• Maybe: distribution of BBs/issue actually has two clusters,
  and 5 is a good discriminator, but:
   – This is, at best, implied in the text.
   – It’s unlikely, because from the 8 SB-patterned-issues:
     5 BBs (1x), 4 BBs (2x)
   – Even if there were two clusters and a good discriminator: That
     says nothing about the meaning of the clusters.
       • The authors themselves say that cooperation and collaboration have
         no clear boundary and that only “shared goals” – something really
         difficult to observe – make collaboration “collaborative”.         16
All Patterns: Coop./Collab.

                              17
Remainder of the study
                 red + yellow: the
                 developer worked
                 on n issues during
                 which he received
                 help from another

                 “Four developers
                 without
                 collaboration.”
                 i.e. with no issue
                 that was worked on
                 in more than 5 pair
                 sessions

                 What does this plot
                 display anyway?

                                  18
Remainder of the study
                 “To better
                 understand the
                 various working
                 styles.”

                 Same plot as
                 before, but
                 normalized for
                 each developer.

                 Again, what
                 does it show?

                                 19
Remainder of the study
           “To better visualize the
           amount of effort involved in
           solo, collab. and coop.
           development”

           So far: coop./collab. was
           determined for issues, now it is
           for sessions.
           I.e. the same four sessions
           would be either coop. or
           collab. depending on whether
           or not there is another pair-
           session for this issue.

                                              20
Conclusions of the Study
• Developers work in pairs, even without
  being forced to do so (40% of their time).
• Distinction between cooperation and
  collaboration is important.
• The patterns have similar occurrences so
  they reflect natural behavior.
• Developers sense the higher cost of
  collaboration (compared to cooperation)
  and therefore avoid it.
                                               21
Distinction between cooperation and
collaboration is important.

The patterns have similar occurrences
so they reflect natural behavior.

 Developers sense
 the higher cost of
 collaboration                          22
But wait a second …
• We just took a look a the 2nd study.
• There was another one, involving
  two 5-person teams of students.

                                         23
Data Collection

• 1st study: do something, when finished, create
  record of what happened.
• 2nd study: create record with issue ID and
  persons, do something, after 25 minutes either
  stop it or start a new session
                                                   24
Pattern extraction

Patterns                    Available and used   How to create
                            data of 1st study    session sequences?
     Sequence:
     Sessions of an issue

                                                                25
Problem List
1. Distinction between Coop./Collab. is highly
   questionable.
2. The purpose of the 1st study is unclear: the
   extraction of the pattern is not described,
   maybe even impossible.
3. The company uses the recorded data (devs,
   time, issue) for “accounting” and “software
   engineering purposes”.
  – If persons are measured individually, they are less
    likely to engage in group activities  damper for
    pair programming, but not discussed in the paper.
4. The effects of the 25+5 rule are not discussed.
5. Reference to previous publications raises more
   questions (see next slide)                             26
Re-use of data

• Coman et al. (2014):
   – 9 months, 10 developers
   – Sessions: 25+5 minutes policy              What does “some of
• Fronza et al. (2009):                         the same data” mean?
   – 10 months, 15+2 developers                 Same team?
   – Sessions: “enter data per story point”
• Coman et al. (2008):
   – 3 months, 14+2 developers
   – Sessions: “enter data on start, stop whenever they finish”
• In each study:
   – Devs. are 30-40 year old Italians with university degrees in
     computer-related areas, 10-15 years experience, and mainly
     using C#
                                                                       27
Problem List (c’d)
6. Suboptimal choices of examples for an
   interest in pair programming application.

  22
       12
                                       8 SB-patterned issues,
            10
                                      total of 61 BB sessions:
                                          ~7-8 BBs/issue
                 2
                     5
                         4           43 other-patterned issues
                             4
                                 2     (Sg, BO, Bg, BS, & MX),
                                      total of 853 BB sessions:
                                            ~20 BBs/issue

                                                             28
Problem List (c’d)
7. No distinction between bug, feature, task
  –   everything is an issue
8. Very little information about the distribution of:
  –   (pair) sessions per issue
  –   session length, issue length
  –   developers per issue (always the same pair?)
  –   work mode per developer (in hours)
9. Unjustified claims (not presented/not possible):
  –   “PP is used to overcome unexpected difficulties.”
  –   “PP is closely related to task and team characteristics.”

                                                             29
Problem List (c’d)
10. Unclear conclusions:
  –   “important coop./collab. distinction”
  –   “natural behavior leads to even pattern
      distribution”
  –   “developers perceive higher cost of collab.
      and therefore prefer coop. and solo”

11. No discussion of the nature of the
    “backup behavior” – the only considered
    facet is the negative impact on the
    developer’s productivity.
                                                    30
Abstract revisited

Aim?    Identify situations in which pair programming is likely to be truly
        needed and thus most beneficial.
How?    Study and classify a broad range of developer interactions,
        evaluating them for type, purpose an patterns of occurrence.
What?   Two studies: Students and professionals, both of them free to
        interact as they liked.

Results: Solo work is important component of team work.
         Team interactions have two purposes:
         Cooperation & Collaboration.
         Collaborative behavior occurs much less often.
         Mandatory Pair Programming may be less efficient.

                                                                         31
Reminder

This paper is a peer-reviewed and accepted
               journal article.

But apparently reviewers are human after all.

                                                32
Thank you!

             33
You can also read