Overview

A Software Development Agreement is between a Customer and a Developer, by which the Customer contracts for the Developer to create and deliver a specified piece of software. Software is copyrightable as literary, see 17 U.S.C. § 107(a)(1), and could also include patented processes, see 35 U.S.C. § 101.

The agreement will (hopefully) culminate in either with the developer assigning ownership of the developed software to the customer—including any copyright and patent rights in the software—or the developer granting a non-exclusive license for the customer to use the software. For example, it may be that the customer has an idea for software to improve its own internal systems, but  the customer has no intent, or capability, to produce and commercialize the software. If the customer does not care about whether other businesses, in the customer's industry or otherwise, can use the software, it may make more sense for the customer to simply get a non-exclusive license from the developer, leaving the developer free to commercialize the developed software.

Further complicating proceedings is whether the Uniform Commercial Code (UCC) should govern a Software Development Agreement. The UCC governs transactions involving goods, it provides default rules that govern contracts for goods where either the parties were silent regarding specific obligations under that contract, or where there is unresolvable uncertainty as to what the parties did agree. As mentioned, the UCC governs contracts for goods, it does not apply to services. The first issue is that software has been difficult for courts to classify, whether it is a good or a service. Licenses tend to be seen as services, while sales and assignments of software are more often treated as goods. Furthermore, a Software Development Agreement is a contract for a service, the development by the developer, that culminates in a good (depending on whether it is a sale or a license for the developed software). Whether a Software Development Agreement is covered by the UCC will depend on the case law of the relevant jurisdiction, and is something the parties will want to be aware of as they draft their agreement.

Key Issues in a Software Development Agreement:

  1. Assignment or License? Depending on the needs of the customer, the agreement can culminate in either an outright assignment of the developed software from the developer to the customer, or simply a non-exclusive license to the customer, with the developer retaining ownership, and thus the right to otherwise commercialize the developed software. Which party ends up owning the software should effect the payment due to the developer.
  2. Ownership and Background Technology. The developer will likely have a digital toolbox of subroutines, development tools, and other background programs and technologies that it uses during development, some of which can end up in the final product. If the agreement culminates in an assignment of rights to the customer, it should also include a proprietary rights or ownership clause that makes it clear the developer maintains ownership of all background technology. Otherwise, the developer’s future use of its own tools could infringe on the software it delivered to the customer.
  3. Delivery and Cure Period. Because of the complexity of software it is not uncommon for delivered software to not conform perfectly to the specifications. The developer will want more leniency in the consequences for delivering software that fails to perfectly conform to expectations. The agreement should allow the developer the opportunity to cure any mistakes or errors, within a reasonable time. On the other hand, the customer may want to limit the developer’s chances to cure, so that repeated failure creates grounds for termination.
  4. Non-Infringement. With an endless number of patents already protecting the tiniest details of software, and strict liability for patent infringement, there is a real risk that the developed software could infringe on an existing patent. There is also the risk of copyright infringement, though without strict liability for copyright infringement the danger is less. Still, the potential for infringement, especially patent infringement, makes the Representations and Warranties clause, and the Indemnity clause particularly important in a Software License Agreement, as the  customer should be confident it is receiving a non-infringing piece of software, and because the developer, rather than the customer, should be liable for damages incurred by any infringement claims by third parties.
Guidance
A Guidance has not been defined yet.
1. Overview

A Software Development Agreement is between a Customer and a Developer, by which the Customer contracts for the Developer to create and deliver a specified piece of software. Software is copyrightable as literary, see 17 U.S.C. § 107(a)(1), and could also include patented processes, see 35 U.S.C. § 101.

The agreement will (hopefully) culminate in either with the developer assigning ownership of the developed software to the customer—including any copyright and patent rights in the software—or the developer granting a non-exclusive license for the customer to use the software. For example, it may be that the customer has an idea for software to improve its own internal systems, but  the customer has no intent, or capability, to produce and commercialize the software. If the customer does not care about whether other businesses, in the customer's industry or otherwise, can use the software, it may make more sense for the customer to simply get a non-exclusive license from the developer, leaving the developer free to commercialize the developed software.

Further complicating proceedings is whether the Uniform Commercial Code (UCC) should govern a Software Development Agreement. The UCC governs transactions involving goods, it provides default rules that govern contracts for goods where either the parties were silent regarding specific obligations under that contract, or where there is unresolvable uncertainty as to what the parties did agree. As mentioned, the UCC governs contracts for goods, it does not apply to services. The first issue is that software has been difficult for courts to classify, whether it is a good or a service. Licenses tend to be seen as services, while sales and assignments of software are more often treated as goods. Furthermore, a Software Development Agreement is a contract for a service, the development by the developer, that culminates in a good (depending on whether it is a sale or a license for the developed software). Whether a Software Development Agreement is covered by the UCC will depend on the case law of the relevant jurisdiction, and is something the parties will want to be aware of as they draft their agreement.

Key Issues in a Software Development Agreement:

  1. Assignment or License? Depending on the needs of the customer, the agreement can culminate in either an outright assignment of the developed software from the developer to the customer, or simply a non-exclusive license to the customer, with the developer retaining ownership, and thus the right to otherwise commercialize the developed software. Which party ends up owning the software should effect the payment due to the developer.
  2. Ownership and Background Technology. The developer will likely have a digital toolbox of subroutines, development tools, and other background programs and technologies that it uses during development, some of which can end up in the final product. If the agreement culminates in an assignment of rights to the customer, it should also include a proprietary rights or ownership clause that makes it clear the developer maintains ownership of all background technology. Otherwise, the developer’s future use of its own tools could infringe on the software it delivered to the customer.
  3. Delivery and Cure Period. Because of the complexity of software it is not uncommon for delivered software to not conform perfectly to the specifications. The developer will want more leniency in the consequences for delivering software that fails to perfectly conform to expectations. The agreement should allow the developer the opportunity to cure any mistakes or errors, within a reasonable time. On the other hand, the customer may want to limit the developer’s chances to cure, so that repeated failure creates grounds for termination.
  4. Non-Infringement. With an endless number of patents already protecting the tiniest details of software, and strict liability for patent infringement, there is a real risk that the developed software could infringe on an existing patent. There is also the risk of copyright infringement, though without strict liability for copyright infringement the danger is less. Still, the potential for infringement, especially patent infringement, makes the Representations and Warranties clause, and the Indemnity clause particularly important in a Software License Agreement, as the  customer should be confident it is receiving a non-infringing piece of software, and because the developer, rather than the customer, should be liable for damages incurred by any infringement claims by third parties.
2. Discussion A Guidance has not been defined yet.