I used to be a fan of new technologies. Technologies like CORBA, Google Web Toolkit, Hibernate, Angular, BPM Activity and so on. Using these technologies for your project has advantages and disadvantages. After several years of experience, I realized how careful we should be. Especially if the technology does some cool fancy magic. There is no free lunch. In the end, you will pay for it anyway. Maybe not with the money, but definitely with your time.
The typical scenario may look like:
- Awareness – You hear about new technology X and you have the temptation to use it.
- Learning – You are learning new technology X. You have the feeling you will be able to solve most of your problems using this technology.
- Confidence – You are self-confident about the knowledge of the technology X. You are about to add technology to your big project. You are persuing your friends about how technology is great. Everything is nice. Sometimes you create an artificial problem just to solve it by the new technology X. Just to prove it to yourself you need it.
- Migration – You want to use the technology X in your big project, so some migration is necessary. It is painful but you know, you are doing it for the future. And the future will be great.
- First problems – Strange, you have some use cases which are not covered well by technology X. Also, there are some strange bugs.
- Hesitation – Your code is in the production and you spend most of your time searching the internet for fixes instead of writing the new code. You use fixes from stack overflow which you do not understand well. Some software developers leave the project now. They will probably start a new project with the new hot technology Y.
- Sobering – There is a new version X 2.0 which is not compatible with version X 1.0 you are using now. Your version is obsolete and not supported anymore. You hear rumors about the technology Y which is better than X. Everybody is using Y now.
- Apathy – You do not have time and energy for the migration to X 2.0 nor Y. Most of the time you are fixing problems. It is often a magic. You just hope to not break anything. You are not able to fix some bugs anymore.
Some useful tips
- Study new technologies. Some ideas are great. These technologies are made by clever people.
- Before adopting new technology, try to find drawbacks. In which areas is the technology poor? There are always poor areas somewhere. Find them.
- Try to solve real problems, not artificial problems.
- Try to use new technology in the separated small project first. If you are not in the production you do not have enough experience.
- Consider exit plan – will you be able to leave the technology in the future?