Contract Law

Software development contract

Author: Boyana Boyadzhieva

Software is an important component of modern computer systems, allowing users to perform a wide range of tasks from basic operations to complex computations and interactions. Whether it is managing data, communicating with others, creating content or conducting business meetings, software plays a crucial role in facilitating and enhancing human activities, and as reality shows, has become an integral part of human life.

To strengthen the thesis of the above statement, we will ask you: can you imagine what our lives would be like without using different types of software? How would the working day go without operating systems like “Microsoft Windows”, web browsers like “Google Chrome”, video conferencing platforms like “Zoom”, productivity clouds like “Microsoft 365”? How would we communicate on a daily basis with our loved ones thousands of miles away from us without sofware messaging and video calling apps like “WhatsApp”? These examples are, of course, far from being the only ones – the technology landscape is constantly evolving, and as a result we are confronted almost daily with new applications, updates and technologies embedded in products that were previously thought to be impossible to computerise – today we can buy a fork, whose software monitors food intake and reminds us to eat more slowly (‘HapiFork’), as well as a lot of household appliances, such as a product called ‘PantryOn’, which uses shelves with a built-in scale to monitor the levels of goods placed on them and even generates a list of products to be purchased when a particular item is running low.

As we have already established, in today’s world, software development is a key aspect of business operations that drives innovation and efficiency across industries. The success of a software development project, however, depends largely on the clarity and legality of the contract governing the terms between the parties. Specific legal considerations must be addressed when drafting and executing software development contracts to ensure that the rights and interests of all parties involved are protected.

This article aims to provide a practical insight into the software development agreement, looking at its structure as well as key issues in drafting it to help prevent misunderstandings and disputes that may arise in the future.

What is a software development contract?

A software development contract is a contract to design, develop, test, install and deploy software. It outlines the terms and conditions of the project, including the scope of the project, reporting deliverables, milestones, payment terms, intellectual property rights, confidentiality and dispute resolution mechanisms.

Regulatory framework of the manufacture contract

By its nature, a contract for software development is a contract for manufacture regulated in Chapter Eight of the Act on Obligations and Contracts (AOC) (Article 258 to Article 269).

According to the definition in section 258 of the Act, namely “Under the contract of manufacture the contractor shall be liable, at his own risk, to manufacture something in accordance with the other party’s order, and the latter undertakes to pay remuneration“, we can conclude that it applies to a wide range of legal relationships, such as the construction of a building, the provision of a certain type of consultancy service or, as in our case, the development of software.

A contract for manufacture is a bilateral, consideration-based and informal contract:

  • Bilateral because it creates obligations for both parties: for the Contractor – to work something out, and for the Principal – to accept the work and pay for it;
  • Remunerated because the Contractor should be paid for the work;
  • Informal, because the AOC does not require a special form (e.g. in writing) for its conclusion. In this regard, it is advisable to have the contract of manufacture in writing as it eliminates misunderstandings that may arise in oral agreements due to explicitly worded terms. Furthermore, written contracts serve as evidence of the terms and conditions and create a sense of professionalism and seriousness about the agreement. In addition, mention should also be made of the restriction in the Code of Civil Procedure (CCP) which states that witness testimony contracts valued at more than BGN 5,000 are not admissible. In practice, this means that any contract of greater value must be concluded in writing.

Structure of the software development contract

The structure of a software development contract can vary depending on the specific needs of the parties, but they typically include several basic components that outline the terms of the project and govern the relationship between the parties. A comprehensive software development contract should contain at least the following structure:

  • Introduction;
  • General provisions and definitions;
  • Subject of the contract;
  • Lead times;
  • Remuneration;
  • Contractor’s rights and obligations;
  • Rights and obligations of the Principal;
  • Intellectual property law;
  • Confidentiality;
  • Product handover;
  • Product testing. Evaluation of manufacture;
  • Warranty period;
  • Ongoing maintenance;
  • Force Majeure;
  • Termination and cancellation of the contract;
  • Liquidated damages;
  • Final Provisions.

The content of the structure will be described in more detail in the lines below:

1. Introduction

This section identifies the parties entering into the contract, their addresses and managers (if the parties or any of the parties is a legal person). As already mentioned, a contract for the development of software is a contract for manufacture under the AOC and as such the parties to it are referred to as the “Contractor” – the one who will develop the software and the “Principal” – the one who ordered the development and who will pay remuneration for it. This section also usually adds the date on which the contract is made and the locality where the contract is made.

2. General provisions and definitions

Definitions of terminology used are added in this part of the contract to give clarity and a sense of definiteness to the contract. Definitions remove ambiguity and make contracts easier to understand. This section is an extremely important tool in contract interpretation.

3. Subject of the contract

Developing software is a long process and often requires thought and carefully selected information. Typically, the Principal provides information to the Contractor that describes its business objectives, what the role of the software will be in achieving those objectives, including what features and functionality it wishes to be integrated on the software, who the intended users of the software are, and how the users will use the software. Subsequently, together with the Contractor, compile a mutually agreed list of specifications that summarize how the software product will function as a whole to meet the business requirements of the Principal, such as software security requirements, user interface, data flow and storage, system interface (as stand-alone software or as integrated with another system), software and system response time, software portability, and data security and privacy considerations. These specifications will guide the Contractor in the design of the technical and operational features of the software.

It is this information that should be provided prominently in the subject matter of the contract. Since it is advisable to be as detailed as possible in order to avoid misunderstandings in the future, it is possible that the clause concerning the subject-matter of the contract should specify concise information on the terms of reference and refer to an annex which will be by its nature an additional and integral part of the contract itself, where all the technical specifications will be set out in detail in order not to weigh down the content of the contract itself.

4. Time limits

In addition to the above information, the Principal and the Contractor shall draw up a project schedule to be described in the contract. This includes the start and end dates as well as the milestones of the project. Having a schedule and a well-described process helps both parties to stick to them.

5. Remuneration

In software development contracts, the parties usually negotiate remuneration on a time and materials basis or at a fixed price.

Where compensation is based on time and materials, the Contractor shall charge the Principal on an hourly basis, as well as for any equipment and materials it purchases specifically to perform the Principal’s project.

In fixed price contracts, the Principal shall pay a fixed amount to the Contractor for services rendered, regardless of the time and materials the Contractor expends on the project.

It is also advisable to identify in this section any additional costs that may be incurred in connection with the production of the software and which the Principal will accept to reimburse. Often, the Contractor may require reimbursement for various types of costs, such as travel-related costs, communication costs (e.g. telephone), courier costs, etc.

In addition, the parties often agree that the Principal will pay an initial fee equal to a percentage of the final project amount, which amount must also be described in the contract.

Here it is also important to consider whether the Principal and/or its employees need training in the use of the software. This service may also be subject to additional remuneration, which should be described in a separate clause.

Once the pricing and other costs to be reimbursed by the Principal have been determined, it is then time to determine the method of payment.

Where remuneration is based on time and materials, the Contractor shall submit an invoice or itemised statement of the number of hours worked on the project and all costs incurred in connection with the project. The Principal shall make payment within a specified period from the date of invoice (e.g. 30 days).

Where the consideration is a lump sum, the Principal will normally pay
in instalments that are linked to the completion and acceptance of a product, set of products or in regular at regular intervals on a specifically defined payment schedule

6. Contractor’s rights and obligations

The main legal obligation of the Contractor under the AOC is to develop the software product commissioned by the Principal – in particular a software product defined in terms of technical and functional capabilities. The work must comply with all the requirements of the Principal and be fit for the intended purpose of the contract. If the purpose is not expressly mentioned and no specification is provided in the contract, the work shall be fit for its ordinary purpose or that purpose which follows from the usual standard imposed in practice. Unless otherwise agreed, the Contractor shall be obliged to produce the work ordered by his own means, and the Contractor shall be liable for the quality of the materials, respectively for defects in the work due to unsuitable or poor quality materials. If it is agreed that the Principal shall supply the materials, the Contractor shall notify the Principal that the materials are unsuitable or of poor quality.

In addition, the Contractor is obliged to deliver the developed software on time or in accordance with the agreed milestones in the schedule. If the work meets the required quality and is delivered within the time agreed between the parties, the Contractor shall be entitled to the agreed remuneration for the work as defined by the parties.

In addition to the statutory obligations, the parties shall be entitled to agree additional rights and obligations of the Contractor.

7. Rights and obligations of the Principal

The Principal has two main legal obligations under the contract for manufacture. If the manufacture meets the required quality and requirements and is delivered within the agreed time, the Principal is obliged to accept the manufactured product, in particular the software. Upon acceptance, the Principal shall inspect the work in its entirety and state its objections to the finished product, if any. Usually, in practice, the overall acceptance and handover procedure is accompanied by a so-called acceptance report signed by both parties, the meaning of which is evidential, namely that the software given in this case has been accepted without objection. It is recommended that the entire process of acceptance, testing and evaluation of the software be described in detail in separate sections of the contract. More information can be found in point 8 below.

The Principal’s second obligation is to pay the agreed remuneration to the Contractor within the time limits set out in the Contract after accepting the work without objection.

In addition to the statutory obligations, the parties are entitled to agree on additional rights and obligations of the Principal.

8. Product Handover and Testing. Evaluation of manufacture. Acceptance of the software.

Often in software development contracts, when the parties agree on the defined milestone ofthe project, they also define a list of “Deliverables” that the Contractor must develop and deliver at the end of each milestone during the contract so that the Principal can verify (test), approve and give the Contractor the green light to proceed to the next milestone. Therefore, it is essential that the software development contract contains an acceptance procedure whereby the Principal reviews and approves all deliverables for the relevant milestone before the Contractor proceeds to the next steps.

Typically, when the software is fully built, the Contractor provides everything produced, as well as all necessary documentation to the Principal for review and testing to ensure that the product functions in accordance with the specifics agreed in the contract. During testing, the Principal may discover programming errors or defects in the design of the software, so it is imperative that a section be set aside in which the Principal has the right to track and report any deficiencies, errors or defects discovered during testing and require their correction or repair by the Contractor until all technical problems in the software have been corrected and the software has been delivered in accordance with all requirements agreed to in the contract.

Of course, the Principal may require changes to the software that are not agreed at the initial stage of the relationship between the parties. In such a case, it is also advisable to include provisions that describe what the procedures are for requesting changes and how their impact on the project schedule and budget is assessed. This section shall also describe the means by which the Contractor will obtain approval for the work by the Principal.

9. Warranty period and ongoing maintenance.

Considering that it is a software product, which is a complex combination of instructions written in programming languages, designed to implement a specific function or result, it is quite possible that even after the evaluation stage, flaws and errors may occur that could potentially affect and at the same time jeopardize the activity of the Principal.

Therefore, in practice, when concluding such software development contracts, the parties involved negotiate warranty clauses. These clauses are intended to assure the Principal that the software product will be kept complete for a certain period of time, called the warranty period, during which the Contractor is obliged, in the event of certain defects or errors, to remedy them at its own expense.

It is important to emphasize that the warranty liability does not apply to the improvement of the functions and features of the software product, therefore it is recommended to include in the contract for software development clauses concerning the ongoing maintenance of the already created software product, as long as the Contractor offers such services.

The so-called “ongoing maintenance” clauses govern the relationship between the parties with respect to the addition of new features, the modification of existing features and functions, the correction of errors and inaccuracies that occur after the expiration of the warranty period, and the like.

10. Intellectual property rights

Often, clauses concerning intellectual property rights between the parties to a software development contract are ignored, and this in turn can pose a serious risk to the contracting parties.

Pursuant to Article 3(1)(1) of the Copyright and Related Rights Act (CRRA), computer programs, in particular software, are subject to copyright. As the contract for the development of software makes the software a work made to order, the copyright belongs to the author of the work, unless the contract provides otherwise. In the present case, the Contractor is the author of the software (if it is an individual whose creative activity resulted in the creation of the software or if it is a legal person within the scope of whose employment its employee created the software). Pursuant to Article 42(2) of the CRRA, unless otherwise agreed in the contract, the Principal is entitled to use the software without the Contractor’s permission only for the purpose for which it was commissioned.

Therefore, it is crucial to include clauses in the contract that clarify all intellectual property rights, namely:

  • Software rights and ownership;
  • Rights in the source and object code of the Software and all related
    documentation for the Software (including all intellectual property rights in such items);
  • Rights to the Contractor’s work product created during project (e.g. scripts, product concept, product list, internal software and data used for testing);
  • Rights to the developer’s existing work product used in the software development project;
  • All related copyrights, patents, designs, trademarks and trade secrets.

Depending on the specifics of the project, ownership of the software product created by the Contractor may be distributed in a number of ways including:

  • Ownership of the software product belongs to the Principal, who is also the owner of all intellectual property rights in the software;
  • Ownership of the software product belongs to the Principal, who is obliged to grant a non-exclusive license for use to the Contractor so that the Contractor can use the software only for certain purposes. As the license is non-exclusive, the Principal is free to license the software to third parties.
  • Ownership of the software product belongs to the Contractor, who is obliged to grant an exclusive license to the Principal for its use. In this case, the Contractor shall not be entitled to use or license the software to third parties.
  • Ownership of the software product belongs to the Contractor, who is obliged to grant an exclusive license to the Principal for its use. In this case, the Contractor shall not be entitled to use or license the software to third parties.
  • Ownership of the software product belongs to the Contractor, who is obliged to grant a non-exclusive license for use to the Principal so that the Contractor can use the software only for certain purposes. As the license is non-exclusive, the Contractor is free to license the software to third parties, in which case the Contractor shall not be entitled to use any ideas, trade secrets or comments made by the Principal during the development of the software;
  • Co-ownership between the Principal and the Contractor, where both parties own the software and may license it to third parties, subject to any contractual terms.

11. Confidentiality

Inevitably, during the course of the project, the parties will provide, exchange and disclose confidential information, so it is important that the contract contains clauses protecting confidential information that prohibit either party from disclosing or using it for purposes other than the scope of the project.

Confidential Information may be any information, written or oral, regardless of its nature, including but not limited to technology, methods of manufacture, test versions, financial data, samples, documentation, correspondence, equipment, inventions, know-how, trade secrets, and any other information relating to the disclosing party’s business and operations.

If the parties have entered into a separate confidentiality agreement or a trade secret protection agreement, we recommend including a provision in the contract that references the agreement already entered into.

12. Termination and cancellation of the contract

This section sets out the conditions under which either party may terminate the contract, including breach of terms, default, delay or other circumstances. It may describe the termination process and any associated penalties, consequences or obligations.

13. Final Provisions

In the final provisions, it is important to add clauses covering various aspects such as the applicable law, the modification of the agreement, the method of dispute resolution, which may include negotiation, mediation or arbitration, and any other legal or administrative details.

In conclusion, the software development contract serves as an important document that outlines the terms, obligations and responsibilities of the parties involved in the project. A well-structured contract provides clarity and protection for both the Principal and the Contractor, from defining the scope and terms of the project to establishing payment terms and intellectual property rights. By addressing potential issues upfront and creating a framework for communication and dispute resolution, a carefully drafted software development contract can help mitigate risks and ensure the successful completion of the software product.

Therefore, it is necessary for the parties to take a responsible approach to the settlement of their emerging legal relationship in connection with the creation of software by the Contractor and its implementation in the business activities of the Principal. That is why drafting a complete, legally sound and individualized to the parties’ wishes software development contract requires special attention and specialized knowledge, and it is best to turn to a lawyer to draft said contract. The team of the law firm of Krasimira Kadieva (Attorney) will be happy to assist you in drafting a software development contract.

This material prepared by Boyana Boyadzhieva aims to provide more information about software development contract. It does not constitute a legal opinion and cannot be interpreted as individual consultation on any concrete facts or circumstances. The advice of an intellectual property specialist should be obtained for specific questions and situations. For more information on the above-mentioned issues and individual consultations, please contact KrasimiraKadieva law office at 00359 882 308 670 or make an inquiry using the contact form on this website. Boyana Boyadjieva is a legal associate at the law firm. She holds a Master’s degree in Intellectual Property Law from the Queen Mary University of London. Prior to joining the team of the law firm, Boyana interned at the European Union Intellectual Property Office (EUIPO). Her professional interests are related to intellectual property, data protection, e-commerce, and contract law, and regularly attends conferences, practical courses, seminars, and webinars in these areas of law. She is fluent in English.

error: Content is protected !!