Handout from the presentation by Lori Ayre entitled "Application Development" at Evergreen International Conference 2012 (eg12conf). Sample contract, your mileage may vary, for working with a developer in the Evergreen community. Use as a generic guideline and check with your organization's lawyer to make sure it works for you and the developer. Presentation that can be found here: http://www.slideshare.net/loriayre/guidelines-for-working-with-contract-developers-in-evergreen
Sample Contract for Contracting with a Developer (Evergreen)
1. CONTRACT FOR EVERGREEN DEVELOPMENT SERVICES
[Have your library’s lawyer review this contract before signing]
This Contract for Services (this "Contract") is made effective as of [DATE], by
and between [LIBRARY] (“Customer”), and [DEVELOPER].
1. TERM. This Contract shall be effective until completion of the Services as described in
paragraph two (2) "Description of Services".
2. DESCRIPTION OF SERVICES. Developer will provide the Customer the following Evergreen
development services (collectively, the "Services"):
a) Development of new feature/enhancement as described in Attachment A: Development
Plan.
b) Code will be licensed under “GPLv2 or later” and copyright will be assigned as stated in
this contract (see Item #5 below)
c) Preparation and delivery of code shall include the following:
a. Developer shall introduce him/herself to the developer community on both the IRC
channel and the Developer Mailing List and provide a basic overview of the
development project to ensure another developer has not already claimed the
work.
b. Once verified that work is not claimed by another developer, Developer shall
provide a detailed description of the work to be performed and contribute it to the
Evergreen wiki dev:proposal namespace (http://evergreen-
ils.org/dokuwiki/doku.php?idx=dev%3Aproposal).
c. Developer shall add a Blueprint entry to
https://blueprints.launchpad.net/evergreen with the basic overview and link to
the wiki entry.
d. Developer shall send the basic overview and links to the Blueprint and wiki pages
to the Evergreen development mailing list with a subject line beginning “Feature
Proposal.”
e. Code shall be made available as a public branch on the Evergreen Git Repository
(http://git.evergreen-ils.org/) or another publicly available repo.
f. Developer shall use Git’s sign-off feature to assert that the code submitted is in
accordance with the Developer Certificate of Origin if requested by Evergreen
committers.
3. ACCEPTANCE TESTING. Customer shall have 30 days from the date of delivery of the
Software in final form to inspect, test and evaluate it to determine whether the Software
satisfies the acceptance criteria in accordance with procedures set forth in the Development
Plan, or as established by Developer and approved by Customer prior to testing.
If the Software does not satisfy the acceptance criteria, Customer shall give Developer
written notice stating why the Software is unacceptable. Developer shall have 30 days from
the receipt of such notice to correct the deficiencies. Customer shall then have 30 days to
inspect, test and evaluate the Software. If the Software still does not satisfy the acceptance
criteria, Customer shall have the option of either (1) repeating the procedure set forth above,
or (2) terminating this Agreement pursuant to the section of this Agreement entitled "Remedies."
If Customer does not give written notice to Developer within the initial 30-day inspection, testing
and evaluation period or any extension of that period, that the Software does not satisfy the
acceptance criteria, Customer shall be deemed to have accepted the Software upon expiration of
such period.
4. PAYMENT FOR SERVICES. In exchange for the Services the Customer will pay [AMOUNT]
according to the following schedule: [PAYMENT SCHEDULE].
5. WORK PRODUCT OWNERSHIP. Any copyrightable works, ideas, discoveries, inventions,
patents, products, or other information (collectively the "Work Product") developed in whole
or in part by Developer solely in connection with the Evergreen Development Services will be
made available under the terms of the open source license in effect for Evergreen at the time
the code is written (currently GPL V2-or later). The copyright holder will be “[CUSTOMER] &
Sample Contract prepared by Lori Bowen Ayre (Galecia Group)
2. [DEVELOPER]”. A copy of the code will be given to the Customer even though the code may be
hosted. A good faith effort will be made both by the Library, and by Developer at the coding
stage, to integrate all code into the public, Evergreen code base.
6. RELATIONSHIP OF PARTIES. Customer and Developer agree that the status of Developer
is that of independent contractor, and not that of employee, principal, agent or joint venture
partner of Customer. Neither party has authority to enter into contracts or assume any
obligations for or on behalf of the other party or to make any warranties or representations
for or on behalf of the other party.
7. INTELLECTUAL PROPERTY INFRINGEMENT CLAIMS. Developer represents, BUT DOES
NOT WARRANT that to the best of its knowledge the Software delivered to Customer under this
Agreement will not infringe any valid and existing intellectual property right of any third
party.
8. REMEDIES. If Customer fails to perform its obligations under this Contract, Developer
shall have the right to terminate the Contract and to seek whatever remedy may be available
to Developer, either in law or in equity.
If Developer fails to comply with any terms of this Contract, Customer’s sole remedy shall be to
seek to recover any sums paid by Customer to Developer pursuant to the terms of this Contract.
Except as otherwise expressly provided herein, in the event of any litigation brought to enforce
any material provision of this Contract, the prevailing party shall be entitled to recover its
reasonable attorneys’ fees and court costs from the other party.
9. ENTIRE AGREEMENT. This Contract contains the entire agreement of the parties, and there
are no other promises or conditions in any other agreement whether oral or written concerning
the subject matter of this Contract. This Contract supersedes any prior written or oral
agreements between the parties.
10. SEVERABILITY. If any provision of this Contract will be held to be invalid or
unenforceable for any reason, the remaining provisions will continue to be valid and
enforceable, provided that no party is, as a result thereof, deprived of its substantial benefits
under this Contract. If a court finds that any provision of this Contract is invalid or
unenforceable, but that by limiting such provision it would become valid and enforceable, then
such provision will be deemed to be written, construed, and enforced as so limited.
11. AMENDMENT. This Contract may only be changed, modified, amended or discharged by an
agreement in writing executed by the parties hereto.
12. GOVERNING LAW. This Contract shall be construed in accordance with the laws of the
State of [LIBRARY_STATE].
13. NOTICE. Any notice or communication required or permitted under this Contract shall be
sufficiently given if delivered in person or by certified mail, return receipt requested, to the
address set forth below or to such other address as one party may have furnished to the other
in writing.
14. ASSIGNMENT. The Customer may not assign or transfer this Contract without the prior
written consent of Developer.
15. BINDING EFFECT. This Contract shall inure to the benefit of and be binding upon the parties
named herein and their respective heirs, successors and assigns.
Signatures:
By: ________________________________________
[Type text]
3. [LIBRARY CONTACT]
[ADDRESS]
By: _________________________________
[DEVELOPER]
[ADDRESS]
Sample Contract prepared by Lori Bowen Ayre (Galecia Group)
4. Date:_ _________
Appendix A – Development Plan
DEVELOPMENT NAME
Background Information:
[Library: Provide any background information about the existing software, library environment
or situation that will help the developers understand the purpose of the development project]
Use Case:
[Library: Describe the reasons this development is needed and how it will be used by the end users]
Requirements:
[Library: Describe the functional requirements of the development in detail]
Objects Affected:
[Library and Developer: List all Evergreen components that will be affected by code changes]
Acceptance Criteria:
[Library and Developer: Describe the tests that will be performed on the supplied code to
determine that the project has been successfully completed]
Access to Test System
Developer shall make available to the Customer a testable system. This may be in the form of
remote access to a running system where the changes have been deployed or a virtual machine
image that the Customer may install and access on its own hardware. Developer may also
provide a set of patch files that may be installed on the Customer’s existing test installation.
Testing Procedures
The Customer shall perform the following tests:
1. List all steps to be performed and results that are expected
2. ….