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?
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.