This is not a post about sexism or misogyny. It's not a post about diversity or how to get more women in tech. It's a post about being uncomfortable.

Most people who know me would say I'm a friendly person. I like to meet new people, I like to hear about what cool project they're working on. I like to talk about geeky movies, and music, and books, and all the other things that come up in friendly conversation. And I high-five, a lot. I also watch Archer and adore Louis CK, and I don't mind a good that's-what-she-said joke.

Sometimes, when people figure out I'm friendly, they assume they can talk to me as if I was an old friend of theirs. And sometimes, jokes get told to me that flat out make me uncomfortable. I can hear an off-color, suggestive joke from a close friend and think it's hilarious. I can also hear the same thing from someone I met 5 minutes ago, and feel like I want to run the hell away (in fight or flight, I'm definitely a flight). When I mention that, and I get an "it's just a joke, relax" reply, it makes me feel invalidated, insecure, and even more uncomfortable. So am I defective for feeling like that? Do I not have a sense of humor? Am I overreacting? Am I a prude? What is wrong with me? Everybody else seemed to be fine with it, so it *must* be me, right? What if I don't even really know why it made me feel uncomfortable, just that it did?

Fortunately for me, I am not the only one who struggles with this. I'll get back to this in a minute.

We all know that everything humans do revolves around context, but let me say it again. Context is everything. Sometimes, here in the Land of Open Source, we forget that. We hang out in our jeans and t-shirts, and chat on IRC, and go to conferences to meet up with old friends and have a beer. We recruit our friends to work on our projects with us, and we bitch about stuff on Twitter, or Hacker News, or Reddit. Lost in our own bubble of protection from mainstream society and grownups, *we* make the rules. This is Open Source! We value freedom, and openness, and we defy the status quo! We keep the context of the LoOS nice and tidy and all wrapped up with a little bow, same as it ever was.

And then come new additions to the LoOS. We dub them Newbies and drop them in the middle of it; a sort of trial-by-fire. Sink or swim. Either you fit in as one of Our People, or you don't. This is the way we behave; either you like it or you don't. These are the expectations; either you agree with them and fit in, or you don't. Chances are if you aren't comfortable with anything in this LoOS society, and you want to change it, then you have a long road ahead of you. Because we are free to do as we want, and this is what we've chosen, it will be difficult to convince us otherwise. We're not giving up that freedom to behave the way we want just to placate *you* of all people. And we've always been fine with it, so it must just be you. You should get over it, or you know, there's the door. Some of us have been here a long time, and you just got here.

Hmm, you just got here. Unfortunately for you, history creates context, so any new people coming in essentially have none. Inside jokes, social norms, insider information: these things are all taken at face value by a new person entering any group, without any context whatsoever. This is another piece that I will get back to in a moment.

There's a grocery store near my house that I don't like. It's small, dark, and dirty, and it just makes me uncomfortable. So I never go there. It doesn't make me angry, it doesn't offend me, it doesn't push me down and take my lunch money or call me fat. It's just not a place I want to be; there are other grocery stores around that I like better. It's not worth my energy to try and change the place.

I also joined a gym once. It was full of bodybuilders and supermodels who were all very interested in each other. It made me uncomfortable, so I never went back. I paid the money and I never went back. You may think that's a very silly thing, and they certainly weren't offending me or making me angry. It just was not a place I wanted to be, at all. I've since found a gym that is more open and welcoming and has people of all ages and shapes and sizes, and I feel comfortable there. They send me emails to see how I'm doing. It's nice.

The same is true for our personal relationships. When we say and do things that make the people around us uncomfortable, they are less likely to want to keep hanging around us. They may not be angry or offended, they just make other choices. And they may not even say anything about it because of the internal struggle I mentioned before. Sometimes it's easier to walk away than to spend the energy defending or explaining the way something makes you feel, especially if you know the other party is not particularly receptive to your point of view. I'll get back to this in a minute, too.

Yesterday, I posted this picture on Twitter and asked people to simply tell me if it made them uncomfortable. My goal was just to get honest answers, and not to judge anybody for their reaction (and I hope you can do the same). The results were fascinating.

102 of you replied with a reaction.
3 said no it didn't make you uncomfortable, and gave a lol.
14 said no
42 said no, but thought it was poor taste/didn't want to see it at a conference/made them judge the wearer poorly
37 yes it made them uncomfortable/wow I can't believe that
3 said it made them angry
3 made jokes about the code itself (I love you guys)

The most interesting thing about it was that the results were also quite mixed with regard to gender and location (best I could tell from Twitter). Men and women said it made them angry, men and women said the joke made them laugh. There was a wide array of people expressing widely different opinions. I think the only exception to that is that 4 of you also mentioned a concern with personal safety in being around that person, and you were all women. The majority of you would likely agree that something like that was not appropriate for a professional conference.

Hmm, professional conference. What do those words mean in the LoOS? It seems like an oxymoron in a sense. I mean, we're rebels! We do what we want! We wear jeans to our conferences! We have beer and stuff! And we act just like we always have because we're among Our People.

But look at Your People. Your People have a wide array of widely different opinions about how something makes them feel, and for some, those feelings are pretty strong. Your People do not agree. What's happening here?! And for those who say we should all just act based on "common sense," well, you can see that our sense is not entirely common.

Oh, and remember that thing about context I talked about earlier? Several of you pointed out that the code on the shirt is a very old Linux joke that has been around for years. Those of you with context were not upset at all by the shirt. UPDATE: I did have one more person say that even though they knew of the joke's origin, it still made them feel uncomfortable.

And wait, some of Your People may not mind acting like a professional. They may not mind treating this LoOS as more than just a Google hangout IRL. In fact, for some of you, this is a career and an industry just like any other, and settings where we all come together for this purpose should have different expectations.

So let's get back to what's really important here: me. So I'm feeling uncomfortable because I'm in a weird social situation, and expressing myself makes the weird social situation even weirder. Maybe I'm one of those 36 people who are uncomfortable with the shirt. What do I do? What if there were 10 people with that shirt on? What if there were 300? Do I say anything? Or do I just shut up and sit down?

Elizabeth, it sounds like you're telling me I can't wear what I want or say what I want because "somebody somewhere might be made to feel uncomfortable." No, I'm not saying that at all. Do whatever you want that is authentic to you. That is your right. If you're a company, you absolutely have the right to market yourselves any way that you choose. What I will ask is that you consider the possibility that everything you do and say has a direct effect on those around you. And I will ask you to consider the possibility that if others around you *are* being made uncomfortable in some way, that you ask yourself if that's ok. If the answer is yes, then go for it. If the answer is no, then maybe having a discussion about it is a worthwhile venture. And I will ask that you keep in mind that how you make people feel directly ties into their perceptions about you.

We can talk all day and night about whether something is sexist, or offensive, or inappropriate. What I'm concerned about is that we're judging each other based on where our lines of appropriateness are drawn, and we're not considering the fact that somebody else's lines might not match up with our own. We just get angry at the other side because they can't see our point of view. Worse still, we trivialize and discount serious concerns of others because we don't feel like changing.

In my opinion, there is no right or wrong when it comes to how something makes you feel, deep down in your gut. As I said before, what is hurtful for someone isn't for another. What's a huge deal to some is trivial to others. That doesn't make it any less of a big deal.

If we don't respect Our People, and the new people coming in to our community enough to afford them the freedom to express what they feel without penalty, then this community will be lost. If we don't afford them the common courtesy of compromise and understanding, then this community will be lost. And lastly, if we don't learn to change with a changing tide, and remember that the face of Our People looks very different than it did 10 years ago, then this community will be lost.

For a person to leave our community, or at the very least be much less a part of it, they don't even need to be offended, angry, afraid, or upset. All they need to be is uncomfortable.

Tending the Gardens of Open Source

Imagine your neighbor has a garden. It's a beautiful garden, and she's out there evenings and weekends, carefully tending her petunias and impatiens. Gently pulling the weeds in between her seedlings. Carefully watering in just the right amounts.

One day, you say to her, "Hey! You should open that garden up to everybody. You know, share the joy."

"Brilliant idea," she says, and she puts a sign on her gate that says "Free flowers."

Soon after, people start coming to get flowers. Some just look and admire the garden. Some take a few for their kitchen tables. Some take handfuls to use in bouquets that they can re-sell to brides-to-be.

Soon after that, people start to offer feedback.

"You're watering these too much."

"You're not watering these enough."

"I like your purple petunias, but what you really need are hot pink ones. With white around the edges. They would match my kitchen better."

"Where are the goddamned roses? How can I sell a bouquet to a blushing bride without goddamned roses?"

She ponders these points. She was pretty sure she was watering at just the right level, but maybe she'd been wrong. She vows to have another look. She didn't think putting in hot pink petunias with white around the edges would be a big deal, it would just take some time to find the seeds and make some room. She would add that to the list. She wasn't sure about the roses, though. She'd have to do some research on what it would take to grow the roses, about the soil and climate, and sunshine levels her garden got every day. This would take quite a bit of time.

In the meantime, she hears her little ones calling her to come play. Her laundry is piling up. Work needs her. Her spouse wants a date night, and her dog needs fed. There are also some new flowers she read about and wants to try growing, but she has nothing left. She is tired. Her garden is suffering.

She needs a break, but decides that instead of closing her garden, she will till a new spot and get it ready for planting. She will open that spot up to whoever wants to plant something else. She spends a few hours preparing the soil, then lets the rose-guy know. Maybe he knows more about growing roses anyway.

"Hey, I was just trying to help. Well, if you're going to be an asshole about it, then screw you," he says. "I will take all the money I made from selling the free flowers you gave me and bash you all over the internets."

She sighs. She thought people would be happy to get free flowers, especially fellow flower lovers like herself. Suddenly gardening isn't as fun anymore. She spends less and less time tending her garden. The weeds start to overcome the flowers. People complain even more, and eventually stop coming. It will be a long time before she opens a garden again.

And thus we have the phenomenon of Open Source. An interesting Twitter conversation today between me, Chris Hartjes and Juozas Kaziuk?nas (affectionately known as Joe) spurred this blog post. They are both good friends of mine, and are never short in the opinions department, which I love. They are passionate about what they believe in, and I think that's always a good thing. Basically they were saying that replying with "Pull Requests Accepted" when users offer feedback to your software is a copout. It's an easy escape for Open Source project leaders to disregard and discount feedback. (Then we got into a discussion about intent, but that's another discussion altogether.) While I think that being open to feedback is generally a good thing, and I totally understand what they were saying, I respectfully disagree, and think that's a completely reasonable response. Also, I think there is a greater discussion to be had.

Really it comes down to the question of how much responsibility is placed on an Open Source project leader to satisfy end users? And how much is placed on a community of users (who actually know how to code and can make changes) to help fix things and make them better? The answer is, "it depends." In a perfect world, I'd say there is a shared responsibility, an equal balance where everybody wins. But this doesn't always have to be the case. Some projects aren't conducive, by design, to receiving random pull requests. And some project leaders are only running the project to satisfy their own needs and not the needs of the users, which is also totally fine. They're glad if someone else uses it, or takes it and makes it better, but they're just doing it on the side for fun, and don't really have a desire to solve everybody's problems or make it the Next Big Thing. Shouldn't this be ok too?

What I'm saying is that it's important to remember that Open Source is ultimately about choice. If you have feedback or feature requests about a project, remember that the person on the other side is doing this in his/her free time. They may be inundated with other requests or criticisms, and not getting anybody saying simply "thank you." They may have just had a child or a sick parent. They may have just been laid off. They can make the choice that other things are taking precedence over your feedback. And that should be ok. In turn, you can make the choice to react by either bashing them or taking some time to make it better.

We all know how much hard work goes into an Open Source project. We fully understand and appreciate the value that it provides. If it's something that we use to make a living, then we owe a debt of gratitude. We're getting free flowers, after all. Gratitude is really the only currency we have in FOSS.

If we don't stop bashing and abusing each other for not writing code the way we think it should be written, or for it not being perfect and polished, or for not responding to us in a way that we think we should be responded to, then we will effectively kill off Open Source. We will kill all the flowers we've worked so hard to grow. We will have nobody to blame but ourselves when there's no one left to tend the gardens.

Why People Don't Contribute to OS Projects, and What We Can Do About It

Why I care, and you should too.

Many people know that when I can, I help Ed Finkler out with Spaz. I don't contribute to the code base, but I help with end-user support, and I help coordinate the efforts of other end-user support people. Many people also know that I work with PHPWomen and of our attempts to boost open source involvement with our members through the PHPWomen Partnership Program.

Interestingly, the issues involved with both of these groups overlap. As those in the open source community who either contribute to, use, or advocate open source projects, we understand the importance of keeping them vibrant and active. We understand how great it is to be a part of a growing project we believe in. We understand the benefits of being an active community member. We understand that it not only helps the good of those around us, but it helps us hone our own skills. So what can we all do to get more people to contribute? Even if you aren't a project lead on an open source project, you don't want to see it fail. The obligation to keep things going lies within us all.

I get curious about things sometimes, and when I wondered "where is everybody?" I wasn't sure of the answer. There are so many great opportunities in open source projects. Are people taking advantage of them? Do they even know about them? Do people even care?

What the "research" showed.

Naturally, my first thought was to ask Twitter. So in this completely non-scientific poll, I asked developers who weren't contributing to an OS project, why they weren't contributing. At the time of this post, there were responses from 264 people, and I allowed people to choose more than one reason. Of course this is by no means exhaustive, nor is it meant to be a substitute for any real research on the matter. But I think this does give a little insight.

Although there are many things that keep us from contributing (including one person who "thinks people like Ed Finkler are scary"), the top three replies, by far, were these:

1. Not enough time.
2. Not sure where or how to contribute
3. I'm not confident enough in my own skills.

Numbers 1 and 2 were no surprise to me. Funny thing about Number 3, though; I added that as an afterthought. It was one reason I personally always shied away from contributing, but I figured surely others were more confident in themselves. I found these results quite interesting, and I'm a bit relieved that I'm not the only self-conscious one out there.

So what?

How can we overcome these obstacles to encourage more participation in our projects?

Let's look first at Number 1: TIME.

It would be great to have more time. We all need more time. Nobody has enough time. Yeah, yeah. We get it. I don't foresee that changing anytime soon, so how can we work with this? Here are some ideas for project leaders/devs:
  • Break up big jobs into little jobs. If you need help with documentation, break it into smaller, more manageable chunks. Chances are, you'll have better luck getting someone to write a one-page doc as opposed to a 20-page doc.
  • Quantify time commitments. I tried being a member of our elementary school's PTA, but for some reason I didn't quite fit in with the other moms (long story; I'll tell you over a beer sometime.). While I still think those people are crazy, one thing I'll give them credit for is that they know how to recruit volunteers. They tell you up front how much time a task will take. Only then can volunteers make an informed decision about whether they can step up. Much like putting a monetary price on something, you are telling people how much it will "cost" them.
  • Keep time commitments minimal.. Something else the PTA does right, is that they've mastered the art of breaking things into 15 or 30 minute increments. They tell you up front "this task will take you 15 minutes" or "we need someone to take carnival tickets for 15 minutes." And really, who doesn't have 15 minutes in the day to work on something they care about? (Ok, there may be one guy out there; his comment on the poll was that "his wife would kick his ass for doing something that took away from family time without financial recompense." He might not really have 15 minutes to spare, poor guy). Even bigger tasks can be broken up per day; 15 minutes a day works out to almost 2 hours a week. Not too shabby.

What about Number 2? UNCLEAR EXPECTATIONS.

People aren't mind readers; they like to know what you need from them up front. Here's what we can do about this:

  • Define what exactly is needed. We've started doing this with the PHPWomen Partners - by explicitly defining areas where the most help is needed, you make it easier for potential contributors to see how they can help. Makes sense, right?
  • Make the "how to contribute" page on your project website clear as day.Help them help you. Don't make potential contributors search for or guess what you need help with.


If we don't keep the cycle of contributing going, and include new people on a regular basis, inevitably the cycle will die, and the project will stagnate. We all have to start somewhere, and we all make mistakes. So what can we do to convince people that you don't need to be a super ninja coder to contribute to a project?

  • Save some low-hanging fruit for beginners. It's easy to do the easy things. But think about it, if you only have more advanced things on your to-do list, then your chances of attracting a beginner are much more slim.
  • Communicate that you have a welcoming atmosphere. We do this through the PHPWomen partnership program also. The goal is to encourage participation, and to reassure new members to the community that they will be accepted. Remember, potential contributors to your site are not mindreaders. If you don't tell them, they don't know.
  • Appoint an ambassador. Having one person that can help newcomers to the community understand how things work, what it means to contribute to open source, where to go for questions, and that sort of thing can go a long way in actively recruiting new participants.
  • Make it clear you have other needs besides code. Many projects are also in desperate need of design, documentation and support help. Many also simply need users of the software to help other users or to help spread the word.

The bottom line is, if you're involved at all with an open source project, you have a vested interest in seeing it thrive. In order to do that, you need to "sell" it. You need to sell how great it is to use, and also how great it is to work on it. You need to actively encourage people to participate by keeping in mind the three main obstacles above.

What other ways can we recruit new faces to our open source projects? I'd love to hear your thoughts.