Agile Evolution Towards The Continuous Improvement of Legacy Software.

Dave Thomas · The Journal of Object Technology · 2006

The vast majority of improvements in software development tools and techniques focus on the development of new applications or components for greenfield projects.Unfortunately, this often means that organizations with substantial assets developed using older, once popular and accepted technologies and methods cannot easily migrate to new applications or components.Much has been written about using Agile development in the context of greenfield development; however, software experts increasingly see that Agile practices are well suited to software evolution.This isn't completely surprising since Agile methods stress the importance of people, incremental development, risk reduction, and continuous testing -factors which all contribute to effective software evolution. SUCCESSFUL SOFTWARE ALWAYS LEAVES A LEGACY!It is important to note that so-called Legacy software is at the heart of almost every major product and commercial enterprise.Each successful product produces a major legacy!Each successful technology produces a major legacy!Even major software vendors have difficulty hiring developers to work on their massive C++ code bases which were state of the art only a decade before.Java, now past the age of 10, already has a legacy of applications and products.Furthermore, frequent changes in Java/C# frameworks and languages create legacy code in shorter periods of time as what was hot becomes orphaned legacy code.Yet most of our industry is focused on the creation of new software, often using new technologies, with little regard for the critical need to improve and enhance existing software, which accounts for 70% of software development.

Read the paper · More papers on PaperTik