Software Development Agreement — Risks for the Parties

Until quite recently, agreements between a developer and a client were perceived as an unnecessary formality, and the parties interacted at their own risk, sealing the deal with a handshake — in the best case scenario.

Today, software development agreements are standard practice, which is already a small victory. However, do not be too quick to celebrate. Uncle Google kindly offers countless template agreements, and what follows is like that old saying: “I made you out of whatever was available.” The result is Frankenstein agreements that create risks for both parties — risks that can come back to bite you.

So today we will talk about some important points to pay attention to when concluding software development agreements, in order to avoid potential risks in the future.

Customize Everything

A software development agreement typically contains a section with definitions of key terms: “deliverables,” “defect,” “system,” “resource,” and so on. This is particularly important in the event of a dispute under the agreement. It is advisable to customize this section as thoroughly as possible — do not be lazy about defining everything that matters in your specific case.

For example:

Deliverables means the software and/or any other parts (elements) of the source and/or object code developed by the Contractor during the performance of this Agreement that comply with the terms of the Technical Specification.

Subject Matter of the Agreement

To avoid the risk of hearing from the contractor: “that was not in the brief, that was not our task,” the scope of services to be provided under a specific agreement must be described in as much detail as possible. Do not limit yourself to a general formulation such as: “The Client instructs, and the Contractor undertakes to provide software development services.”

The specification of services may be set out either in the body of the agreement or in an annex:

The Parties have agreed that the scope, specific types (specification) of the Services, methods of their provision, timelines, and cost of the Services provided shall be mutually agreed in the relevant Annex to this Agreement, which forms an integral part of the Agreement, and by means of the System and other means of communication, including email.

The Financial Question

The client sleeps soundly when they know exactly how much money they will have to part with. For this reason, software development agreements quite often favor a fixed price for services (fixed-price contract). In this case, the client knows what costs to expect.

However, things are not as straightforward as they might seem at first glance. The fact is that software development and other IT products have their own peculiarities, and it can be difficult to precisely determine the full scope of tasks that need to be completed to achieve the desired result. Often, at an intermediate or final stage of service acceptance, the client realizes that adjustments are needed and of course wants them made. The developer, for their part, somehow does not wish to “tweak” or modify the code on a charitable basis. The result is a situation where either you pay more, or you make do with what you have.

To avoid such a situation, fixed pricing should be used when the project is not complex or non-standard. And even in that case, it makes sense to accept the results of the services and make payment in stages.

If the parties understand that at the time of concluding the agreement it is simply impossible to precisely define all the tasks that need to be completed to achieve the result — and that during the service delivery process those tasks may change or be supplemented — it is better to choose a different pricing model: billing based on actual tasks completed (Time & Materials pricing).

The payment models described above depend on the form of cooperation chosen by the parties — based on Agile or Waterfall principles. For more details, click here.

How to Accept Services?

The Parties have agreed that proper provision of the Services under this Agreement means delivery of Deliverables that do not contain Defects, by uploading them to the Resource.

This is a standard clause in an agreement, and this method of delivering development results is the most convenient. However, in order to avoid potential questions from tax authorities, it is also advisable to include in the agreement a provision for a Service Acceptance Certificate as confirmation of the transfer of results to the client:

Transfer of Deliverables by the Contractor to the Client shall be documented by a Service Acceptance Certificate, which shall be sent to the Client within ___ days after the Services are provided in accordance with the terms of the Agreement. The Service Acceptance Certificate shall be signed by the Client and sent to the Contractor within ____ days of receipt.

One should also not overlook the period between receipt of the results and payment, during which the client may notify the contractor of the non-conformity of the results received with the terms of the Agreement/technical specification:

The Deliverables shall be deemed received and approved by the Client if the Client does not notify the Contractor of any Defects and/or non-conformities with the requirements specified in the Agreement within _____ days and pays for the Services as described in the Agreement.

Or:

Payment for the Services in accordance with the terms of this Agreement shall constitute confirmation that the Client has no claims regarding the Services provided.

Note that if the contractor has not been notified within such a period that something is not acceptable, the client will not be able to rely on improper provision of services.

Transfer of Intellectual Property Rights

The author of the software is the developer, and pursuant to the Law of Ukraine “On Copyright and Related Rights,” their authorship right arises from the moment of creation of the object — that is, the corresponding program. However, the agreement must specify how and when the property rights of intellectual property in the created object are transferred to the client. There are two options — from the moment of creation or from the moment of payment. It is clear that each option is more favorable to one of the parties:

All exclusive intellectual property rights to the Objects shall be transferred by the Contractor to the Client upon full payment for the Services by the Client in accordance with the terms of the Agreement.

Or:

All exclusive property copyright in the Objects shall pass in full from the Contractor to the Client from the moment of creation of such Objects.

To avoid the potential risk of author’s claims regarding remuneration, it is essential to specify that the payment for services under the agreement includes the author’s remuneration:

The Contractor understands and agrees that the Contractor’s author’s remuneration for transferring to the Client any intellectual property objects created by the Contractor is included in the amount of the relevant service fees under this Agreement.

Confidentiality

A sensitive topic in every software development agreement. The client is concerned that the developer — who has been given access to the sacred secrets of their business — keeps their mouth shut.

In each specific case, the scope and content of confidential information must be clearly and thoroughly defined. We emphasize that it is inadvisable to define such information in the form of an exhaustive list — create a “fallback option” for yourself by adding “…or any other information designated as confidential by a Party.”

In addition to confidentiality provisions as part of the agreement, the parties may choose to conclude a separate agreement — a Non-Disclosure Agreement (NDA).

Do You Smell That? Mmm, Smells Like an Employment Relationship

Many employers, in order to shift the tax burden onto the worker and simplify the process of “parting ways” with them while actual employment relations exist, enter into a civil law agreement. A labor inspector may come calling, and the main thing is that they do not leave with a victor’s smile. However, when you are genuinely entering into civil relations for the provision of software development services, there is no need to worry.

A software development agreement should be packed to the brim with provisions that directly contradict the terms of an employment agreement.

First, include a provision on the contractor’s exclusive responsibility for paying all taxes and levies:

The Contractor warrants that they will independently pay all taxes, levies, and other mandatory payments on the remuneration paid to them under this Agreement, in the amounts, manner, and on the terms provided by applicable law.

Second, provide for the contractor’s right to engage third parties in the performance of the agreement:

The Contractor shall have the right to engage third parties in the performance of this Agreement only with the prior written consent of the Client, while remaining responsible to the Client for the results of their actions.

Third, specify the absence of any client obligations regarding social insurance, leave, sick pay, and so on:

The Contractor warrants that they have no claims against the Client under or in connection with this Agreement regarding payment of leave, social insurance payments, compensation related to loss of health or capacity to work, or any other payments other than those provided for in this Agreement.

It is also advisable to provide for penalties for improper performance of the agreement by the contractor:

The Contractor shall, for improper provision of Services, pay the Client a penalty in the amount of double the value of the Services accrued for the previous calendar month.

So remember: a reliable software development agreement is one developed specifically for you. Entrust this matter to professionals and sleep soundly.

Do you have any questions for the lawyers?
up to 500 characters
An error occurred
The request has been sent Thank you for your message! We will process it as soon as possible.

Articles on the topic