Wednesday, June 26, 2013

2013-06-26 Wednesday - Design and Code Reviews

Recently I've been helping a large enterprise development program provide guidance to multiple teams of developers (100+ developers) via design and code reviews.

I've enjoyed the opportunity to lead these discussions - and focus on encouraging, nurturing, educating, and mentoring - versus the less productive and negative connotations of review-as-blame, as is often the unintended result of how reviews are perceived by developers.

For each build within a sprint, I typically review a SVN Diff file, and release notes - which allows me to focus on what has changed.

Although I usually don't limit my findings or comments to just the Diff details - it helps me focus and optimize the time I spend preparing for the review meeting itself (which is usually time-boxed to 30 minutes).

My first priority in the review is to identify critical sections that need refactoring (either due to observed defects, or known issues that will arise from a maintenance perspective, or inherent limitations in the implementation of the code that will affect the desired functionality)

My second priority in the review is to identify recommendations for improving the design of the solution so that it is maintainable, testable, and extensible.  "Elegance" is a subjective term, but it is the essence of what I strive to communicate.

The third priority in the review is often to help developers learn to identify anti-patterns that can be re-mediated to improve the overall performance and robustness of the code.

If your organization might benefit from having an outside independent 3rd party provide Design and Code Review feedback, please contact me to discuss your program needs.

A useful Big-O reference for developers::

(more to be added this weekend when I have more time to continue this post)

No comments: