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:
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:
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:
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.
In summary, 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!!