Mar 28 2009

Migration or Reengineering – A Choice to Make

In today’s world where technology growing so fast, and it is difficult to for most organizations to keep up with the pace it is changing. Also there are few factors like changes in business demands or technology challenges either to improve operational efficiency or to manage risk of technological growth creates a need for migration/reengineering of applications in enterprises. But it’s not a easy decision whether to proceed to a reengineering or to a migration project of an application developed with Vb 6.0  into a .NET architecture.

 

In order to decide which way to follow in order to execute the project of porting the existing Vb 6.0 application into the .NET architecture, the following elements appear to be of critical importance: 

 

Structure and Cleanliness of existing Vb6.0 application code.

The less structured and the less clean is the present code base, the higher the cost of migration, and the more effective the reengineering effort would be, because unstructured code will seriously increase the need of manual intervention for the migration . Moreover, unstructured code is unlikely to easily translate into the application architecture generated by the migration tool. This in turn may impact product stability, performance and maintainability.

 

Gap between the existing solution and present functional requirement of the users/customer (business logic).

If the gap is bigger, the higher will the migration effort be and the more effective the reengineering effort would prove. Two main categories are to be considered: functional corrections (satisfaction of the tool regarding its functionality) and functional improvements (closing the gap between present functional situation and the required one).

 

Need for subsequent evolution and maintenance.

The more important this need, the more advantageous will be an initial reengineering effort. Therefore this evolution and maintenance aspect is transcendent to all the previous criteria of: existing code structure and cleanliness (technical aspect), AND closeness of existing application to present and whished functional requests of users (functional aspect).

 

Availability and completeness of the existing user documentation in relation to the functional scope of the application.

If the current documentation is not complete enough, implementing a reengineering approach will be contingent on the availability of functionally knowledgeable resources, to contribute to the reengineering effort during the initial phase of extracting the product specification in an appropriate format for analysis.

 

Code size of the application.

The larger the application the more it may become interesting to use a migration tool. Conversely the smaller the size the faster it can be reengineered, and the fixed high cost of the migration tool would need an equivalent amount of work to be realized in order to cover it.

 

Skill development for the existing workforce.

A reengineering effort is often the opportunity to involve the people that are currently in charge of maintenance and evolution of the existing Vb 6.0 code base, henceforth seamlessly but effectively cross train them to .NET technologies, and permitting them to directly achieve advanced mastery of their new platform. 

 

As in current economy, technology budgets are tight and no one wants to take risks so beside the factors mentioned above Budget and timeframe are also two key elements which plays an important role in making decision -  Migration or Reengineering.

LEAVE A COMMENT

Subscribe Form

Subscribe to Blog