<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
Sometimes producing alternate implementations can be more effective than abstract discussions because they are more concrete. If an implementation can be produced (possibly multiple different implementations by different contributors) in a short period of time
 without significant effort, that’s usually better than a lengthy discussion. Keep in mind that even a WIP review can be helpful for facilitating this sort of a discussion. Having a talk about a specific review is usually much more effective than when the discussion
 is happening completely in abstract terms.
<div class=""><br class="">
</div>
<div class="">Keep in mind that many OpenStack contributors speak English as a second language. They may actually be much more effective in expressing their ideas in code rather than in the form of a debate. Using alternate implementations for something is
 one way to let these contributors shine with a novel idea, even if they struggle to articulate themselves or feel uncomfortable in a verbal debate.</div>
<div class=""><br class="">
</div>
<div class="">If you are about to go implement something that takes a significant effort, then it would be annoying to have an alternate implantation show up and you’ll feel like your work goes to waste. The way to prevent this is to encourage all active contributors
 to share ideas in the project IRC channel, and show up regularly to the team meetings, and covey your intent to the technical lead. If you are surprised by alternate implementations for your work, that’s a symptom that one or more of you are not well coordinated.
 If we solve that, everyone can potentially move more quickly. Anyone struggling with this problem might consider the guidance I offered in Vancouver [1].<br class="">
<div class=""><br class="">
</div>
<div class="">Adrian</div>
<div class=""><br class="">
</div>
<div class="">[1] <a href="https://www.openstack.org/summit/vancouver-2015/summit-videos/presentation/7-habits-of-highly-effective-contributors" class="">
https://www.openstack.org/summit/vancouver-2015/summit-videos/presentation/7-habits-of-highly-effective-contributors</a></div>
<div class=""><br class="">
<div>
<blockquote type="cite" class="">
<div class="">On Nov 4, 2015, at 7:04 PM, Vikas Choudhary <<a href="mailto:choudharyvikas16@gmail.com" class="">choudharyvikas16@gmail.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<p dir="ltr" class="">If we see from the angle of the contributor whose approach would not be better than other competing one, it will be far easy for him to accept logic at discussion stage rather after weeks of tracking review request and addressing review
 comments.</p>
<div class="gmail_quote">On 5 Nov 2015 08:24, "Vikas Choudhary" <<a href="mailto:choudharyvikas16@gmail.com" class="">choudharyvikas16@gmail.com</a>> wrote:<br type="attribution" class="">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<p dir="ltr" class="">@Toni ,</p>
<p dir="ltr" class="">In scenarios where two developers, with different implementation approaches, are not able to reach any consensus over gerrit or ml, IMO, other core members can do a voting or discussion and then PTL should take a call which one to accept
 and allow for implementation. Anyways community has to make a call even after implementations, so why to unnecessary waste effort in implementation.
<br class="">
WDYT?</p>
<div class="gmail_quote">On 4 Nov 2015 19:35, "Baohua Yang" <<a href="mailto:yangbaohua@gmail.com" target="_blank" class="">yangbaohua@gmail.com</a>> wrote:<br type="attribution" class="">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr" class="">Sure, thanks!
<div class="">And suggest add the time and channel information at the kuryr wiki page.</div>
<div class=""><br class="">
</div>
</div>
<div class="gmail_extra"><br class="">
<div class="gmail_quote">On Wed, Nov 4, 2015 at 9:45 PM, Antoni Segura Puimedon <span dir="ltr" class="">
<<a href="mailto:toni+openstackml@midokura.com" target="_blank" class="">toni+openstackml@midokura.com</a>></span> wrote:<br class="">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr" class=""><br class="">
<div class="gmail_extra"><br class="">
<div class="gmail_quote"><span class="">On Wed, Nov 4, 2015 at 2:38 PM, Baohua Yang
<span dir="ltr" class=""><<a href="mailto:yangbaohua@gmail.com" target="_blank" class="">yangbaohua@gmail.com</a>></span> wrote:<br class="">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr" class="">+1, Antoni!
<div class="">btw, is our weekly meeting still on meeting-4 channel? </div>
<div class="">Not found it there yesterday.</div>
</div>
</blockquote>
<div class=""><br class="">
</div>
</span>
<div class="">Yes, it is still on openstack-meeting-4, but this week we skipped it, since some of us were
<br class="">
traveling and we already held the meeting on Friday. Next Monday it will be held as usual<br class="">
and the following week we start alternating (we have yet to get a room for that one).
<br class="">
</div>
<div class="">
<div class="">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_extra"><br class="">
<div class="gmail_quote">
<div class="">
<div class="">On Wed, Nov 4, 2015 at 9:27 PM, Antoni Segura Puimedon <span dir="ltr" class="">
<<a href="mailto:toni+openstackml@midokura.com" target="_blank" class="">toni+openstackml@midokura.com</a>></span> wrote:<br class="">
</div>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="">
<div class="">
<div dir="ltr" class="">
<div class="">
<div class="">
<div class="">
<div class="">
<div class="">
<div class="">
<div class="">
<div class="">
<div class="">
<div class="">Hi Kuryrs,<br class="">
<br class="">
</div>
Last Friday, as part of the contributors meetup, we discussed also code contribution etiquette. Like other OpenStack project (Magnum comes to mind), the etiquette for what to do when there is disagreement in the way to code a blueprint of fix a bug is as follows:<br class="">
<br class="">
</div>
1.- Try to reach out so that the original implementation gets closer to a compromise by having the discussion in gerrit (and Mailing list if it requires a wider range of arguments).<br class="">
</div>
2.- If a compromise can't be reached, feel free to make a separate implementation arguing well its difference, virtues and comparative disadvantages. We trust the whole community of reviewers to be able to judge which is the best implementation and I expect
 that often the reviewers will steer both submissions closer than they originally were.<br class="">
</div>
3.- If both competing implementations get the necessary support, the core reviewers will take a specific decision on which to take based on technical merit. Important factor are:<br class="">
    * conciseness,<br class="">
    * simplicity,<br class="">
</div>
    * loose coupling,<br class="">
</div>
    * logging and error reporting,<br class="">
</div>
<div class="">    * test coverage,<br class="">
</div>
    * extensibility (when an immediate pending and blueprinted feature can better be built on top of it).<br class="">
</div>
<div class="">    * documentation,<br class="">
</div>
<div class="">    * performance.<br class="">
</div>
<div class=""><br class="">
</div>
It is important to remember that technical disagreement is a healthy thing and should be tackled with civility. If we follow the rules above, it will lead to a healthier project and a more friendly community in which everybody can propose their vision with
 equal standing. Of course, sometimes there may be a feeling of duplicity, but even in the case where one's solution it is not selected (and I can assure you I've been there and know how it can feel awkward) it usually still enriches the discussion and constitutes
 a contribution that improves the project.<br class="">
<br class="">
</div>
Regards,<br class="">
<br class="">
</div>
Toni</div>
<br class="">
</div>
</div>
__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe" rel="noreferrer" target="_blank" class="">
OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="">
<br class="">
</blockquote>
</div>
<span class=""><font color="#888888" class=""><br class="">
<br clear="all" class="">
<div class=""><br class="">
</div>
-- <br class="">
<div class=""><font color="#999999" class="">Best wishes!<br class="">
Baohua<br class="">
</font></div>
</font></span></div>
<br class="">
__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe" rel="noreferrer" target="_blank" class="">
OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="">
<br class="">
</blockquote>
</div>
</div>
</div>
<br class="">
</div>
</div>
<br class="">
__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe" rel="noreferrer" target="_blank" class="">
OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="">
<br class="">
</blockquote>
</div>
<br class="">
<br clear="all" class="">
<div class=""><br class="">
</div>
-- <br class="">
<div class=""><font color="#999999" class="">Best wishes!<br class="">
Baohua<br class="">
</font></div>
</div>
<br class="">
__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe" rel="noreferrer" target="_blank" class="">
OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="">
<br class="">
</blockquote>
</div>
</blockquote>
</div>
__________________________________________________________________________<br class="">
OpenStack Development Mailing List (not for usage questions)<br class="">
Unsubscribe: <a href="mailto:OpenStack-dev-request@lists.openstack.org" class="">
OpenStack-dev-request@lists.openstack.org</a>?subject:unsubscribe<br class="">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" class="">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="">
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
</body>
</html>