Summary
Agile techniques focus on small iterative steps in the development cycle, each step adding functionality to an initially simple code base. Yet, real-life projects must often operate in the context of vast amounts of legacy artifacts, including data. A recent article looks at working with legacy data in the context of agile development methods.
Advertisement
If you open a typical agile software development tutorial, you will often see a series of short steps, each step adding functionality to an initially very simple program. While such Zen-like approach can be calming to one's mind, many real-world projects must contend with a messy amalgamation of legacy artifacts, including legacy data.
In a recent java.net article, John Ferguson Smart discusses various strategies of dealing with legacy code in an agile process:
[...] In the real world, software development projects are rarely done in a vacuum. Your company or client will inevitably [...] have an existing IT system in place. It may be a CICS mainframe application still maintained at great expense by some large IT corporation. It may be a fully fledged ERP solution, or an in-house client-server application built with whatever technology happened to be the flavor of the month five or ten years ago. It may just be an Access database application designed by a canny user. But it will exist.
What are your strategies of dealing with legacy code?
I don't think that there can be one fixed strategy to deal with all the legacy code that is around. Some of the popular strategies are
1. Throw away the Legacy code. Develop a new application that has all the needed features of Legacy code. Slowly add features to this new application.
2. Database is common between the legacy code and new application code. So new features are added in the new application code. Slowly the reliance on legacy code is reduced.
3. Develop a mordern GUI client for legacy code. It sends messages to the legacy applications. When the time is right, we can switch from legacy code to new code, without the users coming to know.
Other alternatives may exist. But I have only seen the above ones in use. Vijay Nathani, www.geocities.com/vijay_nathani.