Who owns the software you’ve paid for?


There can be pitfalls in ordering bespoke software. One is control of the source code of your application. This can be complex. The biggest issue is ongoing support, but there are three issues:


Some software is written in compiled languages, like C++. The programmer writes what is called source code in, say, the C language. This is then compiled into an executable (exe) file. There are other languages. For example, most web applications are written in languages like PHP and Java Script. In these cases the source code is deployed unchanged. In such cases, you should be able to access the source code from your web server. However, some web sites are generated by software like Adobe. You may find in these cases that you do not have access to the source code and the site can only be changed by the holder of the source code.

Support and maintenance

This often causes major problems. You commission some software, install it, sign it off and pay for it. You then find the software house charges high fees for any extra work on the application. Many software houses adopt this approach. Others consider it to be unethical.

The worst problems occur after disagreements. If you fall out with the supplier, and this happens far too often, you will be stuck. You may have to order new software. Even taking data from the old software can be difficult.

To overcome this, the contract should clearly state that the software company must make the source code available to you, or at least to a third party. It must also state that the source code must be handed to the client at the end of contract.


This will only normally arise if you or the software company decides to sell your application as a package. The legal issues are complex, but, in the absence of a clear agreement, it is quite likely that the software house would own the copyright of the source code.

If there is any possibility that you would want to market the software, this should be discussed before the contract is signed. In fact, many software houses (including McMillan) would be very happy to collaborate with you in marketing a package. This needs to be made clear at the outset.

But what about the software house using parts of the code in other contracts? In reality it will be difficult to stop this, and in any case you would be unlikely to be able to profit if that did happen. It does help to check before agreeing to the order.


Software houses do sometimes go out of business. If this happens and you don’t have access to the source code, you will be in trouble. Escrow agreements are common, and state that an up to date copy of the source code must be deposited with a third party.

Some care needs to be taken in drafting the terms of the escrow agreement. By default, the source would probably only be released following the commercial failure of the supplier. The author’s view is that it should be released at the end of contract.

Summary: useful contract clauses

Apart from normal terms and conditions, the contract should:

  • Define the copyright
  • State that at the end of a maintenance agreement, you will have full access to the source code.
  • If the supplier is not prepared to deliver the source code to you, insist that an escrow copy is deposited with a third party. Also insist that you have the right to access this at the end of a maintenance agreement.

Problems are more likely to occur with larger software houses. Smaller ones need to be more flexible and they will need you as much as you need them. So negotiation will be simpler and you won’t need anything like as much access to lawyers.

About the author

John McMillan is a software developer based on the Essex Suffolk border in England, close to Cambridge and North East London. He writes business programs to order, his applications have carried out many business functions.

Have you a need for software?

Visit McMillan’s web site
Contact McMillan to see if we can help

The Different Types of Website

Static and interactive

The simplest websites are static. Static sites generally display the same information to all visitors. The information usually changes only occasionally. Static sites are rather like brochures – once a brochure is printed it will have a lifetime of many months.

Interactive websites change their content “on the fly” in the light of visitors’ requests. A common use is to allow visitors to see selections of items, perhaps from a catalogue, or the visitor to see personal information. Social networking and dating sites are examples of this. Interactive websites can allow high degrees of personalisation.

Websites built around content management systems (CMS) allow the website owner to make changes to the site. CMS allows sites to be kept up to date without recourse to the web developers.

Under the hood

Websites are written in a language called HTML. HTML defines how the page will look on screen and provides forms, navigation and multi media. HTML is usually used together with cascading style sheets (CSS) which control the appearance of the pages.

Scripts are basically programs which provide interaction. Scripts work both on the visitor’s computer (client side) and on the server. Client side scripts are useful for things like form validation and are mostly written in a language called Java script. Server side scripts can pull information from databases and build a page from that. Search engines are an example: the visitor types in a search term, the server script fetches records from the database and sends back details of web sites containing those terms. Catalogues are another example. The script can build a list of, say, women’s knitwear.

Server side scripts can also process information like orders. The commonest languages for server scripts are Microsoft’s ASP and the open source PHP. There are a vast number of pre-written components that can be used by designers and developers.

How websites are produced

Websites can be simply typed into text editors. This needs a detailed knowledge of the HTML language. More often, WYSIWIG generators like Adobe Dreamweaver allow designers to create the pages. These generate the HTML and CSS. WYSIWIG generators are most suitable for producing static websites but can be used to provide the basis for interactive sites.

Interactive websites are really bespoke software applications. Production of the more complex ones needs high software design and programming skills. Such websites have to be created by a team of designers and software engineers.

Website owners don’t want to have to keep returning to their supplier every time they want to make a minor change. For this reason content management systems (CMS) have been developed. A CMS allows the user to make changes easily. He can change wording, make basic changes to the layout and appearance and he can add new pages. Most smaller websites are now built around A CMS. The CMS generates the HTML and scripts, and creates the necessary databases.

There are many CMSs on the market. WordPress, Joomla and Drupal are probably the most common.

Complex sites

The advantages of CMS depend on how much processing is needed on the site. For complex sites with large databases and high degrees of personalisation, it is usually more economical to use a software developer to produce a bespoke site. The more complex the tailoring, the harder it becomes with a CMS and it quickly reaches the point where a bespoke site is better.

Bespoke websites don’t lose the benefits of CMS because the developer will provide a control panel that allows the website owner to change his content.

Designers and developers

Most smaller websites are created by designers. Designers tend to work with a CMS. Larger sites need to be built by experienced software developers who will be expert in the languages used. More importantly, they understand how to design and debug applications and are more aware of user issues. Complex sites often need to be audited and security is often an issue. Experienced software developers understand this.

Controlling what you pay for

When you commission a website, you must beware of locking yourself into the supplier. What a designer enters into a CMS or other generator is called the source. Many generated websites can only be maintained by changing the source and not all suppliers will hand over the source. If you don’t have access to the source, an unscrupulous supplier can charge high fees for future work. Worse, if you enter a dispute with your supplier or he goes out of business, you will be stuck. Demand a contractual clause that states he will hand over the source. At the very least, insist that an escrow copy of the source be kept by a third party. If the supplier won’t agree to that, don’t deal with him.