Bruce Armstrong TeamSybase
Why do code review? Fewer bugs / improved code quality Lower support costs to remove bugs Improves communication between developers Code is more maintainable Training of junior developers Cross-training (bus factor)
Types of code review Formal Inspection (Fagan, et. al.) Over the shoulder review Pass around reviews Pair Programming Online tool assisted peer review
Formal Inspection Pros Highest capture rate / most thorough review Synergy from team environment Assurance that defects are corrected Great deal of metrics are collected Feedback mechanism for code review process Cons Amount of work / time required is significant Scheduling is difficult Amount of code to review can be daunting Running the gauntlet
Over the shoulder review Pros Defect capture rate approaching that of formal review Synergy from team environment Less resource intensive than formal review Easier to schedule than formal review Cons Metrics are rarely collected No guarantee that defects were corrected Amount of code to review can still be daunting May not provide feedback for process improvement Still running the gauntlet
Pass around review Pros Scheduling is not an issue Much less resource intensive Not running the gauntlet Cons No metrics are collected No assurance that reviews are actually being done No guarantee that defects were corrected Can be difficult to put review materials together Lower defect capture rate Little synergy No feedback for process improvement
Pair Programming Pros Greatest amount of cross-training and junior developer training Assurance that defects are corrected Scheduling is not an issue Cons Greatest amount of resources required The “reviewer” is too close to the code, which can reduce the defect capture rate No feedback for process improvement No metrics No synergy outside of the pair
Online tool based peer review Pros Scheduling is not an issue Lower amount of resources required Synergy maintained Assurance that defects are corrected Provides cross-training and junior developer training Metrics are captured automatically Not running the guantlet Cons May not provide feedback into improving process
Review Landing Page
Creating a Review
Submitting objects for review
Review in Process
Code Diff View
Code summary after rework
Code detail after rework
Integration Tool Working Files Source Control System Integration Tool Code Review Tool PowerBuilder IDE
CodeCollab.cs
PVCSAPI.cs
Reviews.cs
Versions.cs
Processing the command line
app.config
Submitting for review
Getting Workfiles – 1 of 4
Getting Workfiles – 2 of 4
Getting Workfiles – 3 of 4
Getting Workfiles – 4 of 4
Submitting Workfiles – 1 of 3
Submitting Workfiles – 2 of 3
Submitting Workfiles – 3 of 3
Registering Submit for Review option for the file type
Questions