Fashion in Technology
Like how the fashion industry works, where people try to stick around to the latest trending clothes, the tech industry is also moving on similar lines. Recently I was talking to someone:
Dev: We are moving to Angular 4 from react.
Dev: It has got a lot of improvements, which would be nice to have. And everyone is moving towards it.
Now, this is the problem with the industry. People without even understanding the need, just decide to move on to the new technology as if they were clothes. What’s important to make a solid engineered product is not the latest/trending technology but a robust implementation of the technology you are using. A classic example are banking software! They are probably written in age old tech, but do they not work? In fact, they work at a scale where any startup or industry will take years to reach!
Challenges with a new technology
1. Reliability – The stack is relatively new on the market, It has not been validated with a lot of applications, there are might be one or two major supporters but that doesn’t mean that it will fit in your use case. Often the author slacks off from the project and the stack are left in a buggy state, which might not sound like a problem now, but could lead to serious issues in future.
2. Immaturity – Often new libraries have a lot of bugs, which might be blocking for a couple of things we want. You can patch those themselves but then upgrade the library becomes a pain. They are frequent releases on libraries, which means you have to keep upgrading your library from time to time. And every upgrade is very costly as you have to do a full testing. You can choose to skip updates but then there are concerns around security.
3. Debugging – We all rely on StackOverflow! Since the stack is new and there are not a lot of developers using it. It generally becomes hard to debug and build solutions around it. Many times a developer would end up investing in understanding the core working of the library because of this.
4. Pacing up with the team – Pacing up your team might become tedious. If you are working in large teams then it might just become too hard to bring everyone on the same page. The point is that it might be easy for one or two people in your team to pick the new thing, but that might be not the case all the time. Sometimes hiring becomes painful because it’s so hard to find people familiar with that new tech. Finding an experienced developer is a big big challenge!
These are the 4 major things which come on top of my mind, but there are many more reasons. Building a quality application is not just about choosing the right technology. But it is majorly about implementing it right. There are hundred of ways to implement anything these days. You should always choose wisely!