Lauder, Anthony
(2001)
A Productive Response to Legacy Systems.
PhD thesis, University of Kent, Canterbury.
Abstract
Requirements change. The requirements of a legacy information system change, often
in unanticipated ways, and at a more rapid pace than the rate at which the information
system itself can be evolved to support them. The capabilities of a legacy system
progressively fall further and further behind their evolving requirements, in a degrading
process termed petrification. As systems petrify, they deliver diminishing business
value, hamper business effectiveness, and drain organisational resources.
To address legacy systems, the first challenge is to understand how to shed their
resistance to tracking requirements change. The second challenge is to ensure that a
newly adaptable system never again petrifies into a change resistant legacy system. This
thesis addresses both challenges.
The approach outlined herein is underpinned by an agile migration process - termed
Productive Migration - that homes in upon the specific causes of petrification within
each particular legacy system and provides guidance upon how to address them. That
guidance comes in part from a personalised catalogue of petrifying patterns, which
capture recurring themes underlying petrification. These steer us to the problems
actually present in a given legacy system, and lead us to suitable antidote productive
patterns via which we can deal with those problems one by one.
To prevent newly adaptable systems from again degrading into legacy systems, we
appeal to a follow-on process, termed Productive Evolution, which embraces and keeps
pace with change rather than resisting and falling behind it. Productive Evolution
teaches us to be vigilant against signs of system petrification and helps us to nip them in
the bud. The aim is to nurture systems that remain supportive of the business, that are
adaptable in step with ongoing requirements change, and that continue to retain their
value as significant business assets.
- Depositors only (login required):