Session Dynamics from Knowledge Gaps Franz Zieris Lutz Prechelt 1 - - PowerPoint PPT Presentation

session dynamics
SMART_READER_LITE
LIVE PREVIEW

Session Dynamics from Knowledge Gaps Franz Zieris Lutz Prechelt 1 - - PowerPoint PPT Presentation

Explaining Pair Programming Session Dynamics from Knowledge Gaps Franz Zieris Lutz Prechelt 1 zieris@inf.fu-berlin.de prechelt@inf.fu-berlin.de Motivation Expectations in industry: Our Overall Research Goal Why pair-program?


slide-1
SLIDE 1

Franz Zieris

zieris@inf.fu-berlin.de

Lutz Prechelt

prechelt@inf.fu-berlin.de

Explaining Pair Programming Session Dynamics from Knowledge Gaps

1

slide-2
SLIDE 2

Motivation

  • Expectations in industry:

Why pair-program?

Better design and fewer defects Learn from each other or together Understand legacy parts of the software system

  • Our Overall Research Goal

– Understand how industrial pair programming actually works

  • Research Question

What are the underlying mechanisms of knowledge transfer in pair programming?

  • Intended Outcome

– Advise practitioners – behavioral (anti-)patterns

2

slide-3
SLIDE 3

Qualitative Data Analysis

3

Theoretical sampling: 26 sessions (9 companies, 16 pairs)

  • from a total of 67 sessions
  • Grounded Theory approach
  • Recorded industrial PP sessions

(audio, webcam, screen)

= 39.5 hours total

slide-4
SLIDE 4

Qualitative Data Analysis

4

? ! OK Ah! Rly? …

Analysis of pair programmers' dialog:

  • What do they ask for? What do they explain?
  • What do they know? What do they learn?

26 pairings of professional developers

slide-5
SLIDE 5

Observation 1: The Primary Gap

5

One partner already worked on the task

slide-6
SLIDE 6

Observation 1: The Primary Gap

6

= task-relevant system knowledge

One partner already worked on the task

current state of implementation, classes, call hierarchies, defects, test/build setup, configuration state, …

Primary Gap

I'll show you what I did. OK

slide-7
SLIDE 7

What about more homogenous pairs?

7

One partner already worked on the task

Both partners with similar prior involvement

= task-relevant system knowledge

slide-8
SLIDE 8

What about more homogenous pairs?

8

Both partners with similar prior involvement

= task-relevant system knowledge recently worked in code area basic knowledge

  • f software

working in unknown terrain

One partner already worked on the task

slide-9
SLIDE 9

Observation 2: The Secondary Gap

9

Both partners with similar prior involvement

= task-relevant system knowledge recently worked in code area basic knowledge

  • f software

working in unknown terrain Secondary Gap Let's look at the superclass console.log(myObj);

slide-10
SLIDE 10

Observation 2: The Secondary Gap

10

Both partners with similar prior involvement

= task-relevant system knowledge Good system understanding Medium system understanding Little system understanding

Acquiring System Knowledge together works for most pairs … but not for all

slide-11
SLIDE 11

A Different Kind of Knowledge

11

Type? Function? I don't even know what this is.

S knowledge (task-relevant system understanding) G knowledge (task-relevant general software development knowledge)

Data structure holding the application state? How to modify and read the state? … Syntax of programming language? Higher-order functions? Application framework? Test framework? …

Task: implement test case

Where is the initial value?

slide-12
SLIDE 12

Roles of S and G knowledge

12

S: Task-relevant System Knowledge G: Task-relevant General Software Development Knowledge Large G need: problematic Small G need: not problematic

In general: S needs must be addressed for productive work

(e.g., not knowing some test feature) (e.g., not knowing the test framework)

slide-13
SLIDE 13

The G Opportunity

13

Do you know the Template Method pattern? G Opportunity seized G Opportunity not seized Why did she do that? G Opportunity (e.g., knowing more about design patterns) S: Task-relevant System Knowledge G: Task-relevant General Software Development Knowledge

slide-14
SLIDE 14

Overall Session Dynamic

14

S G

  • 1. Close Primary Gap
  • 2. Close Secondary Gap
  • 3. Seize G Opportunity

Overall Dynamic

26 pairings of professional developers

slide-15
SLIDE 15

Overall Session Dynamic

15

S G

  • 1. Close Primary Gap
  • 2. Close Secondary Gap
  • 3. Seize G Opportunity

Overall Dynamic

26 pairings of professional developers

slide-16
SLIDE 16

Overall Session Dynamic

16

S G

  • 1. Close Primary Gap
  • 2. Close Secondary Gap
  • 3. Seize G Opportunity

Overall Dynamic

26 pairings of professional developers

slide-17
SLIDE 17

Overall Session Dynamic

17

S G

  • 1. Close Primary Gap
  • 2. Close Secondary Gap
  • 3. Seize G Opportunity

Overall Dynamic

26 pairings of professional developers

slide-18
SLIDE 18

Summary

18

S G

  • A lack of and differences in

system understanding are more important than differences in general programming experience

  • What matters is task-

relevant knowledge → different knowledge needs, different session dynamic

slide-19
SLIDE 19

Summary

19

S G

  • A lack of and differences in

system understanding are more important than differences in general programming experience

  • What matters is task-

relevant knowledge → different knowledge needs, different session dynamic

  • Mutually satisfactory

constellation: Complementary Gaps

slide-20
SLIDE 20

Summary

20

S G

  • A lack of and differences in

system understanding are more important than differences in general programming experience

  • What matters is task-

relevant knowledge → different knowledge needs, different session dynamic

  • Mutually satisfactory

constellation: Complementary Gaps

preprint

http://inf.fu-berlin.de/inst/ag-se/ pubs/ZiePre20-ppsessiondyn.pdf

slide-21
SLIDE 21

Images

https://web.archive.org/web/20080509191418/http://www.cenqua.com/pairon/ Icon "design" by Adrien Coquet from the Noun Project Icon "Bug" by Minh Do from the Noun Project Icon "knowledge" by Olivia from the Noun Project Icon "Box" by No More Heroes from the Noun Project Icon "corner webs" by Kate Maldjian from the Noun Project Icon "Computer" by Denis Shumaylov from the Noun Project

21