[this post is available online at 
https://blogs.apache.org/foundation/entry/success-at-apache-my-experience ]

by Etienne Chauchot

I have been working in software engineering for more than 15 years. I've always 
contributed to Open Source software as a user or a developer. But I've been 
contributing to Apache Software Foundation (ASF) https://www.apache.org/ 
projects such as Apache Flink https://flink.apache.org/ , Apache Beam 
https://beam.apache.org/ or Apache Spark https://spark.apache.org/ for nearly 6 
years. It is long enough for me to say that I find the Apache Way is almost the 
best way to collaborate on software engineering.

I will not describe the Apache way here as there is a lot of good information 
about that already. I would rather link to the official Apache documentation 
http://www.apache.org/theapacheway/ . I humbly suggest that you read what it is 
if you don't know it already. 

My point here is to talk about the Apache Way in practice as I’ve experienced 
it. Of course, every Apache community is different, but what I wanted to 
emphasize is that applying the Apache Way by the book could lead to what I'd 
call a "perfect society" even if this word seems a bit naive and over 
optimistic, or even utopian.

A perfect society
Actually, working with the Apache way was a revelation to me!

ASF projects are governed by merit: what you do inside the community is noted, 
you get credit and it can lead to you obtaining more rights (direct access to 
the project repositories, election of committers 
https://community.apache.org/contributors/ etc.). Merit also drives decisions, 
discussing solutions and building consensus or voting for the best one helps 
lead to the best possible state of the project in the end. The best idea always 
wins in the long term.

The software is not driven by companies: no vendor concerns should take 
precedence over community. Consider how the ASF creates new top-level projects 
(TLP): a project starts in the Apache Incubator and is mentored by people who 
have already participated in successful Apache projects. When the mentors agree 
a project is ready, healthy and following The Apache Way, the ASF Board can 
approve its graduation from the Incubator to become a self-governing TLP. So 
the project is managed by the community itself and not by a single company and 
its private financial considerations. This helps drive the best decisions for 
the software itself and ensures long term maintenance of the software.

It is inclusive: the key aspect is that every voice matters, and that everyone 
is considered equal no matter their personal background, education, ethnicity 
or nationality, every contribution is good to take. Community members recognize 
that people skills may be different and complementary to theirs. So 
contributions might come from anyone, from anywhere and in any form (blog post, 
documentation, talk, code, website...)

ASF communities are welcoming: they are in constant search for new talents to 
join their forces. Being welcoming is very important to build and grow a 
community. The Open source community is also a great place for people to grow. 
The way people collaborate is generally by mentoring. Experienced contributors 
help newcomers or experts share their thoughts with others. It is really also a 
good way for mentors to share their passion and inspire mentees. Mentoring is 
in the DNA of the ASF starting with the Incubator https://incubator.apache.org/ 
when the podling community profits from the experience and advice of a mentor 
to grow in the Apache Way and become a top level project 
https://www.apache.org/dev/project-requirements . 

Communities are self-organized: there is no manager but only technical leaders 
and mentors. Each community has a PMC that guides its governance, but its 
responsibilities don’t include assigning work and expecting it to be done. 
People are self-motivated and I must say that it is the best form of motivation 
ever! I’ve found the decision-making simple and efficient: there is no solely 
decision, feedback is always very important. People are willing to share their 
thoughts and solve problems together.

Community members have a collaborative mindset: they are positive, act 
constructively and their comments are in the best interest of the project and 
the community. They are  willing to share their thoughts, review PRs, share 
advice, accept change requests or bug tickets. People are willing to accept 
criticism without being defensive. The master word is transparency. 

Last but not least, I’ve seen most people behave gently: the fact that every 
communication is public guides people to communicate in a positive way. Indeed 
one of the ASF guiding concepts is "what did not happen publicly didn’t happen" 
– often said as “what didn’t happen on the mailing list, didn’t happen” but of 
course this concept can be generalized to any communication tool we use. 
Examples of good communication I’ve seen in open source communities are: asking 
questions or suggesting rather than affirming or asking for thoughts rather 
than disagreeing bluntly. An open source contributor should try to put 
theirself in the other person's shoes, trying to not hurt their feelings and to 
not demotivate them.

Considering all of this, what I can tell is that it is the way we all would 
like people and society in general to behave, no?

Daily life
The funny thing is that it goes even further, after some years of applying this 
philosophy (I was told lately that it felt almost like a religion) at work on a 
full time basis, I started applying it to daily life outside of work. It 
started to become my standard way of behaving in society: 

     Meritocracy becomes second nature, for example I reward my home builders 
with gifts and public credit because they did a good job, I reward my kids for 
good school work etc... 

     I also started to give time to others and share knowledge, mentoring 
becomes  second nature as well. 

     Another big thing which is very visible is that I now always take good 
care to give positive communication, leading to positive and constructive 
thinking. Positivism also becomes a key aspect of my daily life.

On a professional basis, an important thing is that merit never expires. So, if 
you gain committership on a project, or become a PMC member 
https://community.apache.org/contributors/ or even an ASF member 
https://www.apache.org/foundation/members.html , it is for life. So your skills 
are recognized by your peers for your whole career. This is an incredible 
credit and a tremendous trust mark!

Can be a bit challenging

In order to avoid being seen as a total idealist, I need to temper a bit:

I remember when I first joined an open source community, I felt intimidated. 
Community members are generally very senior level and very highly skilled 
developers. But, remember what is written above: every contribution is good to 
take. And, with time and mentoring, anyone can earn a place inside the 
community.

The other thing I felt a bit difficult when I joined is to find where to start: 
some projects are old enough to have a large community so the amount of code is 
pretty high. But here again mentoring comes into play: mentors can give you 
pointers on hot topics, starter tickets or simply areas that need maintenance. 
And with time, you might be recognized as an expert in a given area and the 
exciting subjects will come to you. 

And if you feel like you want to join a smaller community try joining a project 
which is still in the incubation https://incubator.apache.org/ phase!

Conclusion
I hope you enjoyed these insights and I hope it gave you the motivation to join 
an open source community.

Etienne Chauchot has been working in software engineering for more than 15 
years and is now specialized in Big Data. He is an Open Source fan, and 
contributes to Apache projects such as Apache Beam, Apache Flink or Apache 
Spark. He is also the author of the "Big data Chronicles" blog 
https://echauchot.blogspot.com/ . He is an Apache Beam committer and PMC member 
and also an Apache Foundation member.

= = =
"Success at Apache" 
https://blogs.apache.org/foundation/category/SuccessAtApache is a blog series 
that focuses on the processes behind why the ASF "just works". 

= = =

NOTE: you are receiving this message because you are subscribed to the 
[email protected] distribution list. To unsubscribe, send email from the 
recipient account to [email protected] with the word 
"Unsubscribe" in the subject line.

Reply via email to