[openstack-dev] [kuryr] competing implementations

Adrian Otto adrian.otto at rackspace.com
Thu Nov 5 19:12:20 UTC 2015


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.

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.

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].

Adrian

[1] https://www.openstack.org/summit/vancouver-2015/summit-videos/presentation/7-habits-of-highly-effective-contributors

On Nov 4, 2015, at 7:04 PM, Vikas Choudhary <choudharyvikas16 at gmail.com<mailto:choudharyvikas16 at gmail.com>> wrote:


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.

On 5 Nov 2015 08:24, "Vikas Choudhary" <choudharyvikas16 at gmail.com<mailto:choudharyvikas16 at gmail.com>> wrote:

@Toni ,

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.
WDYT?

On 4 Nov 2015 19:35, "Baohua Yang" <yangbaohua at gmail.com<mailto:yangbaohua at gmail.com>> wrote:
Sure, thanks!
And suggest add the time and channel information at the kuryr wiki page.


On Wed, Nov 4, 2015 at 9:45 PM, Antoni Segura Puimedon <toni+openstackml at midokura.com<mailto:toni+openstackml at midokura.com>> wrote:


On Wed, Nov 4, 2015 at 2:38 PM, Baohua Yang <yangbaohua at gmail.com<mailto:yangbaohua at gmail.com>> wrote:
+1, Antoni!
btw, is our weekly meeting still on meeting-4 channel?
Not found it there yesterday.

Yes, it is still on openstack-meeting-4, but this week we skipped it, since some of us were
traveling and we already held the meeting on Friday. Next Monday it will be held as usual
and the following week we start alternating (we have yet to get a room for that one).

On Wed, Nov 4, 2015 at 9:27 PM, Antoni Segura Puimedon <toni+openstackml at midokura.com<mailto:toni+openstackml at midokura.com>> wrote:
Hi Kuryrs,

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:

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).
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.
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:
    * conciseness,
    * simplicity,
    * loose coupling,
    * logging and error reporting,
    * test coverage,
    * extensibility (when an immediate pending and blueprinted feature can better be built on top of it).
    * documentation,
    * performance.

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.

Regards,

Toni

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe<http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




--
Best wishes!
Baohua

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe<http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe<http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




--
Best wishes!
Baohua

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe<http://OpenStack-dev-request@lists.openstack.org/?subject:unsubscribe>
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: OpenStack-dev-request at lists.openstack.org<mailto:OpenStack-dev-request at lists.openstack.org>?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20151105/9cb04ddd/attachment.html>


More information about the OpenStack-dev mailing list