Building reusable Assets from existing applications

Although starting from scratch is simpler when building reusable assets, reality is that you are probably maintaining one or more legacy applications. Refactoring existing legacy assets has several benefits for the team. Here are a few:

  • The refactoring effort will make you more knowledgeable about what you already own
  • Will help you utilize these assets for making your systematic reuse strategy successful
  • Saves valuable time and effort with upfront domain analysis (of course this is assuming what you own is relevant to your present domain)
  • Make your legacy system less intimidating and more transparent.
  • Provides the opportunity to iteratively make the legacy assets consistent with your new code

If you cannot readily identify which legacy module or process is reusable you have two places to get help – your customer and your internal subject matter experts. Your customer can help you with clarifying the role of a legacy process. Likewise, your team probably has members who understand the legacy system and have deep knowledge of the domain. Both of them can guide your refactoring efforts.

The act of examining a legacy module or process also has several benefits. You can understand the asset’s place in the overall system. The existing quality of documentation around this asset and usage patterns can be understood as well. Now, you can make an informed opinion of the current state of what you have and how you want to change it. Before making any changes though it helps to consider the next few moves ahead of you. Ask a few questions:

  1. Is the capability only available in the legacy application and not in any other system that you active maintain and develop?
  2. Is it available only to a particular user group, channel, or geography?
  3. Is the capability critical to your business sponsor or customer? If so, are they happy with the existing behavior?
  4. How is the capability consumed currently? Is it invoked as a service or via a batch process?
  5. How decoupled is the legacy capability from other modules in the application?

These questions will help you get clarity on the role of the legacy asset, its place in the overall application, and a high level sense of the effort involved in refactoring it to suit your requirements

Advertisements

2 Responses to Building reusable Assets from existing applications

  1. Naijaman says:

    Vijay! Where’ve you been man? Working on something similar right now. Integrating a legacy in-house business application with a new accounting system that only has a windows SDK for integration. (Imagine that!). So trying to make it really interesting and hopefully reusable for others. Let’s catch up offline. – Lanre.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: