Software Development: Intellectual Property and Code Ownership
Visual Basic 6 is still used in a huge array of applications today. In particular, a large number of administration systems were written with a combination of a VB6 Front-End and a Microsoft Access or SQL Server database Back-End.
Using Visual Basic 6 as the Front-End was a good idea at the time. But Visual Basic 6, released in 1988, cannot be purchased and extended support stopped in 2008. The Visual Basic 6 software cannot be installed on the latest Windows Operating Systems. The number of willing programmers with the necessary skills and software resources to maintain an obsolete VB6 is rapidly diminishing. And the rates charged can be high.
Any company still using a VB6 Front-End system is in danger of an unsupportable system falling apart at the seams. Making "just a simple change" to the system becomes a major operation – and expensive, if at all possible to do.
Supporting antiquated software is a "no win" situation. And changes are always needed – with new security restrictions, with the advent of newer operating systems, with new administrative functionality being required.
VB6 Code ownership and copyright
The question of code ownership and copyright is being asked with increasing frequency. The problem of Code ownership of the VB6 Front-End can be a real threat – where a company is highly dependent on its administration system.
The usual rule "if you pay for it, you own it" does not apply with program code – ownership and copyright usually reside with the Visual Basic programmer who created the software.
Ownership: Obtaining the VB6 code
There is need for total control by a company of the development process. But the code might simply not be available – the original programmer may have moved on to better and greener pastures. Frequently, obtaining the code leaves a company open to extortion.
But just possessing the VB6 code will not solve the ongoing development problem.
Even if the Visual Basic 6 code is available – will it run? Usually a large number of third-party OCXs (Custom controls) and DLLs (Dynamic-link libraries) have been incorporated. And the installation software and licences for these add-ins are hard to come by. Most of the VB6 third-party software companies are now defunct, or have been taken over by other companies.
And, due to the primitive nature of VB6, the Front-End system will have incorporated many OCXs, DLLS and APIs (application programming interfaces) – for system information, reporting, data grids, resizing, calendar controls, buttons, tool-tips, drop-downs, etc, etc.
Then, in trying to set up the programming environment, difficulties may include conflicts between DLL and OCX versions and registration problems – commonly known as "DLL hell".
Code Ownership must be determined from the outset
This may seem like 20/20 hindsight, but for future reference:
When a developer is hired to create an administrative system, the company's ownership of the code should be agreed from the start.
To enforce this, after each new release of the software, the code should be deposited onto a PC within the company. And to make assurance doubly sure – it must be demonstrated that the code compiles, and that it can be deployed to the users.