= Review Guidelines = Reviewers should use the following questions as guidelines for their review. Generally a review covers four areas: user interface, functionality, code, and documentation. It depends on the ticket which areas are affected. A '''full review''' covers all of the questions. A '''minimal review''' covers at least the first two questions of each area. == User Interface == * Does it have the look and feel of !HeuristicLab? * Is it understandable, does the user know what to do? * Are appropriate controls used? * Are controls correctly locked/set readonly? * Is it responsive? == Functionality == * Are important features missing? * Are there additional interesting features (maybe for later)? * If it is a storable item, can it be correctly saved and loaded? * Are/should unit tests be included? * Is the impact of the change appropriate? * Is the feature implemented in the right plugin? * Is it fast enough? == Code == * Does the code follow the DevelopersGuidelines (style, naming conventions, etc.) and the DevelopersBestPractices? * Are suitable class, property and parameter names used? * Is the code understandable or is there an appropriate comment? * Is backwards compatibility maintained? * Is the code written according to already used concepts? * Are existing components reused and/or is the code written in a way that it can be easily reused by other components? * Were common pitfalls avoided (missing event handler registration in !AfterDeserializationHook, missing members in cloning constructor)? * Do the common unit tests pass? * Are the classes well designed? * Are the code files well structured? == Documentation == * Is it correct and up to date? * Is important information missing? * Is the style consistent with the rest of the documentation? * Is it short enough?