How much does a VB to .NET migration costs?

15. December 2008 12:42 by enassar in General  //  Tags:   //   Comments (0)

If you are familiar with VB to .NET migration projects, you certainly know by now that this is not a trivial task. And with the state of the economy today, saving up on scarce, valuable resources is a must. That’s when an automated software migration solution proves to be the most viable approach, constituting the most cost-effective, non-disruptive method of application renewal.


I recently read an excellent article in ASP.NET PRO magazine, where Alvin Bruney offered some insight on the challenges of migrating VB6 applications, providing some estimation on the overall effort. For starters, he accurately notes how a large part of the cost in these projects is related to the QA process, something we’ve definitely seen in large, complex enterprise application upgrades, as it usually represents around 50% of the total time.


He then provides some numbers regarding the cost for VB to .NET migration projects: $1/LOC for simple applications, $3-$7/LOC for large enterprise systems, and $10-$15/LOC for the more complex ones. However, this varies a lot from one project to another, depending not only on the complexity of the application and target requirements, but also on the quality of the tools and the skills available for the migration. For example, due to a proven methodology, consultants with broad experience in VB to .NET migration projects and powerful conversion tools, a turn-key solution delivered by ArtinSoft, taking care of the complete migration up to functional equivalence in the target language, is generally between $1-$2 per line of source code. This includes the Supplier Testing activities, though not the User Acceptance Testing, where the customer finally certifies functional equivalence through predefined test cases. And of course there are other post-migration costs involved, like those related to the new application’s deployment and enhancement, but I think it is safe to say that the cost per line of code for the migration itself, on a turn-key basis, is rarely higher than $3.


Moreover, when time to market is a critical factor, this automated migration solution just can’t be beat. For example, a recent customer estimated that rewriting from scratch his highly complex, business critical, 100,000+ LOC VB6 application would take him up to 2.5 years, while using ArtinSoft’s comprehensive solution allowed him to release the C# version in less than 6 months. And using only about 1/17th of the resources required for a rewrite. Expect the case study soon, but trust me: we’re not talking n00bies here ;-) And another example I mentioned on my last post described how a recent customer cut down the project time in 1 year, representing savings of about $160,000.


On the other hand, calculating how much it will cost for someone who licenses our Visual Basic Upgrade Companion to perform the migration in-house is more complicated, since it depends greatly on his dexterity. But just to provide another example of how much our solution reduces the effort, another customer with a 550,000 LOC application recently told us he managed to save 14 man/months by using ArtinSoft’s tool internally, instead of the Upgrade Wizard that ships with Microsoft’s Visual Studio.


In any case, as Bruney wrote on the aforementioned article “automation is the key to containing cost”. But watch out for conversion tools that will only cause you to waste your time and money. Some of our customers have tried some of these options in parallel before choosing our tool, but a few were lured instantly by the deceivingly low prices. Most of the latter have come to us in the end, frustrated with the poor results.


By the way, the article says that “the migration tool takes you to VB.NET only”. I assume the author is talking about the Upgrade Wizard, since even a couple of the tools I referred to above convert to C#, but the Visual Basic Upgrade Companion is the only one that allows migrating effectively to both VB.NET AND C#. Finally, if you have settled for C# as the target language, I should warn you again about the infamous double-jump approach, that is, converting from VB6 to VB.NET and then to C# (the author mentions this option, though he doesn’t exactly recommends it). We’ve seen a couple of customers who tried that and found it really problematic, to say the least. In fact, they finally decided it was a whole lot easier starting all over from VB6 and using our tool to move to C# directly.