When it comes to defining what 'legacy system' actually means, the
answers can be diverse and far-ranging. For example, if you do a
Google Search with the define: feature, you get the following:
These definitions range from the disparaging to the emotional. A
couple of good ones worth pointing out are:
"This term is not defined precisely and has an emotional component.
Usually, it refers to the fact that systems are often developed over a
long period of time in an incremental manner without proper
documentation so that it becomes increasingly difficult to maintain
them. For example, as the number of functions added to the system
increases, the difficulty of adding new functions increases as well
since each new function has to be evaluated with regard to its impact
on the other functions already included in the system. Also, adapting
the system to changing business environments can generally only be
done by incremental changes, i.e. by adding functionality rather than
by chaning the structure of the system. All these difficulties may
lead to a situation where a company's computer-based information
system is considered a burden rather than a support, i.e. a burden
inherited from past (myopic) decisions."
"Those systems in existence and either deployed or under development
at the start of a modernization program. All legacy systems will be
affected by modernization to a greater or lesser extent. Some systems
will become transition systems before they are retired. Other systems
will simply be retired as their functions are assumed by modernization
systems. Still others will be abandoned when they become obsolete.
[Treasury Enterprise Architecture Framework]"
It is important to note that a system is really only ever referred to
as 'legacy' when the users or owners of that system start to think
about replacing or upgrading it. So, if a company has a midsized
computing platform that is reaching the end of its planned life, and
they go ahead and install an off-the-shelf application onto that
platform, even the off-the-shelf application would be considered part
of a legacy system.
The key point is that legacy systems often represent functions and
capabilities that are vital to the operation of a business. Therefore,
any replacement system must either allow those functions or
capabilities to be migrated over, or should have a new function or
capability that completely replaces the one on the legacy system. If
the functions and capabilities are the result of undocumented or
unarchitected software development (either in-house or out-sourced),
then chances are it will be necessary to completely replace that
function rather than attempt to reverse-engineer it.
In the example you give about McCracken Strategy, while Strategy
itself is a fully-supported, architected solution from McCracken
Financial Software, the enhancements may make it a legacy system. This
is because, when McCracken releases the next version of Strategy, it
will be necessary for the in-house developers to re-engineer the
enhancements to ensure full compability with any changes that have
occurred in the core Strategy software. Therefore, before upgrading
the core Strategy software, it is necessary for the in-house
developers to review the existing enhancements; this makes them
legacy. If the enhancements have been not properly documented, then it
may even be necessary for the developers to completely re-develop them
for the new version of Strategy.
You also asked for links to information about McCracken and their
software. The best place to look for this is their corporate website,
McCracken Financial Software - Home
I hope this helps!
Google Answers Researcher