Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 7F497200BD3 for ; Tue, 6 Dec 2016 19:43:14 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 7DC8B160B1B; Tue, 6 Dec 2016 18:43:14 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 9EA23160B17 for ; Tue, 6 Dec 2016 19:43:13 +0100 (CET) Received: (qmail 59827 invoked by uid 500); 6 Dec 2016 18:43:12 -0000 Mailing-List: contact dev-help@asterixdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@asterixdb.apache.org Delivered-To: mailing list dev@asterixdb.apache.org Received: (qmail 59814 invoked by uid 99); 6 Dec 2016 18:43:12 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Dec 2016 18:43:12 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 2D3C3D334F for ; Tue, 6 Dec 2016 18:43:12 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.801 X-Spam-Level: X-Spam-Status: No, score=-0.801 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id 5bxG00yMKBWF for ; Tue, 6 Dec 2016 18:43:09 +0000 (UTC) Received: from mail-pf0-f170.google.com (mail-pf0-f170.google.com [209.85.192.170]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 0E6CF5FD15 for ; Tue, 6 Dec 2016 18:43:09 +0000 (UTC) Received: by mail-pf0-f170.google.com with SMTP id d2so71798976pfd.0 for ; Tue, 06 Dec 2016 10:43:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:subject:from:in-reply-to:date :content-transfer-encoding:message-id:references:to; bh=yz3DwqJn0ETPUpbjBxAbzTWdentaUgkFbnpxQyMroZk=; b=xvMO7W8CdMzkcPm5N9f6CJlJdwcYtUTQJzuU5kg4+YvLMMSBhP6nYDBqgqk1LWhWoo 8hjm6tAZnO14gdljZ3PgHBOSlGp6hjp+YHxRvV63qK/JNeo6j8qrh/OnppkssnQWepwJ u0bz5yttOiUuz1VA6OVND77jWjgcpv+i8um+7kJfquLdniDWia7BJ6EFHA7Tfyja+qGP HA8F2YKGkV5Y4l29pyq92OTMZ9/etGw+KmvbhFM+WiJrQL18MCpZENY5yqUrazP6eePZ a4izHgJ1+F+CpDCyOjhiHf9Zy+PDNmwfgexumhR/tWctDXg2Bbd1E+ozikgPuYe1pNCH a7jA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date :content-transfer-encoding:message-id:references:to; bh=yz3DwqJn0ETPUpbjBxAbzTWdentaUgkFbnpxQyMroZk=; b=mhQw68M1yQvlR4lHGhRqwFIEvHuFhhCaR//L6t3/UxoCP8nEvFqk0fDdZveuJkp1WK y+SCGJanaE+hU/+2jq00MjzQM2bvh8mEPpyEJwdjdcvzMnJmeXXJOvAzqj3lrpsMtaVi MadAt1YJ1+BX9FfrghN4FhhI2lFqyl8HXrHNnP13znZQJ4ADysMUo1eWaqRZrvzuQiTs Q8DHvb1Ji+zZww59dTtIfX8sg3gO+HPY5Z2QPfdm8bW1JPoBBVm/UrsTdSGO9eRNEHvX A+0mFM/9nZzf17s2yEPwQSpSnGoP3cnXH2sjW3yArsNWD7lxbgYtIyqjI8ZSyKaZj8eM fDbA== X-Gm-Message-State: AKaTC03Jn67hoc/xEsYVHSnTr9+tNLp+O2ASCxHF3+CQ7h40+qkcwIonDMpwcpS37Kx9Xg== X-Received: by 10.84.195.228 with SMTP id j91mr135902596pld.88.1481049780857; Tue, 06 Dec 2016 10:43:00 -0800 (PST) Received: from [192.168.1.10] (c-24-4-203-57.hsd1.ca.comcast.net. [24.4.203.57]) by smtp.gmail.com with ESMTPSA id q12sm36610963pfj.18.2016.12.06.10.42.59 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 06 Dec 2016 10:42:59 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Subject: Re: [DISCUSS] Improving reviews From: abdullah alamoudi In-Reply-To: <5694B0DB-FEDC-4031-A341-DAA2DA2B277D@gmail.com> Date: Tue, 6 Dec 2016 10:42:59 -0800 Content-Transfer-Encoding: quoted-printable Message-Id: <8AD2E0F6-43EE-4006-BE60-E5136C4AE2B7@gmail.com> References: <5694B0DB-FEDC-4031-A341-DAA2DA2B277D@gmail.com> To: dev@asterixdb.apache.org, chillery@hillery.land X-Mailer: Apple Mail (2.3124) archived-at: Tue, 06 Dec 2016 18:43:14 -0000 I would like to stress one point though: Having no comments after a = timeout (72hr) means that the reviewer couldn't find time to do the = review. In which case, the change owner needs to be extra careful as the = whole blame will be on them if their change breaks something. If you're = not totally sure about your change and are not testing every little = possible case, you can still insist on a review. One issue that comes to mind is: what if someone's changes continuously = break things? Of course we can't revoke commit privileges (Can we?) but what we can do = is: 1. pay more attention to changes submitted by people who's changes break = more often. 2. increase the timeout period for them "temporarily" 72->96->120..... = If you don't like this, don't make bad changes. 3. MOST IMPORTANTLY, all of us should strive to have better test = coverage to automatically detect breaks caused by wild changes. Cheers, ~Abdullah. > On Dec 6, 2016, at 10:33 AM, abdullah alamoudi = wrote: >=20 > Ceej, > You spoke my mind and I agree with every word. I believe the way to go = is smoother code review process (maybe through time limit) and more = focus on automated testing. One thing we could do is: > If the 72 hours period pass with no comments, we look at the code = coverage and how much it improved and based on that, either allow the = change in or deny it. This will push change submitters to add tests to = increase coverage even before the 72h limit passes. This doesn't remove = the responsibility of doing the review. The review is still to be done. = However as Ceej said: One of the goals of doing the reviews is to catch = large scale design errors. Those I think still need humans to look at = but they can be caught fairly quickly with minimal effort. >=20 > As for spreading the knowledge, will leave that to a different = discussion. I will end this with some tweets about code simplicity and = changes taken from Max Kanat-Alexander, author of Code Simplicity: >=20 > 1. You don't have to be perfect. If you make a bad change, just fix = it. (mistakes will happen with or without reviews) > 2. If somebody is improving code quality, don't shoot them down = because their improvement isn't perfect. (to reviewers) > 3. The point is to have a maintainable system, not to show how clever = you are. (to submitters) > 4. Code quality isn't something you fix once and it stays good = forever. It's something you learn to do and continue doing. > 5. Engineers don't beg, "Please let me build a bridge that will stay = up." You shouldn't need permission to write good software. > 6. Anybody who tells you that you can fix years of bad code in months = or days is a liar. > 7. Even huge codebases can be refactored incrementally. > 8. Sometimes a refactoring will break something. Often, this proves = that the code was too fragile and so needed the refactoring! > 9. If your code "works," but it's an unstable pile of complexity, do = you feel good about it? > 10. Refactoring is often easier and more rewarding than you expect. > 11. Don't try to write "perfect" code, just write *better* code until = you have *good* code. > 12. Don't worry about how to do the perfect refactoring. Just keep = improving the code in small steps. >=20 > I am glad we're talking about this. Cheers, > ~Abdullah. >=20 >> On Dec 5, 2016, at 11:13 PM, Chris Hillery = wrote: >>=20 >> It's always been my opinion that code reviews are a very = nice-to-have, but >> not more than that. The real value in proposing changes for review = comes >> from the automated testing that can be performed at that stage. I = think >> we'd be better served overall by shoring up and expanding our = automated >> testing rather than spending time discussing and implementing = non-technical >> process. >>=20 >> The main benefits of code reviews are catching large-scale design = errors >> and spreading code knowledge. You can't really have the former until = you >> already have the latter - if only one person really understands an = area, >> nobody else will be able to catch design errors in that area. That's >> clearly a risky place to be, but IMHO at least it's not a problem = that can >> be solved through rules. It requires a cultural shift from the team = to make >> spreading code knowledge an actual priority, rather than someone = everyone >> wants but nobody has time or interest to achieve. >>=20 >> If we as a team don't have the drive to do that, then we should = accept that >> about ourselves and move on. You'll always do best spending time on >> enhancing the strengths of a team, not fighting against the things = they >> don't excel at. I'm also not trying to make any kind of value = judgment here >> - software development is always about tradeoffs and compromise, risk >> versus goals. Any time taken to shift focus towards spreading code >> knowledge will by necessity pull from other parts of the development >> process, and the upshot may well not be an overall improvement in >> functionality or quality. >>=20 >> Ceej >> aka Chris Hillery >>=20 >> On Mon, Dec 5, 2016 at 10:49 PM, Till Westmann = wrote: >>=20 >>> Hi, >>>=20 >>> today a few of us had a discussion about how we could make the = reviewing >>> process moving along a little smoother. The goal is to increase the >>> likeliness >>> that the reviews and review comments get addressed reasonably = quickly. To >>> do >>> that, the proposal is to >>> a) try to keep ourselves to some time limit up to which a reviewer = or >>> author >>> responds to a review or a comment and to >>> a) regularly report via e-mail about open reviews and how long they = have >>> been >>> open (Ian already has filed an issue to automate this [1]). >>> Of course one is not always able to spend the time to do a thorough = review >>> [2] >>> / respond fully to comments, but in this case we should aim to let = the >>> other >>> participants know within the time limit that the task is not = feasible so >>> that >>> they adapt their plan accordingly. >>> The first proposal for the time limit would be 72h (which is taken = from the >>> minimal time that a [VOTE] stays open to allow people in all = different >>> locations and timezones to vote). >>> Another goal would be to abandon reviews, if nobody seems to be = working on >>> them >>> for a while (and we=E2=80=99d need to find out what "a while" could = be). >>>=20 >>> Thoughts on this? >>> A good idea or too much process? >>> Is the time limit reasonable? >>> Please let us know what you think (ideally more than a +1 or a -1 = ...) >>>=20 >>> Cheers, >>> Till >>>=20 >>> [1] https://issues.apache.org/jira/browse/ASTERIXDB-1745 >>> [2] = https://cwiki.apache.org/confluence/display/ASTERIXDB/Code+Reviews >>>=20 >=20