'''Do Inspections''' ''Problem:'' In multi-developer environments, keeping several independently developed units consistent is necessary to promote more efficient development and less error-prone systems. How does a group accomplish this? ''Context/Forces:'' * More than 1 developer is reading, writing, and/or using the same code and modules * Developers may need to understand each other's code for development and maintenance * Development groups should try to increase their TruckNumber * People often overlook their own errors * The only way to tell whether a document is communicating with people is to try it on them * more (please add)... ''Solution:'' Employ a code inspection or review process to give people other than the author of the code a chance to suggest improvements and correct mistakes. The process can look for any combination of style errors, performance improvements, design flaws, or whatever areas that would help improve quality and efficiency. ''Resulting Context:'' A development environment in which code and/or designs are reviewed against some kind of quality yardstick. ''Rationale:'' The purpose of the code inspections is to enforce decisions made about the development process that relate to what is produced in design and coding, as well as to look for blatant errors and bugs. The purpose of reviews is '''not''' to put quality into the design/code after it is done. The best software developers ''avoid'' bugs, they don't "inspect" them out. Quality software will come from quality designs and implementations, not from inspections. "The best physician is the one that prevents disease, not the one that cures it." -- SunTse, TheArtOfWar ''Related Patterns:'' DevelopInPairs, GroupValidation, ReviewTheArchitecture, others? ---- Possible problems resulting from this pattern: The code review turns into a design review for a design which has a huge investment (in the form of code) and is therefore not malleable. Solution: DoDesignReviews -- FriedrichKnauss This one doesn't quite pass some PatternityTest''''''s for me (the ProcessAndaThing test in particular). It tells me what to do, but I cant seem to figure out where it tells me ''how'' to do it. Can you fill that in, or at least explicitly point out how the other patterns in this language do that, with this pattern as the guided tour? ---- CategoryPattern