Business Lawyers in Columbus, Ohio
By Drew Stevens - April 14, 2020 - Technology & IP
Whether you’re the developer or the client, your first major
software development agreement can cover a number of key but confusing topics
and provisions. To address this, our Columbus, Ohio software attorney put
together this general checklist for software development agreements. While this
is not meant to cover each variety of a contract that you may see for software
development, we will touch on some of the major scenarios that you will
encounter, no matter which party you are.
Before reading this checklist, keep in mind that any good agreement
for software should be tailored for the specific work and development that is
occurring for each company. Having a good lawyer develop templates can
significant save time and legal fees. Just be sure that your templates are
structured in a way that allow for easy modifications to core areas that may
change from time to time – think fees, specifications, expenses and costs, and
scope of services.
Engagement, Change Orders, and Specifications
Typically, the first few sections of your software
development agreement are where the scope of services and specifications are
defined. These provisions will usually start with the parties agreeing to have the
customer hire the developer and to provide the services as stipulated in the
A. Project Managers
When the scope of development can require months or even
years, the preliminary sections may specify primary points of contact and
managers for both the developer and the customer. Where on-going development
work requires project-based, monthly, weekly, or even day-to-day feedback and
approvals, specifying key individuals who have authority to speak for a business
can eliminate questions and issues as to authorizations and decision-making.
B. Change Orders
Another key area to address is that of change orders and the
procedure for processing a change order. If you like to keep change order
procedures on the simpler end, a brief provision might state something like the
parties will evaluate the proposed change order and the change order will only
go into effect if mutually agreed upon.
A more thorough change order provision might stipulate
timetables for each party, the impact on fee increases or decreases, and
termination rights in the event a change order is not agreed upon. For example,
once received from the customer, the developer may have a period of 10 days to
either accept or reject the change order. If the change order results in a
certain increase in percentage in fees or the developer rejects the change
order, the customer may be able to terminate the agreement.
C. Software Development
Specifications and Milestones
A great software development agreement will include a
detailed list of development specifications. Rather than attempt to integrate
these directly into the agreement itself, it can often be easiest to “schedule
out” the specifications onto an attachment.
Depending on whether you’re the developer or the business,
you may want to consider breaking the specification up into phases and tying
the phases to payment milestones and deadlines. If you’re the customer, you may
also want to consider inserting a time is “of the essence provision” Conversely,
if you’re the developer, you may want a standard “customer delay” provision
that states that you are not responsible or liable for delays or missed
deadlines when such result from the customer delaying or failing to meet its
obligations under the contract.
2. Software Development
As we move deeper into the software development agreement,
we start to cover more specific issues inherent with software development, such
as the use of third-party materials, subcontractors, use of open source software,
and software documentation.
We typically define third-party materials to mean software
or products that are not owned by the developer or the customer. When development
includes a plug-in or service, a developer will typically transfer the license
agreement for that third-party service to the customer. If you’re the customer,
you may want to be very clear that the cost of any third-party materials is
including in your overall fees. You may even want a list of all third-party
materials that are included in your development work.
Subcontracting provisions can be as brief or as complex as
the parties desire. If you’re the developer, you may want carte blanche to
include subcontractors as you need them. If you’re the customer, you will want
to specify that the developer is still ultimately responsible for the actions
(or lack of action) of the subcontractors. Depending on how heavily regulated
your business is, you may also need to address background checks and access
credentials for the subcontractors.
C. Open Source Software
Open source software is software that is available pursuant
to an open source license, such as the GNU General Public License. Examples of
open source software include Linux, the Apache HTTP Server, and osCommerce.
Integrating open source software into development work can save hours, not to
mention cost. If you’re the customer, you may want a list of open source
software included in your work or the ability to pre-approve the use of open
While software documentation might not mean physical documents,
in the scope of a good software contract, it might mean that the developer is
including an operating manual, technical explanations, or just a general electronic
or PDF document on how your software works or how to take certain actions with
your software. If you’re the customer, you may want to stipulate in the
software development agreement how much documentation is included with your
3. Party Specific
As with any good legal services, your contract should be
tailored for the side that you’re on. If you are the customer, there may be a necessary
process or rights you may want. Same if you are the provider.
If you are the provider, there may be some key provisions related
to your customer that you need in your software development agreement. Some
software agreements will have a customer responsibilities section or
attachment. This can cover a variety of areas, including a list of customer materials
that the customer might need to get to the provider (think in terms of specific
data or information) and a list of operating environments requirements (think
specific browser or mobile platforms) that the customer needs the software to
Another key customer-related provision is a delay or failure
to deliver provision for the customer. If you’re the provider, you absolutely
want a clause that states that you are not responsible in the event the
customer is late in meeting key milestones or requirements. For example, if
you’re developing an app for a customer, and the customer drags their feet for
months on something critical like the overall user experience, this could
significantly impact your ability to code.
B. Provider Responsibilities
and Acceptance Testing
If you’re the customer, one of the number one
responsibilities for the provider that you want in the software agreement is
acceptance testing. An acceptance test provision will outline the procedures
for the developer and the customer to review the work product of the developers
and approve of a specific deliverable or the entire scope of the development
A standard acceptance test provision will have the provider
first give notice to the customer that a deliverable is ready for review. The
customer will then typically have a specific number of days, such as 05 or 10
days to review the deliverable. If the customer finds a material nonconformity
with the deliverable, the provider will then have a period of time to assess
and repair the issue. In the event the customer does not give notice of any
material nonconformity, then acceptance of the deliverable can be deemed to
It is important to note that you can insist on two rounds of
acceptance testing – pre-delivery testing and the actual acceptance tests.
Pre-delivery testing can typically require the provider to test each deliverable
to ensure that it meets the applicable specifications and does not contain any
harmful code, such as worms or viruses. For customers where the software will
be installed on local servers, pre-delivery testing can be crucial. Also, in
giving a testing assignment to a developer, note that the customer can have a
clause that gives the customer the ability to be present for pre-delivery or
actual acceptance testing.
4. Escrow of Source
Depending on the scope of the software development and the
length of time of the development, the parties may want to consider a source
code escrow provision. This would require the developer to execute a source
code escrow agreement, and the parties would a appoint a third-party escrow agent.
If certain circumstances occur, such as default or breach of the software
development agreement, the source code escrow agreement may require disbursement
of the source code to the customer. When the development consists of multiple
long-term projects or critical IP is involved, escrow of the source code may be
5. Support, Training,
Sometimes, in the haste to get to the finish line to finalize
an agreement, both provider and customer can easily overlook the expectations
for support, training, and maintenance. These ancillary issues can be crucial
around delivery time or in the first few months following delivery.
Development Warranty Period
First and foremost, does the software development agreement
include a warranty? A warranty period can range from 30 days to 90 days to one
year. During the warranty period, a developer might warrant that the software
will continue to function in material conformity with the specifications for
the software, in the software’s intended operating environment. A warranty
period might also include the developer providing maintenance such as security
updates or certain upgrades. Free technical support may also be included in the
B. Software Training
When the software development is complete, will the customer
require training? Training provisions for a software development agreement
might include how many training sessions are included with the software development.
Both parties may want to cover things like the extent of training, how many
customer representatives and employees will receive training, and whether the
developer charges for training sessions or a certain number of sessions are
included in the development pricing.
6. Indemnities for
Software Developers and Software Customers
One of the most important sections for a good software
development agreement is indemnification. A typical indemnification provision
will say something like one party shall defend, indemnify, and hold harmless the
other party in the event of certain scenarios.
With a customer-friendly indemnification provision, the
software developer would indemnify the customer in the event the developer
breaches any representation, warranty, or obligation contained in the software
development agreement. The indemnification provision might also contemplate
developer indemnification where the developer, or the developer’s
subcontractors, are negligent or grossly negligent.
A developer-friendly indemnification provision can address
the above scenarios in the customer context as well as some specific customer
concerns. For example, the software development might include the developer
handling customer materials and datasets. A developer-friendly indemnification
provision would have the customer indemnify the developer from the developer’s
use of the customer materials. The developer may also want to be indemnified
from the developer’s compliance with certain specifications provided by the
Which party ends up owning the intellectual property rights
for the software development must be addressed in clear detail in your
contract. Depending on the business model of the software developer, the
intellectual property rights for the development work might only be licensed to
the customer. With traditional development work though, typically the customer
will hold all right, title, and interest to the work product.
To the extent the developer is including some of the
developer’s own proprietary background technology in the development, be sure
that such background technology is included within the scope of the
intellectual property rights. If you’re the developer, you’ll want to be very
clear that these rights are solely made via a license.
Towards the end of the software development agreement is
where you will typically find what are referred to as “miscellaneous” or “boilerplate”
provisions. This section will cover standard contract concepts such as
independent contractor status/relationship of the parties, notices, contract
modification, and severability. While all of these miscellaneous provisions can
be important, there are two in particular that you’ll want to watch.
A. Assignment Clauses
An assignment clause will speak to whether a party can
freely transfer the contract to an affiliate or related party. Some clauses
will require mutual consent, others will just require written notice. If you’re
the developer, an assignment clause with flexibility can be especially
important if you think an acquisition is in the future.
B. Governing Law and
These clauses will specify, in the event an issue arises,
which state law applies and where a lawsuit can actually be filed. You’ll
obviously want the governing law to be that of your home state and the venue
where your business is. Where the developer and customer are in different
states, and the parties can’t agree on the governing law and venue, consider a
Lawyer Columbus Ohio
Software development agreements can be complex contracts
with a number of moving parts. Take the time to get them right the first time.
Do not hesitate to contact our firm if you think we can be of assistance.