Some principals in selecting open-source package/project

Weekly Dev Blog
2 min readMay 3, 2021

In a developers journey, they usually go through a phase where they are reluctant to use other people’s code. They rather implement it themselves if not under the project timeline’s pressure.

This is not because they believe that they can do better, but rather they will not be bounded by the constraints that are introduced by the added dependency. At the end of the day, writing code is usually easier than reading.

After this phase, develop may become more goal-oriented and not so focus on building packages themselves. Then selecting an open-source package/project becomes important.

Below are some of the principles I apply when selecting an open-source project

  1. choose active package/project
  2. choose package/project where its lead has good communication
  3. choose the package/project that has a single focus

Choose active package/project

When importing a package/dependency, we are essentially starting a contract with the package. Future features and bug fixes update will inevitably affect the productivity of the software you are developing.

Software code is not just consisting of lines of code but rather from a chronological standpoint, a sequence of changes. For any issue, as long as people are pay attention, it will get noticed, pick up, resolve as time passes.

If a package hasn’t got any update for a year, it means that the most important asset, the user is gone. When we want to pick up and become a new user, we need to have the capability to bring it alive, have the capability to bring new feature and new bugs.

Choose the package/project where its lead has good communication

Most open source project has a project lead, usually the founder of the project. Some may not have a good temper but as long as the person is trying to make sense, is communicable, the project will keep at the good shape and maintained.

The project leader needs to balance the feature request and aligning the direction from different users.

Choose the package/project that has a single focus

Personally, I prefer to use a package/project that has a single focus. it helps us to assemble and decide on when to use it. It would be easier to swap out and use a different implementation.

Choosing an open-source package/project is choosing to work with the people behind the project. Human is the most important factor, we need to be wise and choose to work with people that are diligent, smart and focus.

--

--