Ross Kimbarovsky's "contract for software developers who hate contracts" (though with some typo fixes). More information and original source available at http://rosskimbarovsky.com/contracts-for-softwa...
I’ll always do my best to fulfil your needs and meet your expectations, but it’s important to have things written down so that we both know what we are supposed to do, and what will happen if something goes wrong. In this contract you won’t find any complicated legal terms or passages of unreadable text. I have no desire to trick you into signing something that you might later regret. What I want is what’s best for both parties, now and in the future. With that said...
You, Client Name(“Client” or “You”), with a principal place of business at Client Addresshave asked me, Developer Name (“Developer” or “I”), with a principal place of business atDeveloper Address, to create custom software for you. This is our Agreement for this project:
What I agree to do:
1. Scope of Work. The scope of my work for you is listed on Exhibit A to this Agreement. I will start working on this project within Number of days before start days after I receive a signed copy of this Agreement and fifty percent of the total payment from you. If the scope of work changes after we sign this Agreement, you and I agree to negotiate and sign an amended Exhibit A.
2. Project Milestones. We have agreed that I will work on this project in phases. Exhibit B to this Agreement lists the milestones that we’ve agreed will apply to each phase of my work for you. If the scope of work changes after we sign this Agreement, you and I agree to negotiate and sign an amended Exhibit B.
3. Final Deliverables. I will deliver to you, via email, within Delivery timeframe days after you approve the final deliverable(s), digital files containing my work for you under this Agreement. Specifically, I will provide you with the following:
Describe final deliverables
What you provide your Client will depend on the type of work you’ll be doing. For example, if you’re developing an iPhone application, you’ll be delivering an executable file – and probably source code too. If you are developing a website, you’ll deliver html/css, designs, etc. and you may also need to deliver back-end connectivity and/or the ancillary software necessary to support the website –such as to a CMS (Drupal, WordPress, etc.) or database (SQL, MySQL). Set expectations very carefully and clearly here – make sure your client isn’t expecting something you will not be providing and make sure to identify anything for which the client will have to pay separately – whether to you or to a third party.
What I promise you:
4. Original Work/Conflicts/Confidentiality. I promise that, except for anything that you give me to incorporate into the software I will create for you: (a) my work will be original and will not be copied in whole or in part from any other work; (b) I am the sole and exclusive owner of all intellectual property rights, including patent, copyright, trade secret and other proprietary rights in and to the software I create for you, or I have secured such rights to any third-party content incorporated into my final code; and (c) my work does not violate the patent, copyright, trade secret or other property right of any person, firm or entity. I promise that this Agreement does not conflict with any other contract, agreement or understanding to which I am a party. Finally, I promise that I’ll hold and maintain in strict confidence any confidential information that you provide me (such as proprietary technical or business information), and I will not disclose such information to any third party except as may be required by a court or governmental authority.
5. Training. The Fee you’ll pay me for this project includes Number of training hourshours of training in the use of the software I create for you. Training will be conducted remotely using a screen sharing software. If you ask me to train you onsite, you agree to pay my actual costs of traveling to your location, including but not limited to transportation, lodging, and food expenses.
What you promise me:
6. Pay Me For My Work. You promise to pay me the total sum (“Fee”) of $Price (U.S. Dollars) in two payments. Fifty percent of the Fee will be due when you and I sign this Agreement and before I begin. The remaining fifty percent of the Fee will be due immediately before I send you final files containing the software you approved. Payment will be made using cheque. If you ask me to use any third-party content (such as stock photos or third party software that must be incorporated in the software I am creating for you), you promise to pay me the actual cost of licensing that third-party content for work under this Agreement. You agree that until you pay me in full, you will not acquire the rights or license to use or transfer ownership of any software that I create for you under this Agreement.
7. Pay Me For Extra Work. I agree that the Fee you owe me will cover in full all of the work listed in Paragraph 1/Exhibit A of this Agreement. You agree that if you ask me to make changes, or do other work for you that is not covered by this Agreement, you’ll pay me an hourly rate of $Developer hourly rate per hour and this payment will be in addition to all other amounts you owe me under this Agreement. You also agree that time spent on meetings, phone calls, and travel to the client's site are classed as extra work.
8. Feedback and Acceptance. You agree that I cannot complete my work for you or meet the milestones to which we’ve agreed unless you give me timely feedback. You agree to provide timely feedback so that I can understand your concerns, objections or corrections, and you promise not to unreasonably withhold acceptance of the deliverables I’ll provide you at each milestone.
We’ve agreed to the following acceptance process: I will test the software that I create for you to make sure that it’s working properly. In turn, you promise that you will evaluate the deliverables I provided to you at each milestone listed in Exhibit B to this Agreement and let me know in writing, within ten (10) calendar days after you receive each deliverable, whether you accept or reject it. If you reject a deliverable, I will correct any errors and again ask you to accept or reject the corrected deliverable – which you promise to do within ten (10) calendar days after you receive the corrected deliverable. This process shall continue until you accept the deliverable or 10 calendar days have passed and you have not accepted or rejected a deliverable (at which point it will be deemed accepted). Once you’ve accepted a deliverable, I’ll proceed to do work on the next milestone.
When I deliver the final files to you and complete my work for you under this Agreement, you agree that you’ll test the software in its entirety to determine if I completed the work I promised you. You promise to let me know in writing within fifteen (15) calendar days after I deliver the final files whether you accept or reject the final files. If you reject the final files, I will correct any errors and again ask you to accept or reject the corrected deliverable – which you promise to do within fifteen (15) calendar days after you receive the corrected deliverable. This process shall continue until you accept the deliverable or 15 calendar days have passed and you have not accepted or rejected a deliverable (at which point it will be deemed accepted). Finally, you agree that my work on this project will be complete and the Agreement will end after you’ve approved the final files.
9. You Have Rights To The Client Content. You promise that: (a) You own the rights to use anything you give me (“Client Content”); and (b) using such Client Content does not violate the patent, copyright, trade secret or other property right of any person, firm or entity. You grant me a nonexclusive, nontransferable license to use, reproduce, modify, display and publish the Client Content solely in connection with my work for you under this Agreement and my limited promotional uses as allowed by this Agreement. You also affirm and represent that this Agreement does not conflict with any other contract, agreement or understanding to which you are a party.
What rights each of us will have
10. Rights Before You Pay Me In Full. You understand and agree that until you pay me in full, I own full rights to everything I create for you under this Agreement. If you don’t pay me in full, you agree that I can complete, exhibit, use and sell the software at my sole and absolute discretion (except that I will not be able to use Client Content in such work).
11. Rights After You Pay Me In Full.
ALTERNATIVE 1: CLIENT WILL OWN ALL FINAL WORK. I can’t predict what type of software you’ll be writing, so I can’t offer language that will suit every situation. Depending on the nature of the agreement, you’ll want to modify this language to reflect the rights you are providing. For example, if you’re creating a website, you could give your client a license to operate the site, update/revise/republish the site, and advertise or promote the site. On the other hand, if you’re licensing software that the client might sell, you’ll need to including in the list of permissions the ability of the client to sell that software and the channels through which they are authorized to sell – such as via the Apple Apps store.
After you pay me in full, I assign to you my right, title and interest in the copyrights for the final software that I create for you under this Agreement – contained in the final files that I’ll send to your for approval. You agree that I will retain and you will not receive any right, title or interest to the preliminary work or preliminary designs that are included with the work I create for you. If you’ll need some additional documentation, I’ll sign any further documents reasonably necessary to make sure that the rights I’m giving you under this Agreement are properly assigned to you. You agree that I may use your name/company name and trademarks as a reference in my promotional materials. You also agree that I may include, when referencing my work for you, a general description of the work under this Agreement.
11. Rights After You Pay Me In Full.
ALTERNATIVE 2: DEVELOPER WILL OWN ALL WORK.
After you pay me in full, I grant you a nonexclusive, fully paid, worldwide, royalty-free license to install, use and copy the software I create for you (as specified in Exhibit A to this Agreement and as contained in the final files I deliver to you), and all related documentation, in accordance with the terms and conditions of this Agreement. I will retain all copyright, patent, trade secrete and other intellectual property rights in the work that I create for you. You promise that you will not remove, alter, or cover any copyright notice, trademark or other proprietary rights notice that I include with the software.
12. Right To Make Changes. I agree that after you pay me in full, you may make any changes or additions to the software I create for you under this Agreement, which you in your discretion may consider necessary, and you may engage others to make any such changes or additions, without further payments to me. You agree that if you ask me to make changes or additions to the software after you approve the final files, you and I will negotiate a separate additional payment for my time to make such changes.
ALTERNATIVE If you do NOT want the client to have the right to make any changes, include the following language instead:
12. No Right To Make Changes. You agree that you may not make any changes or additions to the software I create for you under this Agreement, without my express written permission.
13. Rights To Know-How. I may incorporate into the software I create for you various preexisting development tools, routines, subroutines, programs, data or materials (Know-How). You agree that I retain all rights, title and interest, including all copyright, patent, and trade secret rights to that Know-How. I agree that after you pay me in full, you’ll receive a nonexclusive, perpetual, worldwide license to use the Know-How in the software that I created for you under this Agreement. However, you shall not resell or make use of that Know-How in any other manner other than in connection with the software you receive under this Agreement.
14. Warranty. I promise you that software I create for you shall perform substantially in accordance with the specifications listed in Exhibit A and that it will not contain material defects. In the event the software does not perform in accordance with Exhibit A, I will, within thirty (30) days from when you give me written notice, correct the software so that it performs substantially in accordance with Exhibit A. I also promise you that to the best of my knowledge, the software will not contain any virus, worm, trap door, back door, Trojan Horse, timer or clock that would erase data or programming or otherwise cause the software to become inoperable or incapable of being used. I do not promise that the functions contained in the software will meet your specific requirements (unless I’ve agreed to this on Exhibit A to this Agreement ) or that the operation of the software will be uninterrupted or error free.
Except as specifically set forth in this agreement, the software I create for you is provided without additional warranty of any kind, either expressed or implied, including but not limited to the implied warranties of merchantability and fitness for a particular purpose and any oral or written representations, proposals or statement made prior to this agreement. I hereby expressly disclaim any representation or warranty of any kind with respect to the software, including without limitation, the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of the software is with you. The remedies provided in this agreement are your sole and exclusive remedies.
15. Limitations of Remedies.
I shall not, under any circumstances, be liable to you for consequential, indirect, incidental, special, punitive, or exemplary damages or losses arising out of or related to this agreement, even if I am advised of the likelihood of such damages occurring. My cumulative liability for any damages arising out of or in any manner related to this agreement (including, but not limited to, claims for breach of contract, breach of warranty, negligence, strict liability, or tort, shall be limited to the amount of the fee paid by you to me under this agreement.
16. Entire Agreement. This Agreement constitutes the complete and exclusive agreement between you and I concerning the work on this project, and it supersedes all other prior agreements, proposals, and representations, whether stated orally or in writing. We can modify this agreement in writing, if both you and I sign that modification.
17. I Am An Independent Contractor. You agree that I am an independent contractor and not your employee. Although you will provide general direction to me, I will determine, in my sole discretion, the manner and ways in which I will create the software for you. The work that I create for you under this Agreement will not be deemed a “work-for-hire”, as that term is defined under U.S. Copyright Law. Whatever rights I grant you are contained in this Agreement.
By signing, you and I agree: (a) to all of the terms and conditions of this Agreement and (b) that we have the full authority to enter into this Agreement. The Agreement is immediately effective upon signing.
Statement of Work
Here, you should list what you’ll do, how many different concepts/comps you’ll provide if design is included as part of your work, what and how many changes you’ll make. In this section, you want to fully define the scope of the project, including any planning time. For example, if you’ll be doing both front-end and back-end development website work, clearly define what you will/will not be doing. Pay particular attention to portions of the work that will be performed by third parties and be very clear about whether the Client or you will manage the work of those third parties. Also be very clear about ancillary services, such as installation and/or deployment of code to a webserver or hosting provider, submission of an application to the Apps Store, etc.