Observations on Knowledge Transfer of Professional Software - - PowerPoint PPT Presentation

observations on knowledge transfer
SMART_READER_LITE
LIVE PREVIEW

Observations on Knowledge Transfer of Professional Software - - PowerPoint PPT Presentation

Observations on Knowledge Transfer of Professional Software Developers during Pair Programming Franz Zieris Lutz Prechelt 1 zieris@inf.fu-berlin.de prechelt@inf.fu-berlin.de Typical pair programming scenarios 1. Solve a difficult problem


slide-1
SLIDE 1

Franz Zieris

zieris@inf.fu-berlin.de

Lutz Prechelt

prechelt@inf.fu-berlin.de

Observations on Knowledge Transfer

  • f Professional Software Developers

during Pair Programming

1

slide-2
SLIDE 2

Typical pair programming scenarios

  • 1. Solve a difficult problem
  • Combined ideas
  • Combined background knowledge

Developer Developer

  • 2. Introduce new team member
  • System understanding
  • Common practices, coding conventions

Senior member Newbie

2

knowledge knowledge

slide-3
SLIDE 3

Research Goal

Characterize how effective and efficient knowledge transfer works in pair programming.

  • Geared towards practitioners:

– Formulate patterns of beneficial and problematic behavior

3

slide-4
SLIDE 4

Data collection

Authentic

  • In-vivo

recordings of professionals: no artificial pairs, tasks,

  • r settings

Diverse

  • different

domains & pair types

4

slide-5
SLIDE 5

Data analysis

5

AA1 BA1 CA1 CA2 CB1 CA3 CA4 CA5 DA1 DA2 DA3 DA4 DA5 EA1 EA2 EA3 EA4 EA5 EA6 EA7 FA1 FA2 FA3 FA4 JA1 JA2 JA3 JA4 JA5 JA6 JA7 JA8 JA9 KA1 KA2 KA3 KA4 KA5 KA6 KA7 KA8* MA1 NA1 NA2 NA3 NA4 GA1 LA1 LB1

LotR 1 LotR 2 LotR 3

49+ Sessions from 11 companies 13 Sessions selected Lord of the Rings I-III

slide-6
SLIDE 6

Data analysis

6

Grounded Theory (Strauss & Corbin)

450 Knowledge Transfer Episodes analyzed 13 Sessions selected

slide-7
SLIDE 7

7

Three Examples

slide-8
SLIDE 8

Example 1: Efficient Pull Episode

8

return objectHandle.fetchM; fetchMiniObject() CMMiniObject fetchMiniObject(boolean allowMicroObject)

Do the MicroObjects still exist?

Context: Java, with complex self-written framework Task: Get business object (“MiniObject”) from proxy object (“objectHandle”)

Bob Carl

slide-9
SLIDE 9

Example 1: Efficient Pull Episode

9

return objectHandle.fetchMiniObject(true);

Do the MicroObjects still exist? Yes, they do. They do here, on your machine. On the working branch, however … true.

Context: Java, with complex self-written framework Task: Get business object (“MiniObject”) from proxy object (“objectHandle”)

Bob Carl

slide-10
SLIDE 10

Example 1: Efficient Pull Episode

10

return objectHandle.fetchMiniObject(true);

Do the MicroObjects still exist? Yes, they do. They do here, on your machine. On the working branch, however … true. Internal Knowledge Need Pull Episode Target Content

Context: Java, with complex self-written framework Task: Get business object (“MiniObject”) from proxy object (“objectHandle”)

Bob Carl

slide-11
SLIDE 11

Target Content: 0 Target Content: 0 Co-Produce Episode TC: ü Design Proposal TC: >0 External Knowledge Need Push Episode TC: >0 Internal Knowledge Need Talking Pioneer Episode TC: ü

RESYNC

Uh …

Exactly.

Example 2: Effective Resynchronization

11

B C

slide-12
SLIDE 12

Target Content: 0 Target Content: 0 Co-Produce Episode TC: ü Design Proposal TC: >0 External Knowledge Need Push Episode TC: >0 Internal Knowledge Need Talking Pioneer Episode TC: ü

RESYNC

Uh …

Exactly.

Example 2: Effective Resynchronization

12

B C

slide-13
SLIDE 13

Target Content: 0 Target Content: 0 Co-Produce Episode TC: ü Design Proposal TC: >0 External Knowledge Need Push Episode TC: >0 Internal Knowledge Need Talking Pioneer Episode TC: ü

RESYNC

Uh …

Exactly.

Example 2: Effective Resynchronization

13

B C

slide-14
SLIDE 14

Target Content: 0 Target Content: 0 Co-Produce Episode TC: ü Design Proposal TC: >0 External Knowledge Need Push Episode TC: >0 Internal Knowledge Need Talking Pioneer Episode TC: ü

RESYNC

Uh …

Exactly.

Example 2: Effective Resynchronization

14

B C

slide-15
SLIDE 15

Target Content: 0 Target Content: 0 Co-Produce Episode TC: ü Design Proposal TC: >0 External Knowledge Need Push Episode TC: >0 Internal Knowledge Need Talking Pioneer Episode TC: ü

RESYNC

Uh …

Exactly.

Example 2: Effective Resynchronization

15

B C

slide-16
SLIDE 16

Target Content: 0 Target Content: 0 Co-Produce Episode TC: ü Design Proposal TC: >0 External Knowledge Need Push Episode TC: >0 Internal Knowledge Need Talking Pioneer Episode TC: ü

RESYNC

Uh …

Exactly.

Example 2: Effective Resynchronization

16

B C

slide-17
SLIDE 17

Target Content: 0 Target Content: 0 Co-Produce Episode TC: ü Design Proposal TC: >0 External Knowledge Need Push Episode TC: >0 Internal Knowledge Need Talking Pioneer Episode TC: ü

RESYNC

Uh …

Exactly.

Example 2: Effective Resynchronization

17

B C

slide-18
SLIDE 18

Target Content: 0 Target Content: 0 Parallel Production Episode TC: TC:

Ah-ha! Ah.

40 min

Code Change Internal Knowledge Need

Uh?

Pull Episode TC: ü TC: ü

PARALLEL

? ?

Problematic Example 3: Parallel Work

18

D E

slide-19
SLIDE 19

Target Content: 0 Target Content: 0 Parallel Production Episode TC: TC:

Ah-ha! Ah.

40 min

Code Change Internal Knowledge Need

Uh?

Pull Episode TC: ü TC: ü

PARALLEL

? ?

Problematic Example 3: Parallel Work

19

D E

slide-20
SLIDE 20

Target Content: 0 Target Content: 0 Parallel Production Episode TC: TC:

Ah-ha! Ah.

40 min

Code Change Internal Knowledge Need

Uh?

Pull Episode TC: ü TC: ü

PARALLEL

? ?

Problematic Example 3: Parallel Work

20

D E

slide-21
SLIDE 21

Target Content: 0 Target Content: 0 Parallel Production Episode TC: TC:

Ah-ha! Ah.

40 min

Code Change Internal Knowledge Need

Uh?

Pull Episode TC: ü TC: ü

PARALLEL

? ?

Problematic Example 3: Parallel Work

21

D E

slide-22
SLIDE 22

Target Content: 0 Target Content: 0 Parallel Production Episode TC: TC:

Ah-ha! Ah.

40 min

Code Change Internal Knowledge Need

Uh?

Pull Episode TC: ü TC: ü

PARALLEL

? ?

Problematic Example 3: Parallel Work

22

D E

Researcher‘s perspective: E‘s confusion makes the effects of the Parallel Production Episode visible.

slide-23
SLIDE 23

Summary of the examples

  • Knowledge transfer episodes can be very

efficient (with very few utterances)

– … if the pair invests in staying close together.

  • If they don‘t, episodes can become much

longer and may take several attempts

– See our previous work [1]

  • Even worse, the pair risks working on

parallel tracks (as in the last example)

[1] Zieris & Prechelt, On Knowledge Transfer Skill in Pair Programming, in Proc. ESEM‘14

23

slide-24
SLIDE 24

24

Results

On Pair Programming in general

  • No pair member more knowledgeable in all regards
  • Positive effects of knowledge-wise inferior member

(Anti-)Pattern candidates

  • Resync
  • Parallel
  • Talking Pioneering

Mechanisms of knowledge transfer episodes

  • Push & Pull
  • Co-Produce & Pioneering Production
slide-25
SLIDE 25

Enough with Push …

25

slide-26
SLIDE 26

… time for Pull!

26

slide-27
SLIDE 27

27

Thank you!

https://bitbucket.org/spooning

slide-28
SLIDE 28

Used Images

https://web.archive.org/web/20080509191418/http://www.cenqua.com/pairon/ https://www.flickr.com/photos/a2gemma/552208117 http://www.iconarchive.com/show/oxygen-icons-by-oxygen-icons.org/Categories-system-help-icon.html http://www.iconarchive.com/show/vista-people-icons-by-icons-land/Person-Male-Light-icon.html http://www.iconarchive.com/show/vista-people-icons-by-icons-land/Groups-Meeting-Light-icon.html http://www.iconarchive.com/show/xedia-icons-by-photoshopedia/My-Computer-icon.html http://www.iconarchive.com/show/nuoveXT-2-icons-by-saki/Devices-keyboard-icon.html

28