7

Some history:For the last six months I have been employed at a small firm with just three programmers, my employer among them. The firm maintains two programs written in VB6. I am asssigned as the lead programmer to one of these. In the last six months I did some maintenance and bug hunting, but created some new functionality too. I had an interview last december, which was favorable, and my contract was prolonged. I am very happy with this course of events as I only obtained a .Net certification a year ago and have no other qualifications (in the field of coding, that is).

It is my strong opinion that, while migration of the existing program to .Net is advisable, it is paramount that from now on the new functionality should be written in VB.Net class libraries. After some study I found out how simple it is to integrate .Net class libraries into the VB6 development environment and how easy it is to add their functionality to existing installations by using application manifests.

So, I have decided that now is the moment to roll up my sleeves and try and convince my employer that he should let me develop new code in VB.Net, using VB6 for maintenance only. We get along quite well, but I think I am going to need all the ammunition I can get to convince him. Any arguments, preferably backed up up ones, are very welcome, even arguments to dissuade me ;-)

5
  • 13
    If you can't come up with valid reasons to move to a new platform yourself then how do you even know it is the right thing to do?
    – Pemdas
    Commented Jan 19, 2011 at 17:54
  • 12
    Well, how about the fact that Microsoft no longer supports VB6 or makes tools for it? Commented Jan 19, 2011 at 18:07
  • 3
    Agree with Frustrated... vb6 is a dead horse, stop flogging it.
    – red-dirt
    Commented Jan 19, 2011 at 18:35
  • Actually, VB6 will not be completely dead for another 2 years: the runtime will be supported until Server 2008 r2's end of life. There are tons of people using it, only that most of them are probably not around on StackOverflow. My boss is one of them, too. His largest concern is that .NET code is easy to decompile. Commented Jan 19, 2011 at 20:21
  • VB6 is not the runtime. He's talking about writing and debugging code with an unsupported product. Commented Jan 30, 2011 at 2:39

9 Answers 9

21

VB6 apps will not work when Win8 (or whatever it gets called) comes out. The company I just left got burned when Vista came out and the 16-bit apps stopped working because the VBXs could not be made to run on Vista. Microsoft decided to take out the native libraries that handle accessing Access databases. They can easily do that with the VB6 runtime library.

As a form of risk management, your boss should be considering updating the technology. Slowly moving piece-by-piece to .NET would make things much less stressful if MS decides to kill off the VB6 runtime. When new operating systems are in beta (usually called CTP), I strongly recommend getting a copy to install on a virtual to test your existing software. Vista was a shock to us, and that company didn't have a replacement for the 16-bit code for about a year after Vista came out - and we only knew it was a problem when customers starting calling to say it didn't work.

edit: while watching a number of webcasts on Microsoft Events, and in particular this one, I've come across the statement by more than one presenter that the VB6 runtimes will not be distributed in future operating systems.

1
  • +1 because Vista was a shock to everyone ;-) Good answer overall.
    – Gary
    Commented Jan 19, 2011 at 18:28
15

Why don't you code something up in VB.NET and show your employer what you mean in terms of actual code, rather than verbal explanations? Could be way more effective.

4
  • +1 Because that's what I'd do too but I'm not convinced this is the most effective way of convincing management.
    – biziclop
    Commented Jan 19, 2011 at 18:28
  • 4
    @Gary - +1 on your comment for making me learn a new English word (pithy). :D
    – Jas
    Commented Jan 19, 2011 at 18:57
  • 1
    I disagree somewhat. This might be nice if you talked about it with your boss first, or if you show him one of your own projects if he's interested. But only showing him VB.NET code will not persuade anyone. That would be like, "You use Java? Look at my Ruby code here. Don't you think Ruby will solve ALL your problems much better?" This just does not work. Commented Jan 19, 2011 at 20:26
  • 1
    +1 It is easier to ask for forgiveness than permission. Commented Jan 20, 2011 at 4:00
14

You have to prove him his ROI will be affected positively by the migration

If he is like most managers:

  • he probably invested lot of money in those software and he may think a migration will affect negatively the ROI
  • he won't care that the migration will affect positively your work. He will focus on him, him and again him (especially if you are talking about changing his code for your comfort)
  • he will try to determine he could be blamed by accepting your solution
  • he will not trust you, he will trust external people
  • he will not be comfortable if he doesn't understand everything you will say
  • he will fear loosing the control on his thing

So here are the advices:

  • Focus on ROI. Calculate with high accuracy the gain in time/money
  • Don't talk about you, but him only
  • Prove him he won't be blamed in case of failure
  • Come back with real facts. Articles written by trusted professionals. Answers on P.SE will not be enough
  • Explain the benefits with simple words. Avoid any technical jargon related to the new technology

Good luck.

8
  • +1 for managers only caring about ROI when it comes to making change
    – Gary
    Commented Jan 19, 2011 at 18:30
  • The manager is at the same time one of the programmers (mentioned in the question text), which is why I think the ROI lingo won't work here...
    – Jas
    Commented Jan 19, 2011 at 19:06
  • 2
    @Jas: He is the employer, he is the payer, he will consider ROI. Don't you think? IMHO, ROI is still strongly valid, however I must adapt a couple of points to reflect your suggestion.
    – user2567
    Commented Jan 19, 2011 at 19:10
  • @Pierre - Certainly he will consider ROI, but being a programmer he won't look at it from the standard MBA-type angle of view. As a matter of fact, there is a far clearer and more obvious ROI overview from a technical point of view : The simpler the technology to use, the less work is required, therefore more bang for the buck, or ROI if you like.
    – Jas
    Commented Jan 19, 2011 at 19:45
  • @Jas: I think a boss+programmer not being able to understand the basics or ROI is a cliché.
    – user2567
    Commented Jan 19, 2011 at 21:20
3

Another good argument for .Net is the Support. There is a lot of support out there for .Net, but not as much VB6. Even Microsoft doesn't support VB6 anymore.

A good example argument is Windows vs Linux. Linux is cheaper, however Microsoft has a huge support network which is why many companies will choose Windows over Linux.

3

Try slipping the VB6 installation cd in a Windows 7 64-bit system, and show the presented dialogue to the boss.

It basically says that this software is known not to work well with Windows, and it not recommended to be used. If that is not a strong indication that VB6 should not be used for new development, I do not know what would be.

2

While I totally agree that using .NET is a good thing, you did ask for both positive and negative reasons. You should be aware of the negative, if only because your boss may confront you with some of them and you need to be prepared.

The biggest negative I can think of is what if you are the only one there who learns .NET and then something happens to you. Right now everyone knows VB 6 and can maintain each others programs. (Perhaps you need to suggest that you could do a small "test" project in VB.Net and help everyone understand it and become comfortable with VB.Net. Hopefully that way everyone will see the benefits and back you).

2

Well, I won the argument. I think I convinced the programmer more than the moneymaker in him by showing both a piece of .Net code that was called from VB6, how easy it was to code against this .dll in VB6 and finally by sending him the link to this article. That convinced him that we should gradually migrate towards .Net by using .Net .dll's

1

VB6's native language is COM. .NET Libraries can be exposed as COM objects. You've already made the decision to move to .NET Writing new functionality in .NET will allow you get a toehold when you make the effort to move the rest of the app over.

-1

You summed it up your self "I think I am going to need all the ammunition" as you prepare to convince your employer. Ever wondered why good answers which are short don't get as many up votes on this forum. :-) People like detail so make sure you prepare well before you start the battle. IMO it should be easy to convince if your employer understands the technicalities of things.

3
  • 2
    had to -1 this answer, because it does not tell anything new or important that the OP did not already know.
    – Jas
    Commented Jan 19, 2011 at 18:13
  • Bad answer as Jas said. And it's never easy! Commented Jan 19, 2011 at 20:33
  • Wasn't really an answer was just confirming to him that he was on the right path. Don't mind the down vote :-)
    – Geek
    Commented Jan 20, 2011 at 11:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.