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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend