The Urge to Apache

At the recent ApacheCon US, I gave a lightening talk on some thoughts I've had about what the ASF is about. Some people seemed to find it useful, so I'm also publishing it here.

The Urge to Apache

Background
My name is Upayavira, a name I was given when I joined the Western
Buddhist Order, five years ago. The Western Buddhist Order is itself a
meritocracy, in the same way as the ASF, although the ‘merit’ that it
attempts to recognise is, I would argue, much deeper than that in the
ASF and therefore much harder to perceive or identify. Consequently it
took me 10 years from the time I asked to join, to the time others in
the Order felt I was ready to do so.

I am a relatively new member of the ASF - I became a member in May 2005.
Since then, I have been thinking quite a bit about what it means to be a
member of the ASF, and have found some of the similarities between the
two organisations quite interesting.

The Apache Way
I have heard discussions about the Apache Way, with suggestions that
membership of the foundation has something to do with taking on the
Apache Way. There was a certain amount of disagreement about just what
the Apache Way was. To me, it seems relatively clear not just what the
Apache Way is, but also why people have found it hard to agree upon.

I believe that, in fact, the Apache Way is an emotion, a desire, a
motivation, an ‘urge’, hence the title. I suspect as techies we’re not
that suited to discussing things that are emotionally founded and worst
still, we tend to do so over the medium of email lists, and it is
recognised that email tends to strip from conversation what emotional
content there was.

So, what does this ‘urge’ urge us to do? I see this as having two parts:
altruism and stewardship. Altruism in the sense of wanting to do
something that benefits people other than ourselves, where we don’t
necessarily get an immediate kick back (e.g. pay), because we want to
see people benefit for their own sake. We may get satisfaction, we may
even get jobs out of it, but the motivation is not tied between action
and response, for example “I do this for you, you pay me for it.” So the
Apache Way involves doing something that isn’t princially for our own
personal gain.

The Apache Way also involves what I would call stewardship. And this is
the ‘particularisation’ of that altruism. It is the common altruistic
act that we all engage in, to differing degrees. This stewardship
involves looking after code for the benefit of the world at large.
Someone recently suggested that we are stewarding community, but I would
disagree. The world is not interested in our communities. It is
interested in our code. That is what we give to the world. Our
communities are the means to achieving that stewardship.

Hierarchies
The Apache Software Foundation is a registered non-profit organisation.
This means that it has a board of directors, and a membership. As I see
it, as a consequence it has two ‘hierarchies’ of involvement, legal and
what I would call ‘ethical’.

The legal hierarchy has at the top the Board. The board is the executive
body of the foundation, and is elected from, and represents, the
members. The board delegates responsibility for managing Apache projects
to Project Management Committees (PMCs). PMCs are made up of committers
to a project, and are responsible for oversight and management of the
code and community of their project.

The ‘ethical’ hierarchy has at the lowest level ‘the world’, users.
Those in the world that use our software. Some of those users decide,
for various reasons, to contribute to the development of the code that
they are using, and become committers to a particular project. A
committer becomes such on the basis of their own personal merit - that
is their demonstrated interest in the project and its community. That
interest can range from, at its lowest, “I was told to get involved by
my boss”, to having a deep meaning to the developer. A member is someone
in whom this deeper interest has been recognised by other members.

I have heard discussion about how many members the Apache Software
Foundation needs. Taking into account these two hierarchies, this
question becomes easy. From a legal perspective, the foundation needs as
many members as are necessary to function - to make sure that any code
developed in its name follows the principles and licenses of the
foundation. The less members there are, the more managable it all is.

However, from the ethical perspective, the foundation needs as many
members as possible. The more members there are, the more impact the
foundation can have on the world. And, to my mind, the legal structures
exist to serve the ethical. Thus, the foundation needs as many members
as possible.

There is one priviso on this. The foundation functions as a meritocracy.
Meritocracy functions by someone who’s merit has been recognised
recognising the same in others. Thus a meritocracy can only grow as fast
as the personal relationships that facilitate that recognition can grow.
Grow too fast, and it risks dilution and eventual distruction.

This process of recognition is one of recognising an emotional quality
in another, and is thus highly subjective, and also error prone. Some
deserving people will be missed, and some may be proposed before they
are really ready.

There are things that can be done to mitigate against this error
proneness. Given that discussions about someone’s suitability take place
on mailing lists, I would suggest that a non-archived mailing list be
created to host these discussions. In some cases, in order to come to a
conclusion that someone should become a member, it is necessary to share
one’s doubts, and to hear other’s responses. People are much less likely
to do this if they know that the proposed member, after becoming a
member can see everything that has been said about them in the mailing
list archives. Yes, this list would be archived in people’s own
mailboxes, but would you show a new member the details of a difficult
discussion about them from your mailbox? I would hope that members would
make their own ethical decision about the relevance of the information
to the person before showing it.

Stewardship
In the end, it is the members that have the role of stewardship in
relation to the code “owned” by the foundation. And, as a member, that
stewardship extends across the entire codebase of the foundation.
Strangely, this makes me in part responsible for httpd, for which I have
never seen a single line of code. The only way I can actually carry out
a lot of that stewardship in a meaningful way is through trust -
trusting the integrity of other members who are in a position to do real
justice to that code. This trust builds slowly, and necessarily will
limit the speed of growth of the foundation.

In a bizzare situation where all other members were wiped out, and I was
the only one remaining in the world, it would be down to me to rebuild
the communities around the code so that that code can continue to be of
benefit to the world. Now that would be an undertaking!

Community
One important part of the ASF that I have not mentioned is ‘community’.
Community is a means to code development, maintenance and stewardship.
Without its communities, the ASF would not be able to function.

For many, quite legitimately, community is _the_ reason they are
involved in the ASF and its projects. The sense of being involved in a
common project with like minds does often nourish a common human need -
one that I personally identify with a great deal.

Conclusion
What I have written is only my understanding of how the ASF works. It is
not the truth, just one opinion of the truth. I hope that these thoughts
have been helpful in clarifying for you exactly what the ASF is and the
nature of your relationship with it.

Upayavira
14 December 2005