As an industry, we often use the word legacy as a pejorative to describe an older system in need of replacement. However, legacy really means an existing system that lives on because it continues to provide business value and the cost of replacement is unreasonable. Managers and software developers are faced with the need to support and maintain legacy systems; but no system is ever completely frozen in time. Changes to business and technical requirements, driven by both internal and external forces, push us to evolve or adapt software over time.