Unlike the object code, the source code version of a program is capable of being read by a human programmer – although it may not make much sense to him unless he also knows the design methodologies and tools which were used in its preparation. The source code is compiled (or converted) into the object code by a computer program called a compiler, the purpose of the compilation being that the object code version will run much faster on the computer than the source code version, which would need to be interpreted line by line. The reverse process is known as ‘decompiling’.
If it is agreed that a customer will acquire ownership of bespoke software, he must also acquire ownership of the source code if he is to be able to amend the software in the future. The contract for the bespoke software should therefore require the software developer to deliver the source code, the design documentation and a licence to use any proprietary tools and methodologies. However, where the customer is only granted a licence of bespoke software, he may not, even if it is a royalty-free and perpetual licence, automatically be supplied with a copy of the source code. Further, no buyer of package software is ever offered access to the source code. A software developer will want to retain control of the source code because:
Â·Â Â Â Â Â Â Â Â Â It gives the developer a practical means of preserving his rights in the software.
Â·Â Â Â Â Â Â Â Â Â Perhaps more significantly, it gives the developer a stranglehold on maintenance. This led to the European Commission’s interest in the subject, and the subsequent introduction of the EC Software Directive.
In addition, there are less commercially contentious reasons for developers to retain control of the source code:
.Â Â Â Â Â Â Â Â Â Most large software programs are subject to a continuous cycle of development and improvement, requiring frequent changes to the source code.
Â·Â Â Â Â Â Â Â Â Â Possession of an out-of-date copy of the source code is of limited practical use and, were the source code to be widely distributed, the task of keeping the numerous copies updated would be likely to lead to an increase in licence fees.
As long as the user is obtaining maintenance services from the developer or a third party (and most large software programs are accompanied by maintenance contracts), he will not need access to the source code (although a third party maintenance company might). What is essential for the user’s protection is that he should have access to an up-to-date copy of the source code if the developer is unwilling or unable to support the software any longer (for example, because of insolvency), but not necessarily otherwise. This is normally achieved by means of an escrow agreement.