Who owns the code?


The question of code ownership in a custom application comes up fairly often and the answer isn’t as clear cut as one might expect.

The follow is a case sample of why it’s important to establish licensing of any custom development at the beginning of the project.

The National Association for the Protection of Snipes (NAPS), a group dedicated to banning hunting of the rare and elusive snipe, contracts a developer to create a custom application for managing their conferences. NAPS is really happy with the final product. So much so that they decide they want to make copies of it available to their smaller regional groups, and sell it to other associations. Since the developer was paid for their work, NAPS owns the code, right?

Not necessarily.

Licensing needs to be established from the start

When contracting the creation of a custom application, it’s final use needs to be established with the developer from the beginning. With no established agreement of licensing or assignment of ownership, the ownership generally stays with the developer with an assumed single-use licensing agreement.

Which seems simple enough but can get complicated quickly.

When NAPS contracted the application, they were under a tight budget. In order to meet NAPS’ budget the developer combined third party code with a single use license and their own custom code.

Using third party code can significantly speed up development times and reduce cost; however, it also means that the developer doesn’t have the rights to extend the licensing without prior arrangements with the third party.

If a licensing agreement had been established at the beginning of the project the developer would have skipped using third party code and been able to enter an agreement with NAPS. As it is, NAPS will have to enter into agreements with both the developer and third party that allow them to distribute and sell the application. This is assuming the third party is open to extending the licensing at all. They would be well within their rights to refuse to alter the original licensing.

The above is just one instance of how assumptions in licensing can cause serious problems. Even in small projects, it is always a good idea to have a discussion with the developer about the licensing, and clearly document any deviations from a standard single use agreement.frog5





What is “The Cloud”

Simply put, the cloud is the internet.

Since the mid 2000s, more and more programs and services that operate from the cloud have become available. One of the earliest and most familiar examples is Microsoft’s Hotmail. The Hotmail program operates and stores all your email online, allowing it to be accessible from any computer or device connected to the internet. No software is required to be installed on your computer or device, outside of a browser, to operate it.

Examples of some common programs and services that operate on the cloud;

  • Netflix (Online TV/Movie streaming)
  • Yahoo Mail (Online email management)
  • Google Docs (Online business office suite)
  • DropBox (Online files storage)
  • Carbonite (Online computer/device) backup

Some advantages to using cloud based applications are;

  • No installation required – Software is available immediately without having to worry about installing it.
  • Automatic updates – When you use a cloud application, you are always working with the most up-to-date version. Updates are managed by the company that provides the software.
  • Recovery – In the event of a hard drive failure or the theft of a computer/device, the cost and time required for getting up and running again is considerably reduced if documents are stored or backed up to the cloud.
  • Reduced cost – For organizations that are required to have the most recent version software versions, cloud computing allows for considerable savings in software updates and the man power required to implement upgrades.

Some disadvantages to using cloud based applications are;

  • Security issues – Care needs to be taken to ensure that you are using a reputable company that uses the highest level of security measures on their servers. Lax security on a cloud application or server means your data could be at risk.
  • Must have high speed internet – If you have visions of telecommuting from the cottage or camp ground, cloud computing may not be for you. Without a stable high speed connection, online programs often won’t function well, or at all, in some cases.
  • Increased cost – While there may be savings for larger scale users and frequent updaters, if you just have one or two devices and you tend to renew your software every 3-5 years then the monthly payment model will likely cost you more, depending on the software. Make sure to do the math.