Abstract: Y2K – the Year 2000 software update challenge – highlighted for
the general population what has been a recurrent issue in the software
development community. That problem is the requirement to maintain and update
legacy software long after the original programmers have gone, taking with them
perhaps the only concrete knowledge of how the software actually works. Legacy
code is older code that is still in use [28]. This research investigated
how programmers understand legacy code in order to maintain and improve it. The
findings were used to develop a theoretical model on how programmers understand
legacy code, integrating difficulties and methods, including the need to
understand why software was written in a particular style, format, or
functional structure. The primary conclusions from this research are that
knowledge sharing and collaborative structures in the enterprise could be
significant factors for programmers and that even poor documentation is
useful.