Hi Junio, On Wed, 1 Feb 2017, Junio C Hamano wrote:
> Johannes Schindelin <johannes.schinde...@gmx.de> writes: > > > It is quite preposterous to call this an "iteration" of the patch > > series, because the code is so different now. I say this because I want > > to caution that this code has not been tested as thoroughly, by far, as > > the first iteration. > > > > The primary purpose of code review is correctness, everything else is > > either a consequence of it, or a means to make reviewing easier. > > You are utterly wrong here. > > The primary purpose of code review is to spot and correct the > problems the submitter has missed. The problems can span from > stupid bugs that affect correctness to maintainability, to design > mistakes, to clarity of explanation for both end users and future > developers. > > Among them, correctness problems are, as long as the problem to be > solved is specified clearly enough, the easiest to spot by the > submitter before the patch is sent out. The submitter is focused on > solving one problem, and if the updated code does not even work as > the submitter advertises it would, that can be caught by the > submitter before the patch is even sent out. > > Of course, humans are not perfect, and catching correctness problems > is important, but that is not the only (let alone primary) thing. > > When a submitter has been focusing on solving one problem, it is > easy to lose the larger picture and to end up adding something that > may be "correct" (in the sense of "works as advertised by the > submitter") but does not fit well with the rest of the system, or > covers some use cases but misses other important and related use > cases. If the "does not fit well" surfaces to the end user level, > that would become a design problem. If it affects the future > developers, that would become a maintainability problem. > > Compared to the correctness issue, these are much harder to spot by > the submitter alone, who focused so intensely to get his code > "correct". The review process is of greater value to spot these > issues. We will never agree on this. >From my perspective, design, explanation and maintainability are a consequence of making it easy for reviewers to spot where the code is incorrect. And correctness is not covered by "the submitter tested this". Correctness includes all the corner cases, where the "many eyes make bugs shallow" really shines. I'd rather have reviewers find bugs than users. I will *never* be a fan of a review process that pushes correctness to a back seat (yes, it is much harder than spotting typos or lines longer than 80 columns per row, but the ultimate goal is to deliver value to the end user, not to make life easy for the maintainer). Ciao, Johannes