1. Introduction

Open source software is the foundation of the information society.

There are many types of software on GitHub, with different market positioning and maturity levels.

For mature general-purpose software like Linux and NGINX, there are few concerns about introducing them into your own projects. Because they’re general-purpose, many people use them. You can find numerous success stories and many developers to maintain them. When problems arise, it’s easy to find answers online.

But there’s another category of open source software that is relatively less general-purpose. Although they’ve done well in their niche areas, due to the smaller ecosystem, there are many factors to consider when introducing them into projects:

  • Do the existing developers have the ability to master and take over continued development?
  • If problems occur during use, are there suitable developers to fix them or do secondary development?
  • After the system goes live, are there suitable people for long-term maintenance?

For this type of software, there are two ways to increase confidence before introducing it into a project:

  • Find the right people
  • Become a member of the software’s open source community

2. Find Experts

Here are several methods:

  1. Search for Chinese developers among the software’s developers and try to establish contact.
  2. Search for discussion forums and QQ groups related to the software on Baidu. Join and listen to identify experts.
  3. Find and participate in training related to the software.
  4. Find software related to this software on GitHub - for example, software that references it, plugins, etc. And establish contact with collaborators.

The purpose of all the above is to establish real-world connections with experts. Then through phone calls, emails, meals, and other communications with experts, further understand the software’s domestic ecosystem and its pros and cons. Lay the foundation for future introduction. After establishing contact with experts, it’s convenient to cooperate with them on projects for win-win results.

3. Become Part of the Open Source Community

If you can’t find experts domestically, you have to roll up your sleeves and become an expert yourself.

3.1. Learn to Use

Mainly focus on these areas:

  • Official documentation of the software
  • Introduction videos on YouTube and third-party tutorials
  • Unit tests of the software

Combined with coarse-grained source code analysis, you can master the software’s general outline.

3.2. Discuss with Peers

General open source software communities have these places:

  • GitHub Project Issues
  • GitHub Project Discussions
  • Discord or Slack discussion groups
  • Email mailing lists

By joining and seeing what people are discussing, you can learn some usage details and applicable scenarios of the software. While learning, also think more, ask more questions, and answer community questions.

Answering community questions can focus on areas related to your project. Actively answering questions has two benefits:

  • Drive yourself to think deeply - if I encounter this problem in my project, how should I handle it?
  • Build connections with other community users and software developers/maintainers

picture 1

This is the discussion community for Headless CMS Directus. I’ve been researching using Directus as an API middleware recently, and watched the project’s discussion area. GitHub sends all discussions to a specific email of mine in real-time. Through reading everyone’s discussions, I’ve gained a lot. I also summarized my learned experiences to help other users - I’m ranked 5th on the “Most Helpful” list.

3.3. Small-Scale MVP Verification

On the basis of reading, you also need to do hands-on work.

Based on your project’s characteristics, define a minimum MVP process related to the software and try to introduce the open source software to implement it.

These three points complement each other and can be carried out simultaneously. The ideal result is:

  • You become an expert and introduce it in the project
  • During research, discover the software isn’t suitable and decisively give up