[openstack-dev] [all] [glance] on contributing to projects/programs -- say glance

Nikhil Komawar nik.komawar at gmail.com
Thu May 12 03:35:36 UTC 2016


Hi all,

I wanted to share with you that over the last week 5 (iirc) people have
reached out to me asking of how they could contribute to Glance and have
expressed interest in specific areas. The list of such individuals is
longer (around 10) if I count those whom I had a chat with at the summit.


It's a great sign that people are enthusiastic about contributing and
trying to make an impact. It is an open source, open community projects
where the visibility factor becomes important -- agreed. But the only
way one can truly become relevant and important to a projects/programs
is by contributing their efforts to the significantly important
discussions the team is having. This is way more important than
contributing code, because it is about shaping it.


There are so many of you who have a spec or piece of code out for review
and do ask for the same from core reviewers at the meetings, or during
casual chats. On not getting a review/response back, there is complaint
about lack of reviews on specific patch set or proposals. This may
result into a theme that a project/program is too slow and it spreads
like wildfire even among the prominent members of the community.
(Negative news is always trendy). But does that really reflect how the
project/program is being operated upon? How can we ensure that such
misconceptions are not endured by the community? This is an email
attempting to address that. And I hope to come up with further more as
time permits.


What can be your most significant contribution?

No matter what your status is in the project/program, core or not, you
NEED to provide feedback via reviews; preferably via gerrit reviews or
you can choose to give input on irc/emails. The way people will know
that you are being valuable to the team or to their code proposals is
via providing constructive, critical, rational, forward-looking, concise
and precise reviews. They will appreciate that you have taken the time
to provide them feedback for something they consider as important. This
will result into a positive feedback loop and you will soon find
yourself in back and forth review dance with those reviewers (and
possibly) other reviewers too. No, they need not be cores, just any
reviewer who is willing to give feedback.


What are good ways of giving reviews?

Please focus on the agenda (what the code intends to implement),
completeness, compliance with standards & processes, testing
thoroughness, thinking of corner cases, sometimes playing devil's
advocate, tying the concepts with other projects/programs (Cross project
thinking), thinking about performance, thinking about security, etc.
Please take a look at reviews from some of the known reviewers in
OpenStack, search on internet on best practices and ask questions (always)!


What if I'm not sure?

Start chatting with the team on irc or ping someone privately to see if
they are willing to answer your questions. You can always provide
feedback on irc and need not worry about providing reviews on gerrit.


How to be effective?

Keep a good review cadence for yourself. And no, I'm not talking about
focusing on the stackalytics numbers, do that for your corporate
organization/management. Try to be involved in the project on a regular
basis. Almost 30-40% of my reviews are either via irc or email or
etherpad. The important thing should be that you are helping things more
forward. In OpenStack (at least in Glance) you will be recognized when
your reviews are found helpful. People will vouch for you and provide
feedback in return.


Over the past few years, I have realized that not many people focus on
all of the above four. So, we (at least Glance) have not been able to
establish a positive feedback loop involving many members. We as a Open
Community cannot afford to work in silos, the community input is
important on the important aspects of projects/programs. Many members
pick important code and are very enthusiastic about contributing more,
not many are willing to provide constant valuable feedback. Slowness,
silos, polarization is only natural. Even more, when feedback isn't
provided you are likely to be missing important aspects of the
project/program when writing your solution -- would you consider that as
valuable contribution to the project/program?


Also, people do keep a wrong notion that being a core is sign of status,
and I keep writing such emails mentioning that it is a sign of
_responsibility_. When being a core gives you influence, it is to ensure
that you remain capable of taking the project forward with input and
contribution from others as well. So, they way to give back to community
for giving you this role is through various ways -- start reviewing
(more), specs too, help with (various) liaison duties, mentor new
members, help with squashing bugs & questions, provide feedback about
and on the process, increase more awareness, etc.


If you are really interested in becoming a core or take the
responsibility of core reviewer-ship seriously, you need to act on at
least one of the above things. If you still don't get it, think of it as
a producer/consumer problem [1], the more input you produce for the
project/program, the more you get out of it. Also, please DO NOT ask me
if you can work on specific things or want to work item A, B, or C or
that you need specific things approved/reviewed. You need to start
driving things and start making an impact on the real world problem (if
you want to pick those up) -- do not leave the political issues for
someone else to deal with while you work in your silo; this will result
in slowness, confusion, more issues and the project can NEVER be able to
go forward this way.


I have enjoyed working with various individuals and do like to recognize
folks based on their positive traits but as someone responsible for
driving project/program forward I also need a objective way of
recognition that will ensure that everyone stays motivated to continue
providing good contributions (whichever way possible).


Disclaimer: This note is intended for everyone interested in
contributing to Glance long term, no matter who you are. It _may_ be
applicable to other projects/programs in OpenStack.


[1] https://en.wikipedia.org/wiki/Producer%E2%80%93consumer_problem


-- 

Thanks,
Nikhil




More information about the OpenStack-dev mailing list