BBS Ordering Principles

In my research on ordering code changes for review (together with Alberto Bacchelli and Kurt Schneider), I developed the following set of principles how to order a set of interrelated code changes to ease understanding:

  1. Group related change parts as closely as possible.
  2. Provide information before it is needed.
  3. In case of conflicts between Principles 1 and 2, prefer Principle 1 (grouping).
  4. Closely related change parts form chunks treated as elementary for further grouping and ordering.
  5. The closest distance between two change parts is "visible on the screen at the same time."
  6. To satisfy the other principles, use rules that the reviewer can understand. Support this by making the grouping explicit to the reviewer.

By replacing "change part" with "section/item/stuff" and "reviewer" with "reader", the principles are probably applicable to many other areas beyond change-based code review.

For more details, read the full paper.