Practical Guidance®
Software Development Agreement
Checklist (Pro-Developer)
A Practical Guidance® Checklist by Sonia Baldia, Kilpatrick Townsend & Stockton LLP
• Third-party guarantees. confirm whether any third party
will guarantee the customer’s performance or financial
obligations.
• Project scope. Unambiguously describe what the
Sonia Baldia developer will create as a defined term in either the
Kilpatrick Townsend & Stockton LLP
preamble, the definitions section, or in a stand-alone
section at the beginning of the document.
A software development agreement is a contract for the
design, development, testing, installation, and implementation • Requirements analysis. The parties should document a
of custom software, or maintenance or modification of set of requirements describing the customer’s business
currently existing software. This checklist highlights key objectives and the role the software will play in meeting
issues, from the developer’s perspective, in drafting and those objectives.
negotiating a software development agreement. For a • Design. Ensure the developer determines the technical
more detailed discussion on the key issues in drafting and details of how the software will perform and create a set
negotiating a software development agreement, see Software of software design documents on which it will rely to build
Development Agreement Negotiating and Drafting. the software.
This checklist addresses only software that a customer • Build/development. The developer should determine the
controls and uses on its systems. This practice note does not programming language it will use for coding the software
address situations when the customer: • Testing. Structure this phase as an iterative process,
• Controls or uses the software on a system hosted by the where the developer tracks and reports any deficiencies,
software developer or any third party bugs, or defects uncovered during quality assurance
• Is a government entity testing, and then fixes and re-tests the software until it
resolves the problems.
• Must comply with industry-specific regulations, laws, or
restrictions to use the software • Implementation/deployment. Understand how the
parties intend to deploy the software and whether the
• Uses or accesses the software outside of the United
developer will initially deploy the software in stages by
States
releasing it to only a limited number of the target users at
a time.
Initial Considerations • Milestones. Use milestones to define the crucial project
tasks to be completed during project planning, as well as
• Parties. Confirm each party’s legal status and whether
to specify the activities to be performed and completed by
any third parties (such as group affiliates) will benefit
the parties at certain key points throughout the life cycle
from the proposed agreement.
of the project.
Deliverables Payment
Include a list of tangible items that the parties deliver during The payment section defines when and how the customer
the software development process. Consider the following pays the developer. When drafting the payment terms,
issues when determining the deliverables: consider:
• Reference to milestones. The parties typically refer to • How customers can pay their invoices, including the
project milestones, previously agreed on, to create this currency in which payment must be made and specific
list. A deliverable is a measurable and verifiable item that wire or check submission instructions
a party undertakes to help achieve that milestone. The • When payment is due (e.g., 30 days from the date of
parties may need to produce one or more deliverables to invoice)
achieve a specific milestone.
• If the developer can charge interest on overdue unpaid
• Timing. Prepare the list of deliverables after the parties balances
agree on the requirements specifications, and include
• Making the customer responsible for collection costs,
specific due dates for the completion of each deliverable.
including reasonable attorneys’ fees
• Progress payments. If the parties structure the
• Making the customer responsible for levies or taxes
agreement to include progress payments, ensure that
relating to its use of services, other than the developer’s
the successful delivery of the items described in the
income taxes
deliverables are determined by objective specifications
that the parties have mutually agreed on, not the Because software development projects can be lengthy,
subjective opinion of the customer. waiting for a single lump payment at the end of the project
involves significant financial risk for the developer. As a result,
• Delivery. Avoid arbitrary deliverable delivery dates,
you should negotiate periodic payments that the customer
and instead negotiate dates that realistically reflect the
makes throughout the term of the agreement (e.g., after the
time needed for each party to perform its respective
successful completion of each project milestone, or in regular
obligations to complete every deliverable.
monthly installments).
• Acceptance testing. Require the customer to comply
with the acceptance testing procedure (discussed below) In addition, the developer should negotiate a larger up-front
for reviewing each deliverable. initial payment to minimize risk to its cash flow and working
capital needs while undertaking the project (e.g., 25–50% of
the overall price).
Pricing
The parties usually negotiate pricing for software
development services on either a time and materials or fixed
Change Requests
price basis. Time and materials may be the most profitable During the course of the project, the customer may want to
pricing model for the developer because it is difficult to make changes to the requirements or specifications in a way
estimate the amount of time needed to undertake a software that impacts the project’s scope, schedule, or cost. Ensure
development arrangement. this provision requires that:
If the customer insists on a cap when the developer charges a • A requested change must be described in writing
time and materials rate, consider negotiating bonus payments • The request can only be agreed to by an authorized
for successfully completing deliverables before the applicable representative of the other party
due dates to help increase the potential revenue. • The other party must accept or reject the requested
change within a certain period of time
Ancillary Expenses You should also address the following issues when drafting
this clause:
Ensure that the agreement addresses additional fees for
any ancillary services that the customer desires. Examples • Refusal right. Include a provision that gives the developer
include: the right to refuse a change request that preemptively
limits the amount the developer can charge for the
• Out-of-pocket expenses
request.
• Training on how to use the software
• Termination restrictions. To avoid the risk that this
• Maintenance and support of the software provision becomes a backdoor termination right for the
• Consulting on projects related to the software customer, consider limiting the situations in which the
development agreement
customer can terminate the agreement if the parties • Allowing the developer to fix and to re-submit a
cannot agree on a change request. deliverable (usually three attempts)
• Pro rata payment. If the parties cannot reach an • Allow the customer to terminate the contract if the
agreement on the change request, the customer should developer cannot successfully produce a deliverable and
pay the developer for any work product that has been • Prohibit the customer from recovering monetary damages
completed and in progress. aside from a partial refund of any fees paid up to the date
• IP ownership. Consider retaining ownership and all IP of termination
rights in the work product to disincentivize the customer
from early termination.
Intellectual Property Rights
Acceptance Testing The agreement must address which party owns the software
and all intellectual property (IP) rights, including:
Include an acceptance procedure for the customer to review • Right, title and interest in the software
and approve each deliverable before the developer proceeds
• Software source and object code, all related
to the next deliverable.
documentation, and manuals for the software (including
General Terms all IP rights in these items)
To prevent delays and to encourage prompt responses, the • Developer’s work product created during the project
developer should: (e.g., scripts, product concept, product backlog, internal
• Provide a specific time period for the customer to review software, and data used for testing)
and respond in writing to a submission • Developer’s own pre-existing work product used in the
• Address whether a submission should be deemed development of the software
approved if the customer does not respond within the • All related copyrights, patents, trademarks, and trade
specified time frame, or when the customer makes the secrets
software available for end users
Developers usually rely on their own pre-existing, proprietary
• Ensure that the customer cannot reject any deliverable techniques, know-how, methodologies, utilities, processes,
that failed due to any third-party software or hardware algorithms, and tools to develop software for multiple
unless the developer recommended or required that the customers. As a result, you should:
customer use that software or hardware
• Ensure that the developer retains ownership of all such
Testing Standards pre-existing work product, and all IP rights in the work
Include only objective standards for acceptance testing. product
Disputes often arise when the customer rejects a deliverable • Clarify that the developer can use its pre-existing work
for a subjective reason, such as a perception of how the product in the development of other software for future
deliverable should operate or the customer’s internal clients, free and clear any ownership claims, liens, or
expectation of functionality. Instead, require that the approval rights of the customer
customer perform acceptance tests using the requirements • Grant a limited license to the customer to use that work
specifications or detailed design documents. product solely to use the software, if any pre-existing
work product is incorporated in the software
Customer Obligations
You should also require that the customer: You also should include a clause stating that the developer is
not obligated to transfer ownership of the software (or any
• Begin acceptance testing immediately upon the
related IP rights) until the customer has fully paid for the
developer’s submission of the deliverable
work performed under the agreement.
• Provide notice of its determination immediately to the
developer
• Include a detailed explanation of its rejection in sufficient
Representations and
detail to enable the developer to recreate and to verify
the noncompliance
Warranties
Representations and warranties in a software development
Remedies agreement should be tailored to directly address issues that
In the event a deliverable has failed acceptance testing, limit may impair a party’s ability to perform its obligations or
the remedies available to the customer by: imperil the overall project.
Standard Representations and Warranties • Be free of defects or viruses
Examples of general representations and warranties in a • The customer’s data will be secure from loss, damage or
software development agreement include: theft
• The developer has or will have and maintain sufficient
resources, facilities, capacity, and personnel to assure
Sole and Exclusive Remedy
Limit customer’s remedy for a breach of warranty to
that all work will be provided in a timely and workmanlike
commercially reasonable efforts to cure the breach. Include
manner.
a disclaimer that this is the “sole and exclusive” liability of the
• There are no commitments, obligations or agreements developer.
with any third party that would conflict with either party’s
obligations under the software development agreement,
or otherwise restrict a party from entering into the Indemnification
software development agreement.
Software developers often provide indemnification for:
• During the term of the software development agreement,
• Personal injury or property damage caused by the
neither party will enter into any commitment, obligation
developer’s personnel or agents, in situations where the
or agreement that conflicts with its duties under the
developer is performing on-site work
software development agreement.
• Any claim that the software infringes on a third party’s IP
• Each party has obtained all licenses and permits
rights
required to perform its obligations under the software
development agreement. Limit indemnification to claims based on infringement of a
third party’s U.S. intellectual property rights (if the contract is
• Each party will comply with all applicable laws, rules or
U.S. based) in existence on or before the date of the contract.
regulations during the term of the software development
agreement. In addition, customers sometimes seek indemnification
from developers for breaching their confidentiality and
Performance Warranty data security obligations. Try to limit these indemnities to
To the extent that you offer a warranty: breaches caused by a “material failure” to comply with the
• Use only objective standards to measure performance of obligations.
the services (e.g., specifications)
Indemnification Procedure
• Do not use subjective standards to measure the Ensure that the indemnification provision also addresses
operational effectiveness of the services (e.g., the services the mechanics of providing indemnity to the other party,
operate to the reasonable satisfaction of the customer) including:
• Limit the warranty to a “material” conformance with the • The indemnified party’s obligation to notify the
specifications so that you are responsible only for fixing indemnifying party promptly of the pending or threatened
errors/bugs that significantly impair the customer’s ability action
to use the services
• Requiring the indemnified party to provide cooperation
Disclaimed Warranties and technical assistance to the indemnifying party
Any performance warranty offered by the developer should • Selection of counsel and control of defense of the case
not cover:
• Whether the indemnifying party may settle the case
• Unauthorized modifications of the services by the unilaterally, or only with the indemnified party’s approval
customer or any third party
• Monetary caps on indemnity (including attorneys’ fees)
• Use of the services with third-party software or
hardware, or in an environment or manner not originally Exclusions to Developer Indemnification
contemplated by the parties Developers should exclude claims made due (in whole or in
• Errors or misuse of the services by the customer, its part) to the customer’s own unauthorized acts. Examples
employees, or agents include:
Include the standard disclaimers to all other warranties, • Modifications to the software without the developer’s
express or implied, and insert language specifying that the prior written approval
developer makes no warranties that: • Failure to install updates or upgrades to the software that
would have avoided the infringement
• The services will operate uninterrupted
• Suggested changes to the specifications or software that • Ties any indemnity and warranty remedies to the
cause the infringement limitation of liability clause to narrow the scope and
• Use of the software with any third-party hardware and amount recoverable
software not authorized by the developer • Caps the aggregate amount of attorneys’ fees that the
• Use of the software for any reason other than intended customer may recover in a dispute
purpose • Includes an aggregate cap that limits total amount
• Gross negligence or willful misconduct of the customer’s recoverable from the customer over the life of the
employees or agents contract
Remedies
In lieu of paying damages for IP infringement, software Confidentiality
developers typically: If the parties have already entered into a separate
• Replace or modify the services with substantially confidentiality agreement, you should include a brief
equivalent services so that the services are no longer provision that references the executed confidentiality
infringing agreement and incorporates its terms as part of the software
development agreement.
• Obtain for the customer the right to continue using the
services Otherwise, you should include a confidentiality clause that
prohibits either party from using or disclosing the other
• Terminate the applicable services and reimburse customer
party’s proprietary and confidential information to third
for any prepaid but unused services as of the date of
parties. For a more detailed discussion on confidentiality
termination
agreements and tips on negotiating confidentiality provisions,
Sole and Exclusive Remedy see Confidentiality Agreements.
• Include a disclaimer that this the “sole and exclusive”
remedy for indemnity claims against the developer.
Staffing
Because software developers often rely on key employees
Limitation on Liability who have a specialized skillset or expertise, customers
A limitation of liability clause generally limits the: typically require developers to commit to assigning specific
individuals to the project. Developers should:
• Types of damages recoverable by a party (e.g., special
damages, consequential damages or lost profits) • Refrain from committing specific personnel exclusively to
a project
• Amount of damages recoverable by a party (e.g., a fixed
amount, a multiple of fees paid, or an amount recoverable • Consider limiting the circumstances under which the
only over a specific period of time) customer can require the removal and replacement of
a particular project member (e.g., repeated offenses or
The developer faces more exposure to risk through its own constant poor work performance)
conduct and less exposure to risk through the conduct of
• Avoid providing a specific number of employees that
the customer. As a result, the developer should consider a
will be staffed on the project to maintain flexibility in
unilateral limitation of liability provision that:
undertaking multiple projects at the same time
• Prohibits the customer from recovering any indirect
Draft supervisory mechanisms to facilitate effective
damages from the developer (e.g., speculative, incidental,
coordination and communication between the parties.
punitive, and consequential damages)
Common mechanisms include:
• Caps the developer’s potential liability to a fixed amount,
or a certain amount of revenue generated over a fixed • Management committee comprised of senior employees
period of time (e.g., fees paid over the past 12 months, or and executives from each party, which oversees the
fees paid under the SOW giving rise to the claim) overall development process
• Sets a statute of limitations on recoverable damages (e.g., • A decision tree for managing and escalating day-to-day
prohibit any action brought more than 12 months after questions, disputes, and unforeseen issues
the initial event giving rise to the alleged liability) • A project manager designated by each party to manage
the decision-making process
For complex projects, consider including: • When an employee voluntarily terminated their
employment not less than a certain number of days prior
• A roster of directly responsible individuals (DRI) (i.e., a
to the solicitation (usually 90 days, but for specialized
list of individuals directly responsible for managing the
employees or key management you should set a period of
completion of specific tasks) as an exhibit
180 days)
• The names and contact information of individuals who will
act as the official points of contact for each party
• The names and contact information of individuals who are Termination
responsible for responding to specific types of inquiries The scope of termination rights and consequences of
termination are critical for each party. Developers should
Insurance take great care in drafting and negotiating the customer’s
termination rights narrowly, with particular focus on the
Developers often agree to maintain the following customary following:
business liability insurance for at least the duration of the
• Limiting the customer’s termination triggers to material
software development agreement:
breach and insolvency (and agreeing to termination
• Commercial general liability insurance covering personal for convenience only if the customer agrees to pay a
injury and property damage caused by the developer termination or exit fee)
during any on-site work
• Defining the scope of licenses (if any), termination
• Automobile insurance for vehicles owned or operated by assistance obligations and either terms that survive the
the developer termination
• Worker’s compensation in an amount required under
the laws of the states where the developer provides the
services
Customer Responsibilities
To help perform the services in a complete and timely
• Errors and omission insurance
manner, developers usually include a provision detailing the
• Excess liability insurance (also known as Umbrella customer’s obligations to cooperate with and to assist the
Insurance) developer during the project. Examples include:
• Cyber liability insurance if the software interacts with
• Designating a team project coordinator who is
or stores any of customer’s Personally Identifiable
knowledgeable about the project and authorized to make
Information (PII), or otherwise be used in mission-critical
binding decisions for the customer
applications where third-party intrusions or outages could
cause significant economic loss • Access to the customer’s staff, facilities, working space,
and equipment
If you are providing any services at the customer’s premises,
• Access to computers, software, data, and customer
you should make this provision mutual to cover any damage
information (even if operated by a third party for the
sustained to your property or injury to your employees.
benefit of the customer)
• Securing any necessary third-party authorizations to
Non-solicitation undertake the services
This clause generally prohibits a party from hiring any of the • Backing up all data, files and information prior to
other party’s employees working on the project without that the commencement of any work, and assuming sole
party’s written consent during the term of the agreement responsibility for this content
and for a specific period of time after termination (usually
• Preparing the customer’s systems for the implementation
12 months). Larger companies usually seek to include the
and deployment of the software
following exceptions to help make compliance practical:
In situations where the customer uses or allows access to the
• When an employee responds to a public advertisement or
software outside of the U.S., the developer should include a
job posting not specifically targeted to the other party’s
provision requiring the customer to comply with all applicable
employees
U.S. export laws and regulations. In addition, consider
• When an employee was involuntarily terminated by the including a requirement for the customer to comply with all
original employer prior to the solicitation import/export laws of any foreign jurisdictions when using or
allowing access to the software.
Source Code Escrow
Parties to a software development agreement usually execute
a source code escrow agreement to protect the customer
in the event the developer is unable to continue to develop,
or later to support, the software. Under this agreement, the
developer provides copies of the software source code to a
third-party escrow agent as it is being developed. For a more
detailed discussion on source code escrow arrangements,
see Software Source Code Escrow Agreements: Drafting and
Negotiating the Agreement.
Sonia Baldia, Partner, Kilpatrick Townsend & Stockton LLP
Sonia Baldia brings business and technology savvy to her global practice, which encompasses U.S. and international commercial, transactional,
and intellectual property (IP) expertise across multiple industries including life sciences, banking and finance, healthcare, energy, information
technology (IT), manufacturing, and software. She advises on a wide array of sourcing, technology, and other commercial transactions and helps
companies navigate legal issues raised by data, emerging technologies, and digital transformation, both on the buyer and provider side. Sonia
routinely advises clients on IP strategy, management, and monetization arrangements, leveraging her technology background and registered
patent attorney credentials.
In addition to her U.S. bar admissions, Sonia is also qualified to practice law in India and she leverages that combined experience on behalf of
clients in India-related matters.
Prior to rejoining the firm, Sonia was a partner in the Washington, D.C. office of an international law firm where she was part of its technology,
IP, international commercial, and India practices. Sonia has also served as a consultant to the U.S. Agency for International Development (USAID)
and the U.S. Department of Commerce in Washington, D.C. where she advised foreign governments on IT, telecom and IP-related development
projects. She has also served as associate professor of law, teaching courses in IP, technology transfer, and corporate law.
Sonia was ranked in 2022 and prior years by Chambers USA: America’s Leading Lawyers for Business in Technology & Outsourcing and in
2020, she was recognized for her expertise in outsourcing deals involving India and her broader technology expertise. She has also been
consistently recognized by Legal 500 amongst the leading practitioners in its technology, media, and telecom outsourcing category (2009-2022;
and as a “New Generation Partner” in 2020 and a “Leading Lawyer” in 2021-2022). Sonia was recognized in The Best Lawyers in America®
for Information Technology Law in 2022 and 2023. She is a frequent speaker and writer on digital transformation, global sourcing, IP, and
technology topics and she has authored many articles and book chapters.
This document from Practical Guidance®, a comprehensive resource providing insight from leading practitioners, is reproduced with the
permission of LexisNexis®. Practical Guidance includes coverage of the topics critical to practicing attorneys. For more information or to sign
up for a free trial, visit [Link]/practical-guidance. Reproduction of this material, in any form, is specifically prohibited without written
consent from LexisNexis.
[Link]/Practical-Guidance
LexisNexis, Practical Guidance and the Knowledge Burst logo are registered trademarks of RELX Inc.
Other products or services may be trademarks or registered trademarks of their respective companies. © 2023 LexisNexis