A software program consists of computer programming code (source and object code), together with the written documentation, e.g. software listings, schematics, manuals, flowcharts and drawings which make up the preparatory design and specification work and which leads to the development of the finished software.
Not all of the code or written documentation can be owned by the software developer, since much of the programming languages, algorithms and logic are in the public domain to be used by all. What is owned by the software developer is the original way in which the developer has used his know-how and expertise to create an original end product (software program) which is his own “expression”.
This original “expression” is protected by copyright law in most countries in the world and it is this part of the software which can be licensed by or bought and sold by the developer like any asset.
However, in order properly to transfer all rights to that asset to a purchaser, the developer must assign all of his original rights (his intellectual property rights) to the purchaser and if the Assignment is drafted for the purchaser’s benefit he should also seek an undertaking from the developer not to create that same software again.
The Assignment must also secure the rights to any enhancements, modifications or other variations which the developer may create or be capable of creating, as well as the right to apply for patents or other protections anywhere in the world.
Finally, since software is created through the developer’s know how, it is important to secure the developer’s continued help in understanding the software and securing such rights of ownership as are possible to obtain (see Clause 3).