Affiliations: Department of Engineering Management and Systems
Engineering, School of Engineering and Applied Science, The George Washington
University, 1776 G St. NW #101, Washington, DC 20052, USA. Tel.: +1 703 707
0487; E-mail: [email protected], [email protected] | Assistant Professor of Engineering Management and
Systems Engineering, Department of Engineering Management and Systems
Engineering, School of Engineering and Applied Science, The George Washington
University, 1776 G St. NW #101, Washington, DC 20052, USA. Tel.: +1 202 994
4820; E-mail: [email protected] | Professor of Engineering Management and Systems
Engineering, Department of Engineering Management and Systems Engineering,
School of Engineering and Applied Science, The George Washington University,
1776 G St., NW #101, Washington, DC 20052, USA. Tel.: +1 202 994 5659;
E-mail: [email protected]
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.