Advertisement
Tag Archives: open source communities

Improving Diversity in Open Source

Where are the women in open source software development?

This is a question that’s been asked all too often, and it’s not hard to see why. Numerous statistics have shown women and minorities to be underrepresented in the open source community, a trend that can easily be observed in thousands of projects. Though there have been efforts to improve this situation in several groups, still the underrepresentation presents an obvious and gaping hole in the community.

Why Diversify?

Lack of diversity in open source is a problem because the core ideology behind open source communities is that it’s open to everyone. With the lack of diversity however it’s clear that not everyone can readily participate in open source, and it is therefore not living up to its promise. Diversity is essential to making open source truly effective. With more and diverse open source contributors comes a greater variety of perspectives, which will enable projects to grow and develop faster and encourage new projects to spring up. Welcoming more contributors no matter the gender or background is also key to making project development more sustainable.

Taking the Necessary Steps

To remedy this issue it is necessary for open source groups to first recognize that there is a problem, and that there are steps they can take to solve it. These steps include providing several resources and venues where people of all genders and backgrounds can get involved, establishing a positive and welcoming environment within projects, offering mentorship and maintaining a high level of interaction among contributors. They could also host events and purposefully seek out participants and speakers of diverse backgrounds; provide scholarships and conferences specifically for minority groups; and establish proper codes of conduct. All these contribute to the goal of diversifying the open source community.

So Where Are the Women?

Despite the apparent lack of diversity in open source, a number of movements have already started to pave the way for more women to enter into open source.

One great example of programs that have put in extra effort to improve diversity in open source is Google Summer of Code, which has seen an increase of female participants from 7.1% in 2011 to 12% in 2016. Organizations such as PyLadies and awards like the Women in Open Source Award sponsored by Red Hat also help to put a focus on the role of women in open source.

But there is still a long way to go.

Thousands of open source projects are still lagging in terms of diversity and inclusion, and women themselves have a lot to overcome before they can become leaders in open source. To those women seeking to take their place in open source Denise Dumas and Katrinka McCallum, senior women leaders at Red Hat have the following advice: focus on helping customers solve problems, take on opportunities as they come, and build strong relationships with mentors and colleagues. Red Hat senior outreach specialist Marina Zhurakhinskaya also advises women to grow their skills, step up to leadership positions and most importantly, connect with and follow in the footsteps of other great women in the field. By building a good support network of other women and mentors, women will be better able to take on the challenges of creating a better, more inclusive and diverse open source community.

Community Health: What Should You Be Measuring?

Growth. It’s the standard by which we measure health and success.

With open source projects however, growth is not always synonymous to success. In some cases, there can be a significant growth in community, but a decrease in overall contributions. Or the software may be expanding in scope, and yet fails to entice new users and contributors. So exactly what is the measure of open source community health and subsequently, success?

You may have figured this out already: it really depends on the community. Because of the diversity of open source projects and the people involved in them, gauges of success can vary greatly. This doesn’t mean however that measuring community health is unattainable. It is simply a matter of determining exactly what success means for your specific project.

Goal Setting: the Pivotal First Step

So naturally the first thing you should do in order to effectively measure community health is to set your goals. You can’t measure for the sake of measuring, and you can’t measure everything otherwise you would just be collecting a lot of useless information. Setting a goal not only gives you a fixed target to aspire to as your community grows and evolves, it also guides you in choosing only the essential metrics.

In the beginning the goal is typically to create software that effectively solves a problem for its users. As the community grows however, other, more specific goals surface and make clearer which metrics should be focused on. A project geared towards improving community participation and contribution will need to focus on metrics that find out what encourages community members to participate. If it is business performance they are more concerned with, the metrics should be focused on identifying which factors contribute the most to business revenue. Once you have your goal, identifying the necessary metrics becomes a whole lot simpler.

Important Notes on Metrics

Apart from being aligned with your project goals, metrics must also be accurate. Now this can be a bit tricky, as various factors including and most especially human interpretation can cause metrics to be inaccurate. It’s important for human error to be minimized in measurements however a small percentage of inaccuracy is acceptable and in most cases, normal. Over time, even a slightly inaccurate result that remains consistent can become an accurate indicator of a trend.

Something else that you need to watch out for are the relationships between metrics. A common mistake is believing that a relationship between two metrics immediately indicates causation, which is not always true. When you choose a metric, you need to carefully consider the relationships it has with other metrics, whether direct or indirect. While many of them may be connected, proving that one directly affects or causes another is a whole other matter that may require a significant amount of experimentation, observation and analysis. So you must take care not to jump to conclusions and if you suspect a correlation, take time to observe and analyze first.

Metrics as Dynamic

Perhaps now you may have a better idea of what you need to measure to properly gauge your community’s health. But will those metrics still hold the same value five or ten years from now? The answer is quite possibly no. Just as communities and their goals and priorities change, so must metrics. This is why it’s important to check every few years which metrics are still relevant to your community, which ones you can forgo, and new ones you may need to include. Remember that some metrics may, at first glance not appear to have a direct relationship with your goals, but when combined and interpreted with others can give you a clearer picture of your project’s current status. When choosing your metrics therefore it helps to keep an open mind and to look at the bigger picture: not just considering the individual value of each metric but seeing how as a whole they can help your project to improve.

Grow Your Community by Cultivating a Winning Culture

Culture is one of the most important aspects of open source communities. It is culture that defines what a community is all about, what motivates its members and unites them. It can also be what helps a community grow.

While the software is primarily what attracts developers to a project, the community and its culture is a large part of what keeps them there. A winning culture can not only keep communities directed towards the same goal, but can also help attract and retain community members.

Cultivating a winning culture then, can be quite valuable to an open source community. But in this task where should you begin?

A Culture Audit

The first thing you need to do is to examine your current culture. You need to determine what it is that makes your project and community unique, what the ultimate goal is and what your community believes in. You also have to determine what needs to be changed, and what’s still missing in order to achieve a winning culture. To do this you’ll need to review your current vision, values and practices, have discussions with community members and maybe even conduct a community-wide survey.

A winning culture is one that is unique, easily identifiable, shared and felt strongly among the members of a community. It is one that clearly defines what the community is about, where it wants to go and how it wants to get there. As important as the community culture is however, it is a means to an end, not an end itself. What you really want to achieve is a successful project, but you will need a community directed towards this end. A winning culture is your tool to making this happen.

Once you have a clearly defined vision of this culture, it’s time to introduce it to the community and set proper expectations aligned with this vision.

Establishing the Culture

Establishing any new culture is often difficult, but can be achieved given some time and unified efforts. Of course the first and the strongest to champion these efforts must be the community leaders. They must serve not only as examples of the values and behaviors being set but also take on the challenging task of giving feedback and sometimes penalties to those who act against these values.

Apart from behaviors, the project itself should also reflect the culture you aim to have. For example, if you want a culture that emphasizes efficiency and accuracy, then your project should forego unnecessary or vague processes. If you’re aiming for a culture of openness and communication, then aside from encouraging community input you should also have several varied mediums of communication available.

Keeping Culture Effective

Once you have established your own winning culture, make sure it continually fulfills its purpose by getting feedback from community members and tracking its effectiveness and relevance to the project. As time goes by more changes will occur and more contributors will join in– making it necessary for the culture to adapt to these changes. It would be wise then to not only keep track of how the culture is helping further your project strategies and achieve your goals, but also to repeat the cycle of evaluating and refreshing community culture every few years.

A winning culture enables and encourages a community to successfully implement goal-oriented project strategies and also keeps the community united. It’s a considerable factor in community growth and project success that developers should consider in their open source projects.

New Things to Try with Your Open Source Community

 

“What’s new?”

Most open source developers would answer this question by mentioning new releases, a number of new features or new versions. Rarely would they mention new changes involving the community itself, but in many cases these changes can be the most important of all.

When communities evolve and innovate, the software evolves with them. This is why it’s so important to introduce changes to the community that can help it grow.

With this in mind, here are a few good suggestions that you may want try with your community if you haven’t already:

  1. Transition from a one-man dependent operation to a team of core contributors
    Often what happens with open source projects is that one founder or leader possesses most of the knowledge the project is dependent on. In the event that this leader leaves, the project suffers greatly and may even disappear completely. To avoid this event it’s vital to transition from just one leader to a team of core contributors who handle different parts of the leader’s role. By delegating leadership roles and with proper documentation, support and communication, the leader can secure the future of the project even after he or she leaves.
  2. Starting off with similarities when resolving conflict
    Conflict is unavoidable in communities, but there are ways to handle it that can help instead of hinder community growth and cohesion. One of the most effective ways as mentioned during this year’s CLSx at linux.conf.au is exploring similarities before going into points of conflict. By pointing out similarities first the community is reminded of the common goal, is more able to see opportunities for compromise and is less likely to engage into deeper conflict.
  3. Rewarding community members
    While every contributor enters a project with his or her own motives, it still helps to motivate them further by rewarding them for their accomplishments. But exactly for what should you reward? This depends on what your specific project goals are and what your priorities are as a community. The reward itself also depends on you. It can be as simple as a special mention on a newsletter to discounts on services or free entrance to conferences.
  4. Increasing diversity
    Diversity is one of today’s most sought-after goals and for good reason: it introduces different perspectives into a project that helps it to develop more holistically. But diversity is not something that happens out of thin air. Communities must actively participate in efforts to diversify by reaching out to different groups and lowering barriers to entry.
  5. Holding community events
    Community events may seem trivial compared to say, actual coding and work. But it’s through community events that members of all skill levels can come together and interact with each other face-to-face. It’s a great opportunity for members to get to know one another, share ideas and experiences in person, learn from one another and really feel the spirit of being a community.

These are just some ideas that you could try with your community to make it better, but there are sure to be many others. What are some of the ideas that have worked best with your own community? Share your experience with us in the comments section below.

Sustain Your Open Source Project by Nurturing Your Community

If there’s one thing that most, if not all open source developers hope their projects could be, it’s successful. And as we’ve previously pointed out, one of the most important ingredients to open source project success is having a good number of dedicated and talented developers on board.

Having good developers stay on board however, isn’t always possible. Many times developers will choose to leave a project for one reason or another. If at the same time no new people come in to continue the development of the project, then the project becomes unsustainable.

For open source projects, success and sustainability go hand-in-hand. For a project to be sustainable, it must nurture its community of developers and contributors. This is done in two ways: ensuring that existing developers stay, and that new people come in to help with project development.

Getting New Contributors

Getting people to start contributing to your project can be challenging, but can be achieved with diligence. First off, you have to be constantly recruiting and always welcoming new contributors. You can never have too many. You will always need more people to get things done.

There are a number of ways you can get people to contribute. For instance, instead of fixing a bug yourself you could write down how someone can fix it. This not only gets that bug fixed, but also lures in a new contributor or potential maintainer into participating.

Another thing you need to do is properly document your processes. If you’re an eager first-time contributor, the last thing you’d want to be is that new kid in school- coming in with all the cliques and cultures formed and having no idea how or where to start fitting in. Make it easy for the new guys by documenting all of your processes, criteria, direction, people in charge and other pertinent project details. This way newbies can easily get into the swing of things and be more likely to become absorbed into your project.

Third, develop a hospitable culture. People are more likely to enter and stick with a project that welcomes them and teaches them the proper things, than one that insults them for mistakes and fosters a culture of exclusivity.

Making Them Stay

Attracting contributors is one thing, making them want to stay is another.

Getting new contributors is no doubt important, but making the existing ones stay is just as important. Existing contributors are the ones with the know-how and experience regarding your project, and as such are very valuable members of your community.

The first step to ensuring your existing community members stay is to establish a code of conduct. A code of conduct makes sure that everyone in the community gets along and acts in a civilized and professional manner, and that disagreements are dealt with properly.

The next thing you should do is make sure that these valuable community members aren’t overworked. They should be able to take breaks and there should be enough people to handle the workload even when some are on break.

Probably the most important thing you should do in order to nurture your existing community of developers and new contributors as well, is to value them not just as contributors, but as people. For those moments where your project isn’t their top priority, understand that they have other responsibilities, other commitments and sometimes they will make mistakes. Be supportive and understanding and learn to compromise, and these valuable members of your community will be more inclined to stay.