Problem: Code reviews center mostly on issues of design, rather than the code itself.
Forces:
- Code reviews are being done to ensure correctness.
- The reviewers cannot review for correctness because they do not understand or agree with the design.
- Modifying the design means throwing away a lot of the work put in by the developer.
Resolution:
- Perform Design reviews before any code is written.
- Involve code reviewers to get input/buy in on design
Comments:
The design reviews may not have the same level of formality as FormalReviewProcess. This encourages EarlyAndOften reviews. CampFire may be appropriate for the early stages.
In order that the review will reflect ProjectSpecific details rather than ReviewerPreferences, it is a GoodThing to have an established basis of design with which the reviewer can make comparisons and which can serve as a controllingAuthority. One of the ways this can be done is by Formalization of the Design via designSpecifications: