algonote(en)

There's More Than One Way To Do It

Checklist for Technology Selection

How to select technology stack

Preface

When you develop something, it is often necessary to use some external services or tools. Unless it is a hobby development, we want to make decisions with a certain level of rationality. Here is a checklist for such cases.

Quality

  • Does it meet the required functionality for this project?
  • Does it fulfill the necessary functions in the future?

First, list the features of the multiple technologies you have chosen. Does the technology you are planning to use have sufficient functionality to meet the requirements of the project? If there are future development items on the roadmap, check to see if we can use it for those functions as well.

  • Can it be used for other cases?

You may be building Service A. Perhaps the same company may be building Service B. Will the tool you are trying to use work for Service B too?

  • No side effects?

For example, suppose you are considering a server logging tool and there is a multifunctional service. It may look good at first glance, but the tool may worsen performance. Are there any side effects?

  • Does it have a proven track record?

Let's say a new startup comes to you to sell their service for B. They say the tool can do a lot of things, but there's possibility that the same thing could be done with another company's service that is more mature.

Does the technology you are trying to use have a sufficient track record? There may be some unforeseen pitfalls. Does the tool have enough advantage compared to the risk?

Cost

  • Cost of the technology (product) itself

Is the technology free to use? If it is an outside service, see if there is a free tier, the prospects of operation, and whether the cost may be more than expected.

  • Operating costs

Sometimes your boss and others will tell you that an external service is too expensive. Free open source alternatives may be attractive from a price point of view, but have you considered your own operating costs? Are you willing to spend more on labor to save $100/month?

  • Recruitment costs

It is not uncommon for the person in charge to leave after start using a tool. Is the technology that the cool engineer says it is cool likely to be understood by others? If you need to recruit additional people who understand the technology, can you get enough applications?

  • Education, learning costs

Sometimes you need to have training in the company. Is the technology close to the technology the company already use? Is it easy to catch up?

When you decide to start using new tool, do you have people in your company who already have experience with it? Getting the technology to permeate the company can be a painstaking task. Are there lead engineers who are committed to the technology and can evangelize it with enthusiasm, such as by presenting it outside the company or using it in their hobby services?

Time

  • Lead Time to Start

Tools for B can take a long time to start. Do you need to wait a few months to start in the situation that the feature you plan to implement is next week?

  • Time it will take to switch. Is it easy to remove?

How long is it to replace the existing tool with the new tool?

It is possible for a technology to become legacy because the tool's company stops offering the service or technology trends change. Is the technology easy to be replaced by another tool in the future?

Summary

If you want to do it right, put them together in a DA (Decision Analysis) table based on the items so far.

The scores can be ○△✖︎, the color of the signal, or simply the number of points, or whatever is appropriate. Add weights if necessary.

Tech A Tech B Tech C Weight
Feature 5 5 4 2
Cost 4 2 5 1
Time 3 5 5 0.1
Sum 14.3 12.5 13.5

Notes

Speed is also important in business. Don't spend more time than necessary to start using a small tool.

It is easy for the reviewer to make a decision when there are 100% materials to consider. In a sense, the job is easier because anyone can make the decision.

As in any other job, a good boss have to do decision with 70% information.

Thoughts

Please let me know if there are any other points of view.