I have had a couple of calls recently from clients who wanted alterations to their software but did not have the source code.  I thought I would write up a summary of the discussions with those clients.  I will attempt to keep this as non-technical as possible.

First off, I AM NOT A LAWYER AND THIS IS NOT LEGAL/COPYRIGHT ADVICE, this is just an overview of the general concepts.  You should contact a lawyer who specialises in computer law regarding your situation.

Why should you care about source code?

If you have not seen our infographic on software services then download it here.  At the bottom left you will see a question about source code.  This infographic identifies situations where you need to worry about source code.

What is source code?

Source Code is the code that the programmer writes that describes what your software should do.  The source code is written as text and might look something like the following example:

Sub SubmitOrderButton_Click()
SaveOrder(OrderID)
If PrintCheckBox.Checked = True Then
PrintOrder(OrderID)
End If
End Sub

The source code is then converted into machine readable code that runs on your computer.  Depending on the software language, this conversion could be done by compiling the code into executable files (.exe or .dll) that then run on the computer, or could be done by interpreting the source code at run time, or by some combination of the two.  The following diagram shows the differences between Compiled and Interpreted code.

Source Code Diagram

Is source code needed after the software is installed?

After the source code has been compiled and installed on the server or users’ PCs, then the source code is not needed to run the program.
But the source code is needed if you want to make any modifications to the software.

Looking at the Interpreted language section in the diagram above, it looks like you will have the source code in this instance as it has been copied to your computer, however that is not necessarily the case, as there are various methods that can be applied to encrypt, obfuscate or encode the source code to make it extremely difficult (or even impossible) to read and modify.

On the other hand, if your software has some element of compiling, it may seem that there is no chance of retrieving the source code.  However, for some languages there are tools available to “decompile” the compiled code, but these are never 100% percent accurate and still require considerable effort to get the source code back into a maintainable state.

In a nutshell, if you want to be able to modify your software then you will need to get the source code from the original programmer.

Should the programmer give you a copy of the source code?

The answer depends on how you acquired the software (or the services of the programmer).

Custom Software Development Purchased Software Package or Subscription Based Service
In House Employees Hourly Contractor Programmers Software Development Company
Definitely Probably
(check your contract)
Probably Not
(check your contract)
Extremely Unlikely

How does access to the source code relate to copyright?

The purpose of copyright is to encourage authors (of software or literary/artistic works) to create content by allowing them to benefit from the sale of their work.  (ie. to prevent someone else from unlawfully copying the work and selling it.)

With that in mind it is quite possible that you might have a copy of the source code for your software, but copyright prevents you from making a copy and selling that copy.  In the past, some legal cases argued that you are not allowed to make any copy at all, however there are plenty of cases where courts have found that copies are legal for various legitimate purposes like for backup or maintenance (again think back to the original purpose of copyright).

Of course, copyright protects the complete software, not just the source code, so you can’t make copies of the installed program and sell them either.

Is there a chance that you are the copyright owner but you don’t have the source code?

Yes, this is possible.  The source code may have been lost or deleted, or the programmer may not have handed it over.

Are you the copyright owner of your software?

Once again, the likelihood of you being the copyright owner depends on how you acquired the software or the services of the programmer.

Custom Software Development Purchased Software Package or Subscription Based Service
In House Employees Hourly Contractor Programmers Software Development Company
Yes, unless altered by your employment contract. Entirely dependent on your contract with the programmers. Highly Unlikely.
Could be written into the contract with the programmers.  But this would increase the cost of the software as the programmers could not re-use components they have created in the past.
Definitely Not.