Technologies research

We research potential technologies in order to find the best tool for the job:

  • We prefer to use open source technologies.
  • If there are no open source technologies for our particular case, try to use closed source technology.
  • We prefer technologies which are actively maintained.
  • We use technologies that fit our needs best, are popular, widely used and have a good reputation.

Open source technologies

Open source technologies have a few advantages over closed source technologies or services:

  • Open source technologies usually are better quality because more developers work on them and make the way developers want.
  • Usually, they get security fixes faster and are more secure.
  • We have full access to the source code, so we can customize it according to our needs.
  • If a project becomes inactive, we can maintain it by ourselves.
  • Often open source technologies conform to open standards so we avoid vendor lock-in.
  • Licenses are less restrictive and cost much less.

Closed source technologies and services

In some cases, such as client preference or open source technology unavailability, we choose closed source technologies and services. When selecting technology or service look for most popular and high reputation technology, also check if bigger IT companies (such as Google, Facebook, Amazon, etc) have something to offer. There is a greater chance that most popular technologies will be more mature, stable, and maintained longer than technologies that are unpopular or without a good reputation.

Technology maintenance activity

When selecting technology, make sure it’s being actively maintained. Selecting technology that has low activity will force you to replace it sooner than you want to. This will cost money and time for client and credibility for you.

Tips

  • Use Google Trends to determine which technology is more popular.
  • Check blog posts or other sources to find if technology has better alternatives.
  • Search blogs and issue trackers if technology has any unforeseen issues.
  • Activity page in GitHub is a great place to check if a project is active.
  • Check awesome-<technology> lists, such as awesome-ruby or awesome-redux. Meta lists, such as this, are great sources to find awesome lists (there can be multiple lists for the same technology)