I have worked as web developer for ten years. I have seen many people bring personal interests to their work. I think that what matters is whether it is suitable for requirements. A good engineer should think whether the system works several years ahead and consider whether it can be maintained properly.
Let's take a look at 13 things you be careful when you select technology.
If there are few people who can use that technology, it will be difficult to hire people. On the other hand, if there are many, you can hire easily.
It is better to think about below things.
- Are there many job openings requires that technology?
- Are there enough document about that technology?
- Does that technology deeply have penetrated your industroy?
If you can conserve server resources, running costs will decrease. It is a showcase of engineers' skills to keep costs low and make good ones.
Compile time is short. It will not take a long test time. It takes less time to start up. It is better not to take time. In case of selecting better framework, it is important to be easy, fast and secure.
It is desirable that the official document are substantial, and there is enough sample program. In addition to the O'Reilly books, if a lot of books are published, it seems to be said that the technology that has penetrated the industry.
If you incorporate various technologies, the system operation may became painful. If system operation is troublesome, handover is also hard. Could it possible to become a simple? Let's think whether really need to introduce it.
I feel that there are many people who do not care about this especially in japan.
Do not blame your colleagues as not having sufficient skills or ambition, so let's think about possibilities your colleagues to learn so as not to become a technical debt.
There are many engineers who like new one. It is wonderful that you want to use new things, but do you need to use it at work? Since it is a job for getting a salary, you should separate a job from your hobbies. If choose with your personal interests, you cannot convince the takeover side with that reason.
Are you trying to use the technology just released? A bug has maybe included when initial release or major version upgrade. Or It may be a technology that will not be maintained.
Can it be done more easily? In case of language selection, it is often to use multiple languages in one project, but could you reduce language? Increasing what you use easily makes it technical Debt. Let's make it simple.
It is a tragedy if we choose a technology without a maintainer. If there is a vulnerability, it won't fixed. And if any bugs, it won't fixed. Let's choose what is being maintained for a long time.
If that technology penetrated, It will be easy to hire people, the functions will be fulfilling. It will be important whether to spread or not. If it does not become popular, it becomes obsolete and becomes necessary to replace. And so it will be called a technical debt. When introducing new ones, let's care about whether it is going to penetrate the industry.
Let's choose easy to use if you can. If you could introduce advanced technology, the surroundings may praise that you are great. But do not forget that the system depends on you. Let's choose by considering the level of your team members, the level of technology inside the company, the degree of penetration in the industry. In case that you have to adopt it, let's think about how you hand it over to the others.
You are happy if your salary rises, right?