Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Process Aspects and Social Dynamics of Contemporary Code Review: Insights from Open Source Development and Industrial Practice at Microsoft

255 views

Published on

ICSE'17 presentation of a Journal First paper, published IEEE Transactions on Software Engineering.
http://dx.doi.org/10.1109/TSE.2016.2576451

Published in: Software
  • Be the first to comment

  • Be the first to like this

Process Aspects and Social Dynamics of Contemporary Code Review: Insights from Open Source Development and Industrial Practice at Microsoft

  1. 1. Process Aspects and Social Dynamics of Contemporary Code Review: Insights from Open Source Development and Industrial Practice at Microsoft
 (TSE Journal First Paper) Amiangshu Bosu, Jeffrey C. Carver, Christian Bird, Jonathan Orbeck, and Christopher Chockley http://dx.doi.org/10.1109/TSE.2016.2576451
  2. 2. 2
  3. 3. 2 Research Goal: Better understand the contemporary code review process and its benefits
  4. 4. 2 Research Goal: Better understand the contemporary code review process and its benefits Process
  5. 5. 2 Research Goal: Better understand the contemporary code review process and its benefits Process
  6. 6. 2 Research Goal: Better understand the contemporary code review process and its benefits Process Impressions
  7. 7. 2 Research Goal: Better understand the contemporary code review process and its benefits Process Impressions Are there any differences between OSS and Microsoft?
  8. 8. Contemporary Code Review 3
  9. 9. Methodology 4
  10. 10. Methodology 4
  11. 11. Methodology 4 OSS
  12. 12. Methodology 4 OSS Microsoft
  13. 13. Methodology 4 OSS Microsoft
  14. 14. Methodology 4 OSS Microsoft Response Rate OSS = 16% MS – 21%
  15. 15. Methodology 4 OSS Microsoft Response Rate OSS = 16% MS – 21% Data Analysis
  16. 16. Results 5
  17. 17. 6 Maintainability Issues Knowledge sharing Bug Fixing Community Building Other Minor Errors, Typos 0% 20% 40% 60% 80% OSS Microsoft RQ1: Why are code reviews important?
  18. 18. 6 RQ1: Why are code reviews important? “…spread information to more people so all knowledge of a system is not lost if someone is out sick, on vacation, or leaves the team, assist in sharing knowledge of helpful utilities so that we do not end up with duplicate systems doing the same things.” [MS-196]
  19. 19. 7 RQ2: How much time is spent in code reviews? Codereview hoursweek 0 2 4 6 8 OSS Microsoft < 2 years 3 - 5 years 6 - 10 years > 10 years 5 hours 4 hours
  20. 20. Reputation Relationship Time & Efforts Expertise Other 0% 15% 30% 45% 60% OSS Microsoft 8 RQ3: How do developers decide whether to accept review request?
  21. 21. “Some people do stellar work, and I want to learn from them, so I review their CR to see what they did, even though I almost never find problems.” - [MS-319] 8 RQ3: How do developers decide whether to accept review request?
  22. 22. “Some people do stellar work, and I want to learn from them, so I review their CR to see what they did, even though I almost never find problems.” - [MS-319] 8 RQ3: How do developers decide whether to accept review request? “I am more likely to review changes by developers new to the team, as well as developers who have a history of poor adherence to coding standards or lots of significant comments on their reviews.” - [MS-90]
  23. 23. 9 RQ4: Which code characteristics are indicative of low quality code? OSS Microsoft A large parameter list to a function Inadequate exception handling Lack of comments Poor performance Lack of modularity Duplicated / cloned code Does not follow coding convention Does not maintain application integrity Unnecessary complexity Poor readability 0% 25% 50% 75% 0% 25% 50% 75% Most important Second most important Third most important Fourth most important Fifth most important
  24. 24. 10 RQ5: How do developers help improve low quality code? Comments Rewrite to Fix Mentoring Examples Reject Other Communicate 0% 23% 45% 68% 90% OSS Microsoft
  25. 25. 10 RQ5: How do developers help improve low quality code? “I do not sign off until I am convinced that the code change meets the team criteria for quality. If the author does not understand or agree with my feedback, I typically will sit down with them to discuss in detail. ” [MS-132]
  26. 26. Personal characteristics Relationship Collaboration Other 0% 15% 30% 45% 60% OSS Microsoft 11 RQ6: What is the impact of high quality code?
  27. 27. 11 RQ6: What is the impact of high quality code? “High quality code speaks about its author. I see software development more as an art than an actual engineering discipline. From this perspective, a person writing high quality code is someone that deserves respect and recognition, as he combines his knowledge/experience with his intellect to create unique solutions.” [OSS-180]
  28. 28. Work habits Inexperienced Collaborations Other 0% 18% 35% 53% 70% OSS Microsoft 12 RQ7: What is the impact of low quality code?
  29. 29. Discussion • Microsoft and OSS have similarities and differences • Primary benefits of code review: • Knowledge dissemination • Relationship building • Better designs • Ensuring maintainable code • Code review drives impression formation 13
  30. 30. Discussion • Code review positively and negatively influences future collaboration • Perception of expertise affects: • Acceptance of review request • Level of scrutiny of code • Distributed Microsoft teams were more similar to collocated Microsoft teams than to OSS teams 14
  31. 31. carver@cs.ua.edu bit.ly/ICSE17-Bosu Conclusion • Code review offers benefits beyond defect detection • Code review have a large impact on relationship building • OSS and Microsoft not drastically different

×