You've got community questions. Safia has answers.

Ask Safia: How do I unite similar open source projects?

Ask Safia over a fishing pier in the ocean
Image by : 
  Florida Memory. Modified by Opensource.com. CC BY-SA 4.0
x

Subscribe now

Get the highlights in your inbox every week.

 

Dear Safia,

I work in a research laboratory facility and I've developed some open source tools to interact with research equipment. After doing some Googling, I discovered that there were multiple open source projects that did the same thing with various degrees of completion and complexity. I think it would be great if these projects were united in some way so that researchers working with this laboratory equipment had robust open source tools to work with. How can I bring together people who are working on different projects that do the same thing?

Sincerely, United in Utah

Hello there! This is a fantastic question and gets at one of the most important parts of open source: listening. Writing and publishing software is a fairly easy process compared to developing a community around an open source project. As a result, you might often find multiple open source projects that address the same problem, but are scattered around different organizations or repositories. Before figuring out whether it is good to consolidate all of these projects into a single repository and community, there are a couple of things you should consider.

Like most things in life, you'll have to do a lot of listening before making your final decision. What kinds of things will you have to listen to? There are a couple of questions to ask and ideas to consider before making the decision. Ready to find out? OK, let's go!

Because you're interested in bringing people together, I'll assume that you have an idea about the common goal that each project is working toward. If you don't, this is where the listening comes in. But here's the catch: In addition to figuring out what the goals of each project are and the commonalities that they share, finding out what differentiates each project is important. Although some projects might have the same technical functionality, they don't necessarily have the same user-focused or community goals, and ultimately these factors are more important in the vitality of a project. The ideas and thoughts that people don't share around a project or its purpose will often do more to divide them than the goals that they do share.

Unifying projects gives you the opportunity to address missing components in each project—these can be technical or non-technical. For example, one project might have a strong existing community, whereas the other might have a well-developed architecture, and both projects might lack good documentation. Before proposing the unification of multiple projects, make a checklist of some of the things that the "best version" of each project would have. For example, an ideal open source project that manages interaction with laboratory equipment might have good documentation, example use cases, and an active mailing list of support. By identifying these missing components and expectations about what the project should be, you have the opportunity to ensure the presence of these factors and the health and vitality of the project from the start.

A final note: Merging projects together has its own pains. You might end up having to bring together people who have never worked with each other before, or who have different development or project management styles. In this way, uniting projects takes a huge amount of sensitivity and perception about the emotional needs of the project. In fact, you'll find the the technical challenges of merging projects pale in comparison to the interpersonal challenges of uniting projects. As it turns out, people are a lot harder than software!

In summary, when you are looking to merge multiple projects into a single organization or repository, consider the following:

  • Do each of the projects have common end goals that make it easy for people to work with each other?
  • If the projects have uncommon goals, are they severe enough to prevent effective collaboration between people?
  • Are there external factors, such as grant funding or corporate sponsorship, that might make it difficult for two different projects to unite?
  • Are you up for the challenge of bringing people together to work toward a common goal?

If the answers to these questions prompt you to reconsider whether the projects should be merged, take a while and think through the problems that you might encounter in the process. If the answers to these questions make you feel even more confident about the possibility of uniting multiple projects together, then go forth and unite them!

Over and out,
Safia

 

About the author

Safia Abdalla - Safia is an energetic software engineer with an interest in data science for social good, intelligent interfaces, and great coffee. Follow her on Twitter. She is the founder and fearless leader of dsfa, a professional services startup aimed at providing data science services to small businesses. She is also the organizer of PyData Chicago...