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 decision • refactoring • repeated someone else’s work
speculative analysis collaborative conflicts utility evaluation contributions References Speculative analysis: Predict the future and analyze it current program 3 / 17
speculative analysis collaborative conflicts utility evaluation contributions References Speculative analysis: Predict the future and analyze it speculate current program 3 / 17
speculative analysis collaborative conflicts utility evaluation contributions References Speculative analysis: Predict the future and analyze it speculate current program 3 / 17
speculative analysis collaborative conflicts utility evaluation contributions References Speculative analysis: Predict the future and analyze it speculate current program 3 / 17
speculative analysis collaborative conflicts utility evaluation contributions References Speculative analysis: Predict the future and analyze it speculate current program analyze 3 / 17
speculative analysis collaborative conflicts utility evaluation contributions References Speculative analysis: Predict the future and analyze it speculate current program analyze inform developer 3 / 17
speculative analysis collaborative conflicts utility evaluation contributions References Exploring the future past version present version future version of the program of the program of the program d c a e o u l n t t o a t i m n d u a e o t b e u u d s g d t g e e i n s b g t u i n g g g i n g 4 / 17
speculative analysis collaborative conflicts utility evaluation contributions References Exploring the future past version present version future version of the program of the program of the program d c a m r e e o u i g l n t n t o r i a t e n i m r n s e g d u a s p e o t s i o o b e o u s n u d s f i g t t t d w t o e g e e r a i s i n s b e r t g t e i u s n i n g g g g i n g 4 / 17
speculative analysis collaborative conflicts utility evaluation contributions References Exploring the future past version present version future version of the program of the program of the program d c a m r e e o u i g l n t n t o r i a t e n i m r n s e g d u a s p e o t s i o o b e o u s n u d s f i g t t t d w t o e g e e r a i s i n s b e r t g t e i u s n i n g g g g i n g 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
speculative analysis collaborative conflicts utility evaluation contributions References Exploring the future past version present version future version of the program of the program of the program d c a m r s e e o u p i g l n t n e t o r i a t c e n i m r n u s e g d u a l s a p e o t s i o o b e t o u i v s n u d s f e i g t t t d w t o e g a e e r a i s n i n s b e r t a g t e i u s n i n l y g g g s g i i s n g 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
speculative analysis collaborative conflicts utility evaluation contributions References Exploring the future past version present version future version of the program of the program of the program d c a m r s e e o u p i g l n t n e t o r i a t c e n i m r n u s e g d u a l s a p e o t s i o o b e t o u i v s n u d s f e i g t t t d w t o e g a e e r a i s n i n s b e r t a g t e i u s n i n l y g g g s g i i s n g 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
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
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
speculative analysis collaborative conflicts utility evaluation contributions References The Gates conflict M 7 / 17
speculative analysis collaborative conflicts utility evaluation contributions References The Gates conflict M T 7 / 17
speculative analysis collaborative conflicts utility evaluation contributions References The Gates conflict M T W 7 / 17
speculative analysis collaborative conflicts utility evaluation contributions References The Gates conflict M T W Th 7 / 17
speculative analysis collaborative conflicts utility evaluation contributions References The Gates conflict M T W Th F 7 / 17
speculative analysis collaborative conflicts utility evaluation contributions References The Gates conflict M T W Th F M T 7 / 17
speculative analysis collaborative conflicts utility evaluation contributions References The Gates conflict M T W Th F M T W Th 7 / 17
speculative analysis collaborative conflicts utility evaluation contributions References The Gates conflict M T W Th F M T W Th F 7 / 17
speculative analysis collaborative conflicts utility evaluation contributions References The Gates conflict M T W Th F M T W Th F M T 7 / 17
speculative analysis collaborative conflicts utility evaluation contributions References The Gates conflict M T W Th F M T W Th F M T W 7 / 17
speculative analysis collaborative conflicts utility evaluation contributions References The Gates conflict M T W Th F M T W Th F M T W The information was all there, but the developers didn’t know it. 7 / 17
speculative analysis collaborative conflicts utility evaluation contributions References What could well-informed developers do? M T Avoid conflicts 8 / 17
speculative analysis collaborative conflicts utility evaluation contributions References What could well-informed developers do? M T Avoid conflicts W Th F M T W Th Reduce conflict severity F 8 / 17
speculative analysis collaborative conflicts utility evaluation contributions References Introducing Crystal: A proactive conflict detector DEMO 9 / 17
speculative analysis collaborative conflicts utility evaluation contributions References Introducing Crystal: A proactive conflict detector DEMO http://crystalvc.googlecode.com 9 / 17
speculative analysis collaborative conflicts utility evaluation contributions References Speculative analysis in collaborative development speculate current program analyze inform developer 10 / 17
speculative analysis collaborative conflicts utility evaluation contributions References Reducing false positives in conflict prediction Collaborative awareness Palant´ ır [Sarma et al. 2003] CollabVS [Dewan and Hegde 2007] FASTDash [Biehl et al. 2007] Safe-commit [Wloka et al. 2009] Syde [Hattori and Lanza 2010] SourceTree [Streeting 2010] 11 / 17
speculative analysis collaborative conflicts utility evaluation contributions References Reducing false positives in conflict prediction Collaborative awareness Palant´ ır [Sarma et al. 2003] CollabVS [Dewan and Hegde 2007] FASTDash [Biehl et al. 2007] Safe-commit [Wloka et al. 2009] Syde [Hattori and Lanza 2010] SourceTree [Streeting 2010] Crystal analyzes concrete artifacts , eliminating false positives and false negatives. 11 / 17
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
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
Recommend
More recommend