Time consuming • Hard to concentrate • No time to dig in and be thorough • Difficult to schedule the right ppl, especially at decentralized companies or projects • Synergy - Yes • Cost effective - No • Fun - well...
• Mondrian - Google • Rietveld - Free and very limited Mondrian • ReviewBoard - The leading open source • Crubicle - from Atlassian ($$) • Code Collaborator - the leading $$ from SmartBear • Gerrit - git goodness
the code execute as expected? • Is all new code tested? Altered code tests up to date? • Is the code readable? • Do you understand the code you are reviewing? • Has the developer tested the code? • coding conventions? • Are all functions, methods and classes documented? • Are complex algorithms and code optimizations adequately commented? • Error Handling • Resource Leaks • Thread Safeness • Is the code free of unintended infinite loops? • Are function parameters explicitly verified in the code? • Pending/TODO • assertions • abnormal terminations • Database Transactions • Correct synchronization • no deadlocks/livelocks • Bug Fix Side Effects • All the occurrences of the bug are fixed
it, there's a lot of psychology in it, so play nice. • Be professional, nothing is personal • Strive to understand, not criticize. • Get prepared ◦ understand the technology in use ◦ know the coding conventions ◦ read related code (classes/method being used) • Read Slow • Short