Robert wrote about patches and rejection today, and quoted me from some tweets I made about meritocracy. I think Robert made some good points in his post, and I’m going to make some suggestions about patch review.
But first, I want to address my irritation about meritocracy…
The first thing that I’ll say is that I’m not sure exactly what people mean when they mention meritocracy. A definition of it is “Meritocracy…is a system of government or other administration (such as business administration) wherein appointments are made and responsibilities assigned to individuals based upon their “merits”, namely intelligence, credentials, and education, determined through evaluations or examinations.”
My assuption was that Ed was saying, “Postgres is awesome because our community is meritocratic.” I don’t believe that’s our strongest value, or quality as a community. And, it’s not something that I think embodies what is awesome about Postgres.
Our strongest quality is our ability to create great code.
We consistently produce readable, reliable and robust code amongst geographically diverse people who have very strong, divergent opinions about a great many things. We find common ground in the production of database software between people who are rhetorically violent even in agreement.
The code quality arises from a commitment by Postgres hackers to discuss in public decisions that many developers prefer to make in private. We are committed to a kind of radical transparency about our code that, at least in our shared Postgres myth, is embodied in Tom Lane’s example. He overwhelmingly gifts to us his time and passion, in the form of methodical reviews of code. And that’s not to say that our reviews are perfect in tone or fact, but just that we consistently do them.
When I think about our review process as it has evolved through Commitfest, it seems so undeniably humane and personal. I know at the same time that it’s still frightening… Just last week a developer talked to me about how much he feared someone tearing into *him* and his code, picking apart decisions he’d made and the bits he knew needed more work. Anyone who shares a creative work knows how this feels – whether it’s a painting, poetry, music or code.
But I don’t think that commitfest or the direct reviews fellow hackers still provide to each other, produced a meritocracy. And I don’t think that we should pursue meritocratic organization much more than we already have.
What we have is something that largely works, and produces a product we feel good about endorsing and improving. There are elements of “promotion through merit”. We pay closer attention now to giving commit access to people who it seems really ought to have it. And we recognize individual efforts where it is appropriate in our commit logs – something many projects fail to do.
At the same time, the operation of the project is dominated by people who fit into a very specific profile. And that’s something like:
- the top 1% of the world in terms of salary,
- are male,
- had parents that were mostly successful (aren’t in jail for violent offenses for example), and
- either don’t have kids, or have a partner or paid helper that does most of the childcare during the work day.
I count myself among you, with the exception that I’m not male, and I don’t have kids. But I guarantee you that if I did have kids, either my partner would provide the bulk of childcare during the work day, or we would pay someone to do it for us.
I bring this up because in a truly meritocratic organization, privilege wouldn’t matter. Anyone could join us. But the truth is, not everyone can join the Postgres project. And that’s why bringing up the myth, and applying it to an organization I contribute to annoys me.
I try to think regularly about my own privilege, and the place of open source software like Postgres in the world. I consider how to contribute to an organization that is not only is excellent in terms of what it produces, but is also something to be proud of because of the way that people treat and care for each other.
So, I don’t think more, or purer meritocracy helps us have better relationships or treat people well.
We are still small enough at our core (somewhere around 300 people at any point in time), that we can operate like the best businesses do. We rely on good relationships between small groups who tend to appoint leaders to communicate between teams. Our teams seem to often be pairs, or small businesses, which fits our project’s need for deep understanding of each feature.
But apart from the practicality of avoiding further pursuit of meritocracy, I don’t believe that it helps us with talents that we need as a project now. What matters is not that someone is the best at something, but that they have the time to put some effort in, which will then motivate others. That someone out there has a few minutes to write a review, file a bug report or fix a typo on our websites.
What we have to do is create structures that invite people to give what they can, when they can give it. This is what we enable with our extensive comments and thorough documentation. We probably could use someone with Tom Lane’s singular attention and time to our web site, but I think we could make better use of 10 people who could devote a fraction of that time, consistently and with good humor.
So, ending the pursuit of a mythical meritocracy doesn’t mean that we start accepting code which doesn’t meet high standards, or that all of the sudden we’re going to include more code from people in the bottom 1% of the world in terms of salary. It means that we take a look at different aspects of our project and see what is within our means to open up and make accessible to people who aren’t exactly like us.
Yeah! This post is a great reference to use in reply to the “But we’re open source, so we’re by definition blind to any of those *isms that happen elsewhere, and we just look at code and therefore we’re practicing true equality!” arguments that you hear from people who don’t seem to have thought very hard about what equality is. Thanks!
Thanks, Chris! 🙂
In many conferences in .ve, i’ve heard lots of times the word “Meritocracy”… after many years working for what i belive FOSS is, I still have my doubts about the “Meritocracy” (I dont even like to use it… in particular cases) i heard about (when i was still a newbie, and thought linux was some superb operating system and gnome just a hang ten new kind of logo), that which once was so attractive, and now it seems that it’s the way to be able to tell people who is really contributing and who doesn’t.
Your last paragraph would suit most situations in many communities/projects the best.
Nice post. very well written.
Interesting article – thanks.
I think the wikipedia definition could be better – amount of time available to give is one of the “merits” I consider a part of the value judgement of “meritocracy”. Just as willingness, attitude, and community mindedness are.
With a better definition of merit, I think the term meritocracy fits your description of the postgres community.
I do take your point about the social background of members of the community. Although we may dislike the fact, that can also viewed as a form of “merit” – along the lines of “ability to contribute”.
Sometimes when talking about meritocracy in FOSS context, people mean that communities should judge your contributions based on the merits of the said contributions and not on who you are. In this sense Postgres could be seen as meritocratic – for example, patches by new and old contributors have to go through the same review process.
Good points. But I think both you and Robert are actually in agreement. The Postgres community is remarkable for its ability to assess the value of your contribution on purely a technical basis.
That’s much better than assessing based on how much friends you are with the lead developer, or how good you English is, or how snarky are the comments you make in the mailing lists. I’m afraid there are open source projects that fit some of these actegories.
On the other hand, it’s not the _perfect_ model. Just measuring the value of your contribution based on how good is it is not enough, you should also pay attention to how much did the contribution mean in terms of sacrificing your time, effort, etc.
A contribution from someone that took the trouble to go through all the documentation, comments, previous discussion etc. is worth more than a similar contribution by someone that works with the code on a daily basis. And incidentally, valuing such contributions more naturally produces a larger contributor base, because newcomers get more attention and care precisely because they’re newcomers.
So while “meritocracy” is not the perfect solution, it is still a distinguishing feature of the Postgres project, and a reason to be proud. However, it’s not a reason to stop thinking about improving and to stop searching for an even better model.
You simply made priviledge a merit requirement. The opposite of meritocracy is cronyism. You surely don’t want that.
Mikka – Thanks for the comment!
In the narrow case of code, and in not considering the privilege only of the people whose contributions are accepted, you’re right. We do as well as any project can in this regard.
However, there’s a lot of other things involved in operating open source projects that have nothing to do with code. I think I need to write more about this, and explain that there’s something fundamentally wrong with linking privilege to merit.
Several people commented that they think I should just slip privilege in as a “merit requirement.”
Privilege isn’t just about money – it’s about a collection of gifts individuals receive from society, regardless of merit. Those gifts include but aren’t restricted to freedom, time and indulgence. And to say that a person can *only* contribute to an open source project if they have equivalent freedom, time and indulgence from society as our very most privileged members, is to exclude a great number of people – I’d say 99% of our people – who on their own merit, are capable and would be wonderful additions to our community.
Thanks for the great comment!
I do think that Robert and I are in agreement. And, while I disagree with the use of the word meritocratic to describe the whole process, I do agree that we have a system in place that encourages people to contribute well-documented code.
My goal in this post is to point out that we have an un-meritocratic and largely invisible screening process for contributions, and that this prevents people’s involvement based on an incredibly narrow type of privilege.
EDIT: And I should clarify, this is a much larger problem that Postgres, and that last sentence was rather flip. 🙂 What I can say is that we could have a strategy around addressing these larger issues for our project, and we can do that. And I’m going to write more about addressing this.
I believe you have misunderstood what is meant by a meritocracy. A meritocracy, in an open-source project, purely refers to the view that those who contribute the most to the project are the ones who are seen as leaders, the merit is in commitment and qualities they bring to the project. I don’t know the people involved in Postgres, but ask yourself, who are the leading figures in my community? How have they earned their position? There’s your meritocracy.
I think that the varying interpretations of the words “meritocracy” and “meritocratic” in the comments in this post — without really disagreeing with the content of the post — are a strong argument in and of themselves that those terms should simply be avoided.
So are you saying that you don’t award promotions and pay increases due to merits but more by the results of peer reviews? I’m not sure what your point is to this article.
All in all this post is very confusing. It sounds like the entire post is written on the premise that a meritocracy is where people are awarded positions, promotions, and higher pay rates based on superficial facts: title, number of degrees, where the degree is from, etc.
Is this correct?
If yes – Then I think it’s important to open a discussion on how someone without these types of merits can be just as valuable if not more.
If no – Then please make that clearer. I’d have to re read the post, but I don’t *think* this is the case.
The last thing I’d like to say is to Selena on your latest comment/reply:
“My goal in this post is to point out that we have an un-meritocratic and largely invisible screening process for contributions, and that this prevents people’s involvement based on an incredibly narrow type of privilege.”
This is also extremely ambiguous. Please correct me if I am wrong, but it sounds like what you are saying is that your company has a hidden process for determining which workers are contributing the most to a project, and as a result…. ? (this is where I am lost) – it sounds like you have a point but are dancing around it. Please explain, I think you have something important to say.
However, if you are using an invisible screening process… how is that possible if you “are committed to a kind of radical transparency about our code that, at least in our shared Postgres myth, is embodied in Tom Lane’s example.”
Please clarify and make a point, I think there is an important message somewhere in here that is being clouded.
Interesting article, I wish I saw more code reviews based purely on technical merits rather than ego…
I think I understand where your confusion stems from.
You’ve mentions that a company offers promotions and pay increases bases on merit. In many cases this is true in regard to companies.
However, PostgreSQL.org is not a company. It is an “organic” organization (community) composed of volunteers. There is no defined management hierarchy of any kind, no promotions, and no pay increases.
The way the PostgreSQL organization functions is hard to explain or classify, even with big words such as meritocracy.
Thanks for the comments! I appreciate that you took the time.
First – this post is about Postgres, the open source project – not a company.
What I mean by the “largely invisible screening process” is that we have criteria for involvement with Postgres that are not formal, but informal social requirements.
That’s why I listed: top 1% in terms of salary, are male, had successful parents, don’t have kids/have a caretaker.
I left out that one needs countless amounts of leisure time.
My irritation comes from using the word ‘meritocracy’ as cover. It glosses over problems and incorrectly classifies an organization that has a clear mission: generate high quality, reliable code.
You may be amused to discover just how far along the path you are to reinventing the arguments of “The Meritocracy Myth”: http://www.ncsociology.org/sociationtoday/v21/merit.htm
Next you need to add in how Lookism impacts the contribution process, analyzing the impact on focus of how regular PostgreSQL code contributors are less distracted by external social events, because we’re just not cute enough to be invited to the good ones.
Pingback: Friday Linkage « Endlessly Curious
Pingback: CommitFests and Meritocracy « Open Enterprise: The PostgreSQL Open Source Database Blog from EnterpriseDB
This is an excellent post, in that it made me think hard about what free software projects mean by “meritocracy”. I think you’re right to de-couple privilege from merit.
Thanks for making me think this morning 🙂
The attributes in your profile of project members have a glaring oddity.
I agree that to be male, to be in a top-salary job, and to be from a relatively untroubled family is a good set of (often-unrecognised) privileges.
How, though, is “doesn’t have children” a privilege? I can see how it’s an *advantage*, but unlike the other three attributes, whether one has children is largely a matter of one’s *own* actions and choices.
That is, project members didn’t choose to be male; they didn’t choose much of what goes into their having a top-tier salaried job; and they didn’t choose their parents. But, if they have children, it’s reasonable to say they chose that.
Or are you thinking mostly of people who did not consent to having children? That doesn’t seem to be what you’re saying. (Or is my privilege showing again?) So I’m not sure what you mean.
Thanks for your comments!
Yeah, I’m just talking about free time you have because you don’t have to spend all your time taking care of children. I could make that clearer in the post. 🙂
It is humbling what kind of resources correct and thorough software engineering requires. Getting someone up to your level must cost a million dollars, at the very least.
And yet the majority of people raised with such resources give the world nothing of value at all, so a big thanks for the effort, dedication and quality.
“create structures that invite people to give what they can, when they can give it”
That’s the first half of “From each according to their abiilities, to each according to their needs.”
Pingback: Death before linkspam (3rd April, 2011) | Geek Feminism Blog
I am the founder and lead developer of a free software project and I don’t have all of those privileges.
I’m not male, nor do I have a salary. (probably cause I decided not to work so I could concentrate entirely on my project.) Although my parents were mostly successful, and I do not have kids, I take full time care of my grandmother who is in the later stages of dementia.
A long time ago I wrote this blog about what I felt about meritocracy. I always felt that the people who started projects were not as smart/talented/skilled as those who joined projects, particularly after a project is well established and has many contributors. So basically, any n00b can start a project, but you have to have more merit to contribute to say, the Linux Kernel, or Postgres.
I read this entire post through, three times, and I still haven’t quite managed to figure out what you’ve tried to say in this post.
You’ve pointed out that having various privileges makes it much easier to put yourself in a position in which you can attempt to contribute to a FOSS project and have your contributions (and your corresponding value as a contributor) evaluated on merit. That much I understand and agree with.
However, you’ve presented this as an argument that either we don’t have a meritocracy, or that we shouldn’t have a meritocracy (I haven’t fully figured out which you’ve argued here). At that point you lost me.
Whenever I’ve seen a project or a FOSS developer use the term “meritocracy”, they always seem to mean the same thing: “We evaluate contributions and contributors solely on the basis of merit, rather than any other factor.”. That much seems to hold true, and as far as I can tell you haven’t suggested that you disagree with the idea of evaluating contributions and contributors solely on the basis of merit.
I do understand the point that various societal factors make it more difficult to put oneself in the position of contributing in the first place, and that seems like a bug in society which we should work to fix. However, that doesn’t seem to me like a critique of applying meritocracy within a given project; rather, it seems like an argument that we don’t have *enough* of a meritocracy in society as a whole to allow people to reach our projects in the first place.
Thanks for the comment!
I agree with you that things could all be clearer. My intention wasn’t to be clear, but to just articulate some thoughts I’ve had.
I find the word ‘merit’ itself to be problematic, because we often spend so much time figuring out what is meant by it.
So, I don’t think I am interested in refining the discussion about not pursuing meritocracy or determining whether or not we fit a particular definition of meritocracy.
I’m more interested in finding ways of growing Postgres community in a way that makes sense for us, and for the moment, targeting growth in communities that are under-represented.
Pingback: Team Meritocracy? Team Diversity? ~ Can the former be achieved if the latter is a constraint? | MISSIcom ~ The Business Builder's Help Desk™