observations on knowledge transfer
play

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


  1. 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

  2. Typical pair programming scenarios 1. Solve a difficult problem Combined ideas • Combined background knowledge • knowledge Developer Developer 2. Introduce new team member System understanding • Common practices, coding conventions • Senior member knowledge Newbie 2

  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

  4. Data collection Authentic • In-vivo recordings of professionals: no artificial pairs, tasks, or settings Diverse • different domains & pair types 4

  5. Data analysis AA1 BA1 CA1 CA2 LotR 1 CA3 CA4 NA1 CA5 CB1 LotR 2 DA1 DA2 DA3 DA4 LotR 3 DA5 EA1 EA2 EA3 Lord of the Rings I-III EA4 EA5 NA2 EA6 EA7 FA1 FA2 FA3 FA4 GA1 LA1 LB1 MA1 JA1 JA2 JA3 JA4 JA5 JA6 JA7 JA8 JA9 KA8* KA3 KA2 KA4 KA5 KA6 KA7 KA1 NA4 NA3 49+ Sessions from 11 companies 13 Sessions selected 5

  6. Data analysis 13 Sessions selected Grounded Theory (Strauss & Corbin) 450 Knowledge Transfer Episodes analyzed 6

  7. Three Examples 7

  8. Example 1: Efficient Pull Episode Context: Java, with complex self-written framework Task: Get business object (“ MiniObject ”) from proxy object (“ objectHandle ”) return objectHandle.fetchM; fetchMiniObject() CMMiniObject fetchMiniObject(boolean allowMicroObject) Do the MicroObjects still exist? Bob Carl 8

  9. Example 1: Efficient Pull Episode Context: Java, with complex self-written framework Task: Get business object (“ MiniObject ”) from proxy object (“ objectHandle ”) return objectHandle.fetchMiniObject( true ); Do the MicroObjects still exist? Yes, they do. They do here, on your machine. On the working branch, however … true . Bob Carl 9

  10. Example 1: Efficient Pull Episode Context: Java, with complex self-written framework Task: Get business object (“ MiniObject ”) from proxy object (“ objectHandle ”) return objectHandle.fetchMiniObject( true ); Internal Knowledge Need Target Content Pull Episode Do the MicroObjects still exist? Yes, they do. They do here, on your machine. On the working branch, however … true . Bob Carl 10

  11. Example 2: Effective Resynchronization Internal TC: >0 TC: >0 TC: ü Target Content: 0 Knowledge Need Talking Uh … Pioneer Episode B Co-Produce Episode Design Push Exactly. Proposal Episode C External TC: ü Knowledge Need Target Content: 0 R ESYNC 11

  12. Example 2: Effective Resynchronization Internal TC: >0 TC: >0 TC: ü Target Content: 0 Knowledge Need Talking Uh … Pioneer Episode B Co-Produce Episode Design Push Exactly. Proposal Episode C External TC: ü Knowledge Need Target Content: 0 R ESYNC 12

  13. Example 2: Effective Resynchronization Internal TC: >0 TC: >0 TC: ü Target Content: 0 Knowledge Need Talking Uh … Pioneer Episode B Co-Produce Episode Design Push Exactly. Proposal Episode C External TC: ü Knowledge Need Target Content: 0 R ESYNC 13

  14. Example 2: Effective Resynchronization Internal TC: >0 TC: >0 TC: ü Target Content: 0 Knowledge Need Talking Uh … Pioneer Episode B Co-Produce Episode Design Push Exactly. Proposal Episode C External TC: ü Knowledge Need Target Content: 0 R ESYNC 14

  15. Example 2: Effective Resynchronization Internal TC: >0 TC: >0 TC: ü Target Content: 0 Knowledge Need Talking Uh … Pioneer Episode B Co-Produce Episode Design Push Exactly. Proposal Episode C External TC: ü Knowledge Need Target Content: 0 R ESYNC 15

  16. Example 2: Effective Resynchronization Internal TC: >0 TC: >0 TC: ü Target Content: 0 Knowledge Need Talking Uh … Pioneer Episode B Co-Produce Episode Design Push Exactly. Proposal Episode C External TC: ü Knowledge Need Target Content: 0 R ESYNC 16

  17. Example 2: Effective Resynchronization Internal TC: >0 TC: >0 TC: ü Target Content: 0 Knowledge Need Talking Uh … Pioneer Episode B Co-Produce Episode Design Push Exactly. Proposal Episode C External TC: ü Knowledge Need Target Content: 0 R ESYNC 17

  18. Problematic Example 3: Parallel Work ? TC: TC: ü Target Content: 0 Code Ah-ha! Change D Parallel 40 min Production Episode Pull Ah. Uh? Episode E Internal ? TC: TC: ü Knowledge Need Target Content: 0 P ARALLEL 18

  19. Problematic Example 3: Parallel Work ? TC: TC: ü Target Content: 0 Code Ah-ha! Change D Parallel 40 min Production Episode Pull Ah. Uh? Episode E Internal ? TC: TC: ü Knowledge Need Target Content: 0 P ARALLEL 19

  20. Problematic Example 3: Parallel Work ? TC: TC: ü Target Content: 0 Code Ah-ha! Change D Parallel 40 min Production Episode Pull Ah. Uh? Episode E Internal ? TC: TC: ü Knowledge Need Target Content: 0 P ARALLEL 20

  21. Problematic Example 3: Parallel Work ? TC: TC: ü Target Content: 0 Code Ah-ha! Change D Parallel 40 min Production Episode Pull Ah. Uh? Episode E Internal ? TC: TC: ü Knowledge Need Target Content: 0 P ARALLEL 21

  22. Problematic Example 3: Parallel Work ? TC: TC: ü Target Content: 0 Code Ah-ha! Change D Parallel 40 min Production Episode Pull Ah. Uh? Episode E Internal ? TC: TC: ü Knowledge Need Target Content: 0 P ARALLEL Researcher‘s perspective: E‘s confusion makes the effects of the Parallel Production Episode visible. 22

  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

  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 24

  25. Enough with Push … 25

  26. … time for Pull! 26

  27. Thank you! https://bitbucket.org/spooning 27

  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

Recommend


More recommend