Training: Tweet"Maintaining and Evolving Legacy Systems"
Maintaining and evolving legacy systems is challenging. On the one hand, their architectures are often aged or eroded; their original architecture vision hardly visible. Unguided or ad hoc extensions and modifications introduced implicit dependencies and undesired side effects. On the other hand, many legacy systems are precious business assets: they contribute significantly to a software product portfolio or serve an important business case. A simple exchange and rewrite of these legacy systems is thus not possible -- it would endanger the business made with them. There is something to loose.
In this tutorial, therefore, we will present and discuss concrete methods and techniques that allow software projects to safely and thoughtfully maintain and evolve legacy systems: from process and change management aspects; over concrete design principles and practices; to quality assurance methods. Concrete examples from commercial and industrial software development demonstrate the methods and techniques in real-world practice. You will learn how to utilize the methods and practices to drive and guide the maintenance and evolution of legacy systems, while being in absolute control over their architecture. To keep and strengthen their precious business value.
Keywords: Software Architecture, Legacy Systems, Software Evolution
Target Audience: Software Architects, Senior Software Developers, Software Project Managers
Teaching Method: Mixture of presentation, case studies, and explicit interaction with the audience to get them involved and share their experiences