Code Review 101 http://portal.acm.org/citation.cfm?id=1562764.1562778&coll=portal&dl=ACM Kode Vicious: Kode Reviews 101 Purpose of code reviews ======================= Our purpose of code reviews is to improve the performance of agents so that they perform better in future competitions. We want to find faults in agent Alice who has just lost against agent Bob. There must be something wrong with Alice and we want to locate the program lines which contain faults. Those faults explain Alice loss and maybe other potential problems. In other words, we want to map a loss to a set of faults. We use the following protocol: 1. Bob's developers discuss Alice' code. Alice' developers take notes. The propose a set of hypotheses that might explain the loss. 2. Alice's developers respond to the set of hypotheses. They propose a sequence of steps about how to avoid this loss in the future. Bob's developers take notes. 3. Bob's developers comment on the sequence of steps. Alice' developers take notes. While doing this: Bob's developers look for good qualitities in the code: -- Maintainability -- Good OO Style -- Test Coverage -- Good process (e.g., naming conventions for variables) -- Best practices -- Test coverage Bob's developers are the developers of Bob. When they have spoken, the entire class and teaching staff may respond after each step. The performance in those reviews counts towards class participation. The impact of the review should be that Alice improves. Schedule: Alice / Bob Nerdicide / Athena Friday 10/23 Jack Bauer / Sweet Tuesday 10/27 Athena / Lightning Friday 10/30 To prepare for the code review, the teams should get together and exchange the software and agree on a game where Alice lost to Bob and prepare a history of how to find the faults from the failure (loss). ======================== http://today.java.net/pub/a/today/2006/08/17/code-reviews.html