Technology is fast-paced & keeping up your application stack with latest technology stack available is one of the common problems architects face in today’s world. At one end, vendors keep on pushing their clients to upgrade to latest version or latest patch to make their life easier. On the other hand, existing technology stack becomes outdated & lucrative new options baffles technology people how to go about it!!
There is no black and white answer to this problem, but these key factors help in making the right decision:
Unless you understand the context, it does not make sense to make any sensible suggestion at all to any application or enterprise architecture. For example, for a travel website, there is constant competition with other websites to keep experimenting new features, which in turn needs cutting-edge technology or something latest in the market (like mashups). But it might not be a need for stock-trading application.
So, it is never “one-solution-fits-all” approach that works in technology!!
- Problem Area:
Regular architecture reviews of your application might reveal certain problem areas (e.g. caching system needs to move to enterprise caching) or there is a specific business problem to solve, which needs new technology (e.g. using Amazon S3 for storage).
So, 2nd point is to pinpoint strong problem area, which demands change in technology (upgrade or replacement).
- Business Needs:
Thirdly & most importantly is business need as business stakeholders will be paying for extra cost & hence there has to be very strong business benefits to be realized (e.g. integration with third-party using ESB instead of hub-spoke model). Unless business gets convinced that they will get strategic benefit out of it, it is not possible to sell any technology to them.
So, 3rd point is to discover business needs which backs up technology.
- Technology Needs:
Last but not least, there are technology needs as well (e.g. your Oracle 10.0 will be out of support soon & you need to upgrade to Oracle 11g to get customer support), which can also be a key driver. Also, certain business problems (like lower TCO) can only be solved by implementing strategic major technology solution (like top-down/bottom-up SOA stack).
So, 4th point is to discover technical needs in your software or application stack.
needs create technology not technology create needs & hence all the above mentioned points make sense whenever you are going to make any decision on applying new cutting-edge technology. Also, keep in mind that proven technology works best & experimentation might be risky for business continuity.
But make sure that innovation (which specially need new technology) does not get killed which makes you one-step ahead in this competitive world!!