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 ;-)

Nicole
  • 28,111
  • 12
  • 95
  • 143
Dabblernl
  • 493
  • 4
  • 15
  • 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 Jan 19 '11 at 17:54
  • 12
    Well, how about the fact that Microsoft no longer supports VB6 or makes tools for it? – FrustratedWithFormsDesigner Jan 19 '11 at 18:07
  • 3
    Agree with Frustrated... vb6 is a dead horse, stop flogging it. – red-dirt Jan 19 '11 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. – Felix Dombek Jan 19 '11 at 20:21
  • VB6 is not the runtime. He's talking about _writing_ and _debugging_ code with an unsupported product. – John Saunders Jan 30 '11 at 02:39

9 Answers9

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.

Tangurena
  • 13,294
  • 4
  • 37
  • 65
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.

Jas
  • 6,254
  • 1
  • 31
  • 46
  • +1 Because that's what I'd do too but I'm not convinced this is the most effective way of convincing management. – biziclop Jan 19 '11 at 18:28
  • 4
    @Gary - +1 on your comment for making me learn a new English word (pithy). :D – Jas Jan 19 '11 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. – Felix Dombek Jan 19 '11 at 20:26
  • 1
    +1 It is easier to ask for forgiveness than permission. – realworldcoder Jan 20 '11 at 04: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.

  • +1 for managers only caring about ROI when it comes to making change – Gary Jan 19 '11 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 Jan 19 '11 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. –  Jan 19 '11 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 Jan 19 '11 at 19:45
  • @Jas: I think a boss+programmer not being able to understand the basics or ROI is a cliché. –  Jan 19 '11 at 21:20
  • I did not say he was unable to understand it, I said that coupled with his programming skills, he might get a better overview of how it leads to a better ROI (already being in the trenches himself). – Jas Jan 20 '11 at 08:08
  • I chose your route, this week we decide... – Dabblernl Jan 24 '11 at 10:59
  • ROI is the right approach, but the human factor (boss comfort/preference) tends to win out. A bad manager will put their technical skills or lack thereof ahead of the best choice. It is also worth noting that waiting until the risk is realized, especially if there will be some time to react, isn't bad. With a confirmed risk(e.g. doesn't work with Win8), getting significant resources for an important code base is much easier and likely to be larger than without which could mean faster, but done properly. – Jim Rush Jan 30 '11 at 15:15
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.

Rachel
  • 23,979
  • 16
  • 91
  • 159
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).

JonnyBoats
  • 1,783
  • 13
  • 11
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

Dabblernl
  • 493
  • 4
  • 15
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.

Michael Brown
  • 21,684
  • 3
  • 46
  • 83
-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.

Geek
  • 3,951
  • 1
  • 24
  • 29