If you hire a software developer there are a number of items you’ll want:
- Ownership in the source code;
- Rights to any patentable inventions developed;
- Confidentiality; and
- Non-compete provisions.
Items 2-4 are generally not a problem. Non-compete terms are generally between six (6) months to two (2) years. Ownership of the source code is a thornier issue. However, if you understand the interests of both parties it is resolvable.
Interests of the Employer
Naturally you don’t want to pay for something you won’t own. As a 1099 contractor, the source code copyrights created by developer do not automatically transfer to the employer. This is different from a developer that works full time for a company (e.g., a FICA employee). Therefore you need a written work-for-hire agreement to transfer those rights to the company that hired the developer.
Interests of the Developer
To work efficiently, developers must reuse code between clients and projects. Sending an email (SMTP), saving a file (I/O functions), accessing a database (e.g., ADO) are all common tasks. If your agreement requires ownership of everything then developer loses all rights to any of these project-agnostic code snippets.
Solution – Non-Exclusive Licensing
Developers often bring with them large collections of code that let them work efficiently. However, the Employer needs rights to commercialize this code. Developer should grant Employer a non-exclusive, world-wide, royalty-free license to use preexisting code Developer already had as necessary to commercialize the new software. This way the developer maintains ownership in that code for future projects.
For code developed under the agreement that is not specific to the project, the Employer owns the code but grants back to developer a non-exclusive license to reuse it. That motivates the Developer to write the most clean, robust code for the Employer because he or she will be able to reuse it in the future.
Define Project Specific Functions
In the Statement of Work (SOW), clearly indicate what the project is meant to achieve. For example, if it is to send out vaccine reminders for dog owners then the project specific functions are the database schema; the GUI for dog owner, vet and administrator; the business logic for payment, reminders and scheduling vaccines; and graphic design elements of the UI. Project agnostic elements are routines for email, database access, form field validation, PayPal integration and other subroutines and functions not specific to the objectives of the project.
Developers need to understand that companies need clean title to contracted projects. Companies need to understand that developers work most efficiently reusing code between projects. Defining project-agnostic code is the key to meeting the needs of both parties.
A simple agreement is attached. Smith & Hopen makes no warranty that the agreement is fit for your circumstance. You have permission to reuse it at your own risk provided the Smith & Hopen brand and copyright notice remain intact.
Statement of Rights to Work Product - Software Developers.doc (134.22 kb)