Modernizing your software product
Tags : Product Modernization, Migration, Rapid ROI, Advance Technologies, .NET, Imfinity, ISV, Business Value
Businesses always look to squeeze the last dollar out of their IT investments before considering the purchase of a new solution or the migration of the existing one to leverage new benefits provided by innovations in technology.
Over the past 18 months, Imfinity has been helping its ISV customers to modernize their software products by adopting newer technology platforms. We have been at the forefront of the question that every ISV or business would ask - what are the benefits of migration and what kind of ROI can I achieve?
Before I answer that question, there are few other issues I would like to explain with this article. This article will:
1. Firstly provide a guideline to help you to answer an important question: Can we simply upgrade the application to the newer platform? Or opt for a reuse, rewrite or a complete replacement? (Typically you would have a mix of all of them! and hence the term “modernizing” your software product.)
2. Explain the benefits of migrating to .NET - the platform of choice for Imfinity’s customers and many other ISV’s.
3. Finally, explain how to achieve a rapid ROI.
The subsequent article to this one which will be released in our next issue of ISV Lounge, will cover a migration roadmap, the strategies you can adopt and various methods of successfully migrating an application.
“Upgrade, Reuse, Re-write or Replace?”
A big part of achieving a rapid ROI is to be able to assess which parts of your application need to be migrated, reused, replaced or re-written.
The graph below which depicts application quality vs business value, will help you in coming up with the right mix.
Upgrade: If the application meets your current business needs and the quality is good, then chances are that the application can be effectively modernized to continue to meet the needs of the business in the future. This is of course the best situation to be in and all you need to do is to upgrade the solution as and when new base platforms are released – to take advantage of the inherent benefits of the newer platform.
Re-use: A lot of custom code, well written and documented is a good candidate for reusing in the new solution.
Rewrite: Any module with low quality and which primarily provides standard business value as compared to a module which is specific to the processes of your domain is a good candidate to re-write, as part of the modernization process. This also gives you the opportunity to write the code in a way that fully exploits the base level innovation provided by the new platform.
Replace: Modules which meet your custom need but are of low application quality are good candidates for replacement – either by purchasing an off the shelf package that meets your need or by outsourcing the development to a solution provider (which is of higher probability due to the custom needs)
“Why choose a platform like .NET?”
The easiest way for you to evaluate .NET is to find out the main reasons why consumers of IT, solution providers and Imfinity’s customers which are ISV’s choose .NET. Here it is:
Time to market – This is the number one reason for companies to adopt .NET – For a ground up software development project or enhancement to a current one, .NET can be 2-3 times faster to roll out than using an older Microsoft based or competing platform.
Web services – The need for a platform that can easily create, expose and consume web services is the second biggest reason for companies to adopt .NET. Web services provide the business benefits of reuse, ease of integration and greater agility for IT to respond to business changes and Imfinity has helped many of its ISV customers to modernize their client server application to a web services driven one. The impact of web services and its benefits will be the topic for a future article.
Performance – The third most important reason given by companies is that of improved performance – The Nile benchmark test for web applications shows a 3 times improvement in performance of applications migrated from classic ASP to .NET.
Device support – The ability to easily develop, deploy and manage applications on the mobile platform is also a major reason for companies today, with the increased need to have data on the move. .NET provides fantastic features for the mobile platform - a scaled down version of the framework for Pocket PC, its familiar drag and drop environment for development and multiple emulators for testing, making it a perfect choice for mobile development.
Ease of deployment –Yes! No more DLL Hell. .NET uses a different approach compared to the COM world which used the windows registry to register and locate a component, providing a much improved and very easy to administer XCopy deployment.
Other reasons – Globalization/Multi language support (a must for customers in this part of the world where you need to support a minimum of both English and Chinese interfaces), improved security, threading, reporting and loads of other neat features provide an irresistible case for .NET
“Achieving a rapid ROI on your modernization investments”
You are sold on .NET, you have figured out what parts to modernize and all that’s left to do is to get the budget approved from the team. Allow me to share with you how to get buy in – with the help of this simple diagram.

A typical migration, or modernization curve in this case, looks like the one in orange – the first 6 weeks is spent in purchasing and installing the new platform, followed by the bulk of the costs which goes into training and implementation.
A typical migration to .NET, depending on the goals it’s trying to achieve takes 6 months. ROI is achieved when the productivity and maintenance gains of the solution kicks in.
Here is how you can cut the time to break even on your investment by half (the blue line)
1.Train Smart: When picking a training course make sure the trainer is experienced and check to see if they can focus sessions on the type of development your company does. .NET is a multi-headed amorphous beast, and .NET training focused on Web services and ASP.NET isn’t going to do your team much good if they’re building standalone applications.
2.Ride the learning curve: .NET development technologies can have a steep learning curve, which varies significantly depending on your developers’ programming experience. VB developers have one of the steepest curves because they need to adapt to changes in syntax and adopt object-oriented (OO) methodology. C++ developers can keep developing legacy code, but they will also adapt easily to managed C++ or C#. Web developers will need to adjust to OO programming if they want to start taking advantage of ASP.NET classes for Web Forms and Web services.
3.Learn through doing: Like any other task, practical is much more enriching than theory. Enable your team to learn .NET from an experienced vendor by working on a project: You could set up a key person/lead architect/product manager to learn from the vendor and set up internal training to share knowledge gained from the project. Or even better, opt for a co-development model with the vendor such that the vendor can manage the complex migration issues and form the team lead, with members of your team developing certain modules.
4.Use a migration expert: Modernizing/migrating an application can honestly be quite difficult. For example coming up with a suitable implementation plan that can achieve a balance between re-engineering and re-usability is a business driver for most migrations due to budgetary constraints. This comes with experience of having done various migration projects. Moreover the technical challenges and limitations that come up when adopting a new platform can be quite daunting and can cause higher over-runs than traditional software development. Hence it’s important to have an expert who can help with designing an implementation strategy and mitigate risks to keep within budget.
“Rise to the occasion”
It’s time to embrace .NET - 4 years of maturity, a 60% adoption rate and a newly released version of Visual Studio and SQL Server 2005 that is set to take the development community by storm. Whatever platform you are on today, I urge you to sit down and take a hard look at the product and come up with a modernization plan - The benefits will far out weigh the negatives.
Resources
Designing an Application Migration Strategy for Visual Basic 6.0 to Visual Basic .NET.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/appmigrationstrat.asp



