Project Practitioners > Keeping the Band Aid Affixed

Keeping the Band Aid Affixed

By Ann Drinkwater

In a perfect world we would all work on new projects, new technologies and everything would fall into place perfectly. Unfortunately this is usually never the case, at least the latter. When working with technologies that are nearing the end of their useful life or when enhancing and supporting systems that have been in operation, there can be many unknowns and consequently high levels of risk. In times of reduced budgets and heightened cost control the decision is often made to maintain existing systems, despite IT's plea to redesign and upgrade or risk system and operational failure.

Assuming there isn't an option to replace, redesign, upgrade or alter to a more ideal state, I have some areas that should be carefully reviewed before taking on a legacy enhancement project, to help minimize risk, cost and other obstacles.

  • Analysis – If an application is established, we may have a tendency to quickly jump in and start modifying. Cowboy coding is not effective whether it is an existing system or a new system. Proper analysis and forethought must be exercised. Just as projects are unique, the level of analysis needed will vary by project. Use cases and work flow scenarios are useful to ensure all logic, potential gaps in logic and dependencies are identified before coding begins.
  • Documentation – Often times systems that have been in place for some time and progressively enhanced do not have updated documentation or the details needed to make informed enhancement decisions. When documentation does not exist or is grossly lacking, it is imperative to perform in-depth analysis, diagrams and other design techniques to understand all structures and dependencies. As you work on various areas of a legacy application, try and create the associated documentation. I do not believe in documenting just for the sake of documenting, but as part of your new enhancement project, and to ensure what you build is sound and error free, you can begin to form a document repository.
  • Support – Legacy applications can be difficult to support. Part of this can be because they are often not well documented, but they are also often built over the course of time, using a variety of coding methods by a variety of developers. All of these variables add complexity and risk and should be carefully considered.
  • Structural Integrity – Once you have conducted the necessary analysis and understand completely how to make the changes, you should carefully review the underlying structure. Uncoordinated and unplanned design changes over the years can make a system fragile and brittle. Understanding the impact of the features you are adding today and projecting how future, undefined features will affect structure is necessary.
  • Capacity Planning – Just because the server infrastructure is in place doesn’t mean it will be adequate for the expected traffic, web and database utilization and processing that is needed by the new feature set being designed. Capacity planning can be involved but is an important part of organizational readiness and system availability.
  • Resource Availability – Before engaging in a legacy project, you should ensure you have the necessary skills readily available. In addition to being available from other work assignments, be careful not to continuously assign the same resource to legacy projects. This can often lead to reduced morale, burnout and stagnant growth and development.
  • Time Considerations – The lack of documentation, internal domain knowledge and available resources to support older systems and technologies will undoubtedly require additional time. These factors should be built into your scope statement, schedule and cost estimate.

While the above may help in the day to day, immediate management of legacy applications, if there is a strong need and case for redesign or replacement I highly recommend continuous education, quantification and reiteration of need. We have a vested interest in making the organization understand how all organizational components are affected by maintaining a legacy application.

Related Links
Use cases and context diagrams can help the team document and communicate with non-technical staff about application design. Make sure you've covered all the documentation bases ahead of time with our User Documentation Plan. When you're ready for a new system, consider using agile techniques to migrate the legacy system. (It can be done!)

Not all comments are posted. Posted comments are subject to editing for clarity and length.

The comments to this entry are closed.

©Copyright 2000-2017 Emprend, Inc. All Rights Reserved.
About us   Site Map   View current sponsorship opportunities (PDF)
Contact us for more information or e-mail
Terms of Service and Privacy Policy

Stay Connected
Get our latest content delivered to your inbox, every other week. New case studies, articles, templates, online courses, and more. Check out our Newsletter Archive for past issues. Sign Up Now

Follow Us!
Linked In Facebook Twitter RSS Feeds

Got a Question?
Drop us an email or call us toll free:
7am-5pm Pacific
Monday - Friday
We'd love to talk to you.

Learn more about ProjectConnections and who writes our content. Want to learn more? Compare our membership levels.