Proactive Detection of Collaboration Conflicts Yuriy Brun Reid - - PowerPoint PPT Presentation

proactive detection of collaboration conflicts
SMART_READER_LITE
LIVE PREVIEW

Proactive Detection of Collaboration Conflicts Yuriy Brun Reid - - PowerPoint PPT Presentation

Proactive Detection of Collaboration Conflicts Yuriy Brun Reid Holmes Michael D. Ernst David Notkin University of Washington University of Waterloo Have you ever made a mistake while programming and only realized it later? design


slide-1
SLIDE 1

Proactive Detection of Collaboration Conflicts

Yuriy Brun Reid Holmes Michael D. Ernst David Notkin

University of Washington University of Waterloo

slide-2
SLIDE 2

Have you ever made a mistake while programming and only realized it later?

  • design decision
  • refactoring
  • repeated someone else’s work
slide-3
SLIDE 3

speculative analysis collaborative conflicts utility evaluation contributions References

Speculative analysis: Predict the future and analyze it

current program

3 / 17

slide-4
SLIDE 4

speculative analysis collaborative conflicts utility evaluation contributions References

Speculative analysis: Predict the future and analyze it

current program speculate

3 / 17

slide-5
SLIDE 5

speculative analysis collaborative conflicts utility evaluation contributions References

Speculative analysis: Predict the future and analyze it

current program speculate

3 / 17

slide-6
SLIDE 6

speculative analysis collaborative conflicts utility evaluation contributions References

Speculative analysis: Predict the future and analyze it

current program speculate

3 / 17

slide-7
SLIDE 7

speculative analysis collaborative conflicts utility evaluation contributions References

Speculative analysis: Predict the future and analyze it

analyze current program speculate

3 / 17

slide-8
SLIDE 8

speculative analysis collaborative conflicts utility evaluation contributions References

Speculative analysis: Predict the future and analyze it

analyze inform developer current program speculate

3 / 17

slide-9
SLIDE 9

speculative analysis collaborative conflicts utility evaluation contributions References

Exploring the future

past version

  • f the program

c

  • n

t i n u

  • u

s t e s t i n g d e l t a d e b u g g i n g a u t

  • m

a t e d d e b u g g i n g present version

  • f the program

future version

  • f the program

4 / 17

slide-10
SLIDE 10

speculative analysis collaborative conflicts utility evaluation contributions References

Exploring the future

past version

  • f the program

c

  • n

t i n u

  • u

s t e s t i n g m i n i n g s

  • f

t w a r e r e p

  • s

i t

  • r

i e s r e g r e s s i

  • n

t e s t i n g d e l t a d e b u g g i n g a u t

  • m

a t e d d e b u g g i n g present version

  • f the program

future version

  • f the program

4 / 17

slide-11
SLIDE 11

speculative analysis collaborative conflicts utility evaluation contributions References

Exploring the future

past version

  • f the program

c

  • n

t i n u

  • u

s t e s t i n g m i n i n g s

  • f

t w a r e r e p

  • s

i t

  • r

i e s r e g r e s s i

  • n

t e s t i n g d e l t a d e b u g g i n g a u t

  • m

a t e d d e b u g g i n g present version

  • f the program

future version

  • f the program

Continuous development

execution [Henderson and Weiser 1985; Karinthi and Weiser 1987] compilation [Childers et al. 2003; Eclipse foundation 2011] testing [Saff and Ernst 2003, 2004] version control integration [Guimar˜ aes and Rito-Silva 2010]

4 / 17

slide-12
SLIDE 12

speculative analysis collaborative conflicts utility evaluation contributions References

Exploring the future

past version

  • f the program

c

  • n

t i n u

  • u

s t e s t i n g m i n i n g s

  • f

t w a r e r e p

  • s

i t

  • r

i e s r e g r e s s i

  • n

t e s t i n g d e l t a d e b u g g i n g a u t

  • m

a t e d d e b u g g i n g present version

  • f the program

future version

  • f the program

s p e c u l a t i v e a n a l y s i s

Continuous development

execution [Henderson and Weiser 1985; Karinthi and Weiser 1987] compilation [Childers et al. 2003; Eclipse foundation 2011] testing [Saff and Ernst 2003, 2004] version control integration [Guimar˜ aes and Rito-Silva 2010]

4 / 17

slide-13
SLIDE 13

speculative analysis collaborative conflicts utility evaluation contributions References

Exploring the future

past version

  • f the program

c

  • n

t i n u

  • u

s t e s t i n g m i n i n g s

  • f

t w a r e r e p

  • s

i t

  • r

i e s r e g r e s s i

  • n

t e s t i n g d e l t a d e b u g g i n g a u t

  • m

a t e d d e b u g g i n g present version

  • f the program

future version

  • f the program

s p e c u l a t i v e a n a l y s i s

Continuous development

execution [Henderson and Weiser 1985; Karinthi and Weiser 1987] compilation [Childers et al. 2003; Eclipse foundation 2011] testing [Saff and Ernst 2003, 2004] version control integration [Guimar˜ aes and Rito-Silva 2010] Speculative analysis is predictive.

4 / 17

slide-14
SLIDE 14

speculative analysis collaborative conflicts utility evaluation contributions References

Contributions Speculative analysis Speculative analysis for collaborative development Crystal: prototype tool Utility of speculative analysis for collaborative development

5 / 17

slide-15
SLIDE 15

speculative analysis collaborative conflicts utility evaluation contributions References

Version-control terminology

Proactive conflict detection applies to both centralized and decentralized version control.

Terminology:

decentralized centralized local commit: commit save incorporate: push and pull commit and update

6 / 17

slide-16
SLIDE 16

speculative analysis collaborative conflicts utility evaluation contributions References

The Gates conflict

M

7 / 17

slide-17
SLIDE 17

speculative analysis collaborative conflicts utility evaluation contributions References

The Gates conflict

M T

7 / 17

slide-18
SLIDE 18

speculative analysis collaborative conflicts utility evaluation contributions References

The Gates conflict

W M T

7 / 17

slide-19
SLIDE 19

speculative analysis collaborative conflicts utility evaluation contributions References

The Gates conflict

Th W M T

7 / 17

slide-20
SLIDE 20

speculative analysis collaborative conflicts utility evaluation contributions References

The Gates conflict

Th W F M T

7 / 17

slide-21
SLIDE 21

speculative analysis collaborative conflicts utility evaluation contributions References

The Gates conflict

Th M W F T M T

7 / 17

slide-22
SLIDE 22

speculative analysis collaborative conflicts utility evaluation contributions References

The Gates conflict

Th M W F Th W T M T

7 / 17

slide-23
SLIDE 23

speculative analysis collaborative conflicts utility evaluation contributions References

The Gates conflict

Th M W F Th W F T M T

7 / 17

slide-24
SLIDE 24

speculative analysis collaborative conflicts utility evaluation contributions References

The Gates conflict

Th M W F Th W F T M T M T

7 / 17

slide-25
SLIDE 25

speculative analysis collaborative conflicts utility evaluation contributions References

The Gates conflict

Th M W F Th W F T W M T M T

7 / 17

slide-26
SLIDE 26

speculative analysis collaborative conflicts utility evaluation contributions References

The Gates conflict

Th M W F Th W F T W M T M T

The information was all there, but the developers didn’t know it.

7 / 17

slide-27
SLIDE 27

speculative analysis collaborative conflicts utility evaluation contributions References

What could well-informed developers do?

M T

Avoid conflicts

8 / 17

slide-28
SLIDE 28

speculative analysis collaborative conflicts utility evaluation contributions References

What could well-informed developers do?

Th M W F Th W F T M T

Avoid conflicts Reduce conflict severity

8 / 17

slide-29
SLIDE 29

speculative analysis collaborative conflicts utility evaluation contributions References

Introducing Crystal: A proactive conflict detector

DEMO

9 / 17

slide-30
SLIDE 30

speculative analysis collaborative conflicts utility evaluation contributions References

Introducing Crystal: A proactive conflict detector

DEMO

http://crystalvc.googlecode.com

9 / 17

slide-31
SLIDE 31

speculative analysis collaborative conflicts utility evaluation contributions References

Speculative analysis in collaborative development

analyze inform developer current program speculate

10 / 17

slide-32
SLIDE 32

speculative analysis collaborative conflicts utility evaluation contributions References

Reducing false positives in conflict prediction

Collaborative awareness

Palant´ ır [Sarma et al. 2003] FASTDash [Biehl et al. 2007] Syde [Hattori and Lanza 2010] CollabVS [Dewan and Hegde 2007] Safe-commit [Wloka et al. 2009] SourceTree [Streeting 2010]

11 / 17

slide-33
SLIDE 33

speculative analysis collaborative conflicts utility evaluation contributions References

Reducing false positives in conflict prediction

Collaborative awareness

Palant´ ır [Sarma et al. 2003] FASTDash [Biehl et al. 2007] Syde [Hattori and Lanza 2010] CollabVS [Dewan and Hegde 2007] Safe-commit [Wloka et al. 2009] SourceTree [Streeting 2010] Crystal analyzes concrete artifacts, eliminating false positives and false negatives.

11 / 17

slide-34
SLIDE 34

speculative analysis collaborative conflicts utility evaluation contributions References

Utility of proactive collaborative conflict detection

Are textual collaborative conflicts a real problem? How dangerous are safe merges? Do higher-order collaborative conflicts exist?

12 / 17

slide-35
SLIDE 35

speculative analysis collaborative conflicts utility evaluation contributions References

Are textual collaborative conflicts a real problem?

histories of 9 open-source projects:

size: 26K–1.4MSLoC developers: 298 versions: 140,000 Perl5, Rails, Git, jQuery, Voldemort, MaNGOS, Gallery3, Samba, Insoshi

13 / 17

slide-36
SLIDE 36

speculative analysis collaborative conflicts utility evaluation contributions References

Are textual collaborative conflicts a real problem?

Th M W F Th W F T W M T M T

histories of 9 open-source projects:

size: 26K–1.4MSLoC developers: 298 versions: 140,000 Perl5, Rails, Git, jQuery, Voldemort, MaNGOS, Gallery3, Samba, Insoshi

13 / 17

slide-37
SLIDE 37

speculative analysis collaborative conflicts utility evaluation contributions References

Are textual collaborative conflicts a real problem?

Th M W F Th W F T W M T M T

RQ1: How frequent are textual conflicts?

13 / 17

slide-38
SLIDE 38

speculative analysis collaborative conflicts utility evaluation contributions References

Are textual collaborative conflicts a real problem?

Th M W F Th W F T W M T M T

RQ1: How frequent are textual conflicts?

16% of the merges have textual conflicts.

13 / 17

slide-39
SLIDE 39

speculative analysis collaborative conflicts utility evaluation contributions References

Are textual collaborative conflicts a real problem?

Th M W F Th W F T W M T M T

}

RQ1: How frequent are textual conflicts?

16% of the merges have textual conflicts.

RQ2: How long do textual conflicts persist?

13 / 17

slide-40
SLIDE 40

speculative analysis collaborative conflicts utility evaluation contributions References

Are textual collaborative conflicts a real problem?

Th M W F Th W F T W M T M T

}

RQ1: How frequent are textual conflicts?

16% of the merges have textual conflicts.

RQ2: How long do textual conflicts persist?

Conflicts live a mean of 9.8 and median of 1.6 days. The worst case was over a year.

13 / 17

slide-41
SLIDE 41

speculative analysis collaborative conflicts utility evaluation contributions References

Are textual collaborative conflicts a real problem?

Th M W F Th W F T W M T M T

}

RQ1: How frequent are textual conflicts?

16% of the merges have textual conflicts.

RQ2: How long do textual conflicts persist?

Conflicts live a mean of 9.8 and median of 1.6 days. The worst case was over a year.

RQ3: How long do textually-safe merges persist?

13 / 17

slide-42
SLIDE 42

speculative analysis collaborative conflicts utility evaluation contributions References

Are textual collaborative conflicts a real problem?

Th M W F Th W F T W M T M T

}

RQ1: How frequent are textual conflicts?

16% of the merges have textual conflicts.

RQ2: How long do textual conflicts persist?

Conflicts live a mean of 9.8 and median of 1.6 days. The worst case was over a year.

RQ3: How long do textually-safe merges persist?

Textually-safe merges live a mean of 11.0 and median of 1.9 days.

13 / 17

slide-43
SLIDE 43

speculative analysis collaborative conflicts utility evaluation contributions References

How dangerous are safe merges?

RQ4: Where do textual conflicts come from?

14 / 17

slide-44
SLIDE 44

speculative analysis collaborative conflicts utility evaluation contributions References

How dangerous are safe merges?

RQ4: Where do textual conflicts come from?

93% of textual conflicts developed from safe merges.

7 % 9 3 %

14 / 17

slide-45
SLIDE 45

speculative analysis collaborative conflicts utility evaluation contributions References

How dangerous are safe merges?

RQ4: Where do textual conflicts come from?

93% of textual conflicts developed from safe merges.

7 % 9 3 %

RQ5: Do textually-safe merges devolve into conflicts?

14 / 17

slide-46
SLIDE 46

speculative analysis collaborative conflicts utility evaluation contributions References

How dangerous are safe merges?

RQ4: Where do textual conflicts come from?

93% of textual conflicts developed from safe merges.

7 % 9 3 %

RQ5: Do textually-safe merges devolve into conflicts?

20% of textually-safe merges developed into conflicts.

8 % 2 %

14 / 17

slide-47
SLIDE 47

speculative analysis collaborative conflicts utility evaluation contributions References

Do higher-order collaborative conflicts exist?

program conflicts safe textual build test merges Git 17% <1% 4% 79% Perl5 8% 4% 28% 61% Voldemort 17% 10% 3% 69%

RQ6: Does merged code fail to build or fail tests?

One in three conflicts are of higher-order.

15 / 17

slide-48
SLIDE 48

speculative analysis collaborative conflicts utility evaluation contributions References

Crystal is in the wild

“Crystal handles several projects and users effortlessly and presents the necessary information in a simple and understandable way.” – a user

Microsoft Beacon

A centralized version control-based tool. Microsoft product groups will use Beacon to help identify conflicts earlier in the development process. We will conduct user studies to measure effects on developers.

16 / 17

slide-49
SLIDE 49

speculative analysis collaborative conflicts utility evaluation contributions References

Contributions

Introduced speculative analysis to guide future actions. Developed Crystal to precisely detect conflicts and unobtrusively inform developers. Analyzed 9 projects with over 140,000 versions: conflicts are frequent and persistent. http://crystalvc.googlecode.com

17 / 17

slide-50
SLIDE 50

Jacob T. Biehl, Mary Czerwinski, Greg Smith, and George G. Robertson. FASTDash: A visual dashboard for fostering awareness in software teams. In CHI, pages 1313–1322, San Jose, CA, USA, April 2007. ISBN 978-1-59593-593-9. doi: 10.1145/1240624.1240823. Bruce Childers, Jack W. Davidson, and Mary Lou Soffa. Continuous compilation: A new approach to aggressive and adaptive code transformation. In IPDPS, 2003. Prasun Dewan and Rajesh Hegde. Semi-synchronous conflict detection and resolution in asynchronous software development. In ECSCW, pages 159–178, Limerick, Ireland, 2007. The Eclipse foundation. Eclipse. http://www.eclipse.org, 2011. M´ ario Lu´ ıs Guimar˜ aes and Ant´

  • nio Rito-Silva. Towards real-time integration. In CHASE, pages 56–63, Cape Town, South

Africa, May 2010. Lile Hattori and Michele Lanza. Syde: A tool for collaborative software development. In ICSE Tool Demo, pages 235–238, Cape Town, South Africa, May 2010. ISBN 978-1-60558-719-6. doi: 10.1145/1810295.1810339. Peter Henderson and Mark Weiser. Continuous execution: The VisiProg environment. In ICSE, pages 68–74, London, England, UK, Aug. 1985.

  • R. R. Karinthi and M. Weiser. Incremental re-execution of programs. In SIIT, pages 38–44, St. Paul, MN, USA, June 1987.

ISBN 0-89791-235-7. doi: 10.1145/29650.29654. David Saff and Michael D. Ernst. Reducing wasted development time via continuous testing. In ISSRE, pages 281–292, Denver, CO, USA, Nov. 2003. ISBN 0-7695-2007-3. David Saff and Michael D. Ernst. An experimental evaluation of continuous testing during development. In ISSTA, pages 76–85, Boston, MA, USA, July 2004. doi: 10.1145/1007512.1007523. Anita Sarma, Zahra Noroozi, and Andr´ e van der Hoek. Palant´ ır: Raising awareness among configuration management

  • workspaces. In ICSE, pages 444–454, Portland, OR, May 2003. ISBN 0-7695-1877-X.

Steve Streeting. Sourcetree. http://www.sourcetreeapp.com, 2010. Jan Wloka, Barbara Ryder, Frank Tip, and Xiaoxia Ren. Safe-commit analysis to facilitate team software development. In ICSE, pages 507–517, Vancouver, BC, Canada, May 2009. ISBN 978-1-4244-3453-4. doi: 10.1109/ICSE.2009.5070549.