close Icon
In this article:
Share It On:
Category Software Development
Date
software development agreement Whether you’re a service provider or a service seeker, having a software development agreement is non-negotiable. But how do you draft it right? This guide walks you through it!

Think a software contract is just legal mumbo-jumbo? Tell that to Topalsson GmbH, a company that lost €5 million after losing a legal battle against Rolls Royce. The case is calledTopalsson GmbH v Rolls-Royce Motor Cars Ltd [2023] EWHC 1765 (TCC)’. 

The court battle between both parties resulted from an unfulfilled software development agreement to deliver cutting-edge 3D visualization tools for Rolls-Royce’s Ghost model.

The case highlighted missed milestones, conflicting methodologies, and termination disputes involved in the project. The result? Rolls-Royce was awarded €5 million in damages after Topalsson failed to meet critical ‘Technical Go-Live’ deadlines.

Despite Rolls-Royce losing over €20 million, the liability cap in their contract kept damages in check—proving how a solid agreement can safeguard and set limits.

Such disputes underscore the critical need for clarity, precision, and accountability in software development contracts. Whether disagreements over timelines, scope, or deliverables, the lack of a solid agreement often jeopardizes a possible collaborative success and turns it into a financial and reputational nightmare.

This blog delves into the nuances of crafting a robust software development agreement that protects both clients and developers. 

But first, let’s define the foundation!

What is a Software Development Agreement?

More than just a legal responsibility, a software development contract is the backbone of any successful project. It serves as a foundation defining roles, responsibilities, and the roadmap of the entire project.

An agreement of such nature clearly states rules for all involved parties and is recognized by legal entities once signed. Therefore, certain clauses influence the framing of a custom software development contract.

Once implemented, the software development agreement functions as the protector of all involved parties. From defining deliverables to outlining timelines and ownership rights, the agreement ensures everyone involved is on the same page—long before the first line of code is written.

However, to clearly understand a software development services agreement at its core, we will have to understand its components.

Outsource to Expert Software Development Companies

Characteristics of a Software Development Services Agreement: The P.R.O.J.E.C.T Framework

We definitely feel like geniuses coming up with a term that isn’t just clever but easy to remember as well: The P.R.O.J.E.C.T Framework. It refers to the roadmap of a perfect software development contract. 

Here’s the breakdown!

P is for Purpose

Nail down the why. Clearly define the purpose of the agreement: what’s the end goal, and what’s everyone collaborating on? This will not just be about the deployment of the mentioned software but also cover specific requirements such as the features, target audience, target problem, and the intended outcome.

R is for Regulations

The power of a software developer contract lies in the regulations that cover it. So, while framing it, you need to do thorough research on legalities and compliances that can add authority to the agreement. You can take compliances like GDPR, HIPAA, and WCAG into account if your software demands them.

O is for Ownership

While preparing the custom software development contract, you need to define who owns what. Simply, your contract will be a rulebook describing the responsibilities and authorities of the parties involved. It will cover IP rights, deliverables, and much more. Additionally, the agreement should outline how ownership transitions, if applicable. 

In parallel, it should ensure there are no ambiguities about licensing or future usage rights. This clarity prevents disputes and guarantees everyone knows their role in safeguarding the project’s outcomes.

J is for Jurisdiction

Jurisdictions are where the court battle happens. Jurisdictions are also where laws included in the agreement are defined. In other words, Jurisdiction refers to the country’s or state’s legal system, which will be followed if things go south. This is declared when drafting the contract for the transparency of all involved parties. 

It should also include the dispute resolution process. Will issues be handled in court, arbitration, or mediation?

E is for Expectations

Software development contracts are signed with some expectations in mind. Therefore, setting them clearly beforehand should be the priority. Define what is expected from all stakeholders in the process, from clients to vendors. 

Expectations will also cover the quality that you are looking forward to in your project. Beyond that, it will roadmap benchmarks that define the standards the whole project needs to meet. There could be some milestones as well, such as the ones where you review codes. 

Once all that is done, you will need to focus on What if? To simplify, what we mean is to think about what will happen if expectations are not met. How will you keep people accountable, what will be the consequences, and what will the impact be? 

Outlining these details keeps everyone accountable and minimizes finger-pointing later. Remember, a well-drafted expectations section is your antidote to miscommunication.

C is for Collaboration

Software development isn’t a solo endeavor. So, you need folks who can streamline and align your vision well. Find people who can get into the sync of the symphony you have in your mind for the project you want to build. 

Think about everything: How will teams coordinate? Will they follow an Agile, Scrum, or Waterfall methodology? What are the feedback loops? Having collaboration mechanisms in place ensures seamless workflows, prevents bottlenecks, and fosters a productive working relationship.

Also, prepare a pipeline of communication tools that will keep your team in touch, especially if they’re not under the same roof. Even if they are, all official communications should be documented well, and such tools can help. When collaboration is clearly defined, the project stays on track, and potential misunderstandings are significantly reduced.

T is for Timelines

Each layer defined in the software developer contract should have a timeline. It could be a milestone, a deadline, review cycles, or maybe all three. To best define timelines, break down the project into layers that include software design, development, testing, and deployment. 

Once done, assign each layer a logical timeline. The timeline will vary based on what your project requires. Here’s the catch, though: always stay prepared for unexpected contingencies. So, plan timelines that take all kinds of possible hustles and bustles into account. 

This will result in a well-planned timeline that also tackles unexpected incidents, so you get a smooth development process. A well-planned timeline not only ensures smooth progress but also builds trust by demonstrating a commitment to meeting agreed-upon deadlines.

Types of Software Development Agreements

Not all software development projects are equal in nature. Depending on their purpose, the type can vary. The best type of software developer contract template that you need for your project can be based on the scope of the project, goals, and relationships between parties. 

For a better understanding, here’s a breakdown!

Fixed-Price Agreements

The nature of this software developer agreement is very static. You simply get a quotation from the service provider and shake hands on it if agreed upon. The so-called ‘no surprise’ contract doesn’t change irrespective of how many coffees your developers will require or how long the project takes. 

Once signed, the deal has been made. A warning, though, is that if the scope creeps up, things can get messy.

Fixed-Price Incentive Fee (FDIF) Agreements

The only difference between fixed-price and FDIF agreements is that FDIF agreements are made with contractors. You pay the contractor the promised amount, irrespective of how much they have paid to the team that built your project. The only condition is that your requirements, as defined in the contract, should be met clearly.

Time and Materials (T&M) Agreements

This model is very flexible. So it’s best if you have the backup cash. T&M agreement is more like a ‘pay-as-you-go’ model. Upon signing this agreement, you will pay for the consumption of resources by your project, including the workforce, number of hours, development tools, third-party software integration, APIs, licenses, security tools, etc. If you want to ensure your software keeps up with software development trends as they evolve, this is the best agreement to adopt.

Dedicated Team Agreements

This is where you lock in a dedicated team for your project. The agreement gives you a team of experts who will solely work with the aim of achieving your software goals during the mentioned tenure. There are plenty of perks to this. 

For instance, it saves them from running between tables to discuss different requirements with different clients and mixing up everything. More perks? Well, consistent collaboration and smooth communication can be counted. But you might have to pay more.

Retainer Agreements

This agreement makes teams accessible in real-time. The client pays a regular fee to ensure the development team remains available for the work at any point in time. Such types of software development agreements are signed to ensure timely updates are done, fixes are made, and new features are added if required. For businesses with evolving requirements, it’s a lifesaver.

Outsourcing Agreements

Software outsourcing contracts help make software development outsourcing a smoother job. While outsourcing your project, such an agreement can help you set proper conditions defining the costs, timelines, and privacy of the project. 

Outsourcing is often done for cost-efficiency-related reasons, such as having a contract ensure all conditions while costs and timelines are static throughout the project.

Non-Disclosure Agreements (NDAs)

Well, an NDA might not be a dedicated software development agreement, but it still empowers your original one. An NDA is signed as a sidekick of your contract that ensures the confidential information remains confidential. Whether it’s your brilliant app idea or the secret sauce behind algorithms, this agreement ensures everyone is tight-lipped.

Maintenance and Support Agreements

Once the software is built, the job doesn’t get done there. This agreement ensures the developer will remain available to handle updates, fixes, and other dynamic needs that could be required after the software has been deployed. Consider it an extended warranty given to your digital product.

Hire Fintech Software Companies for Your Project

How to Draft a Software Development Agreement?

To Draft an agreement, you need to break down stages based on the hierarchy. Each stage will require a significant amount of dedication and time to ensure your agreement is as impactful as possible. But it’s not only about the impact, is it? An agreement also plays a critical role in protecting your project.

Here’s how you can ensure you are drafting a software development agreement that will become the legal guardian of your project.

Define Project Timelines

A timeline of the software development project covers milestones and deadlines for the phases involved. It ensures both service providers and service seekers are in agreement regarding milestones and expected deadlines. The section should outline:

  • Start and end dates of the project.
  • Milestones are defined for each phase with respective deadlines.
  • Review and approval timeframes for each phase achieved.
  • A schedule dedicated to testing, debugging, and final fixes.
  • Clauses describing the buffer periods that can be given to the development process
  • Buffers to tackle unexpected delays.
  • Consequences of missing deadlines or early termination of the contract.

Scope of the Project

A clearly defined scope can eliminate any possibilities of scope creep. On top of that, all parties involved get clarity on their respective goals as well. Here’s how you can define scopes in a software developer agreement.

  • List deliverables that cover modules, software components, backend access, documentation, etc.
  • Describe features that are expected from a software project.
  • The software development contract agreement should also discuss the procedure for changes in scope.
  • Describe technological requirements that would cover programming languages, compatibility requirements, frameworks, and even platforms.
  • Cover security measures and standards to apply to the software development process.
  • Integrate specific UI and UX requirements.
  • Discuss any specific training sessions or resources for training for the digital product.

Define Quality Milestones

A software development agreement should describe expected quality criteria as well. The agreement would include agreed-upon standards along with features and visual standards needed in the software. 

To get in deeper, here are some quality standards that you should discuss in a software development agreement checklist-

  • Define features, functionality, and scope of the software requirements.
  • Describe software testing methods and tools.
  • Address the process involved in finding bugs and rectifying them.
  • Describe performance warranties that specify the expected conversions and performance within a set period after project delivery.
  • How will updates and maintenance of the software be deployed in the future to upgrade or fix it?
  • Specify benchmarks and performance metrics, scalability standards, loading time, response times, etc.
  • Discuss the target hardware requirements of devices where the software is supposed to be deployed.
  • Describe the acceptance criteria that will be used to finalize the delivery of a software product.

Clarify Payment Conditions

Defining how the payment will be made is critical for the completion of a software development contract. The contract will discuss payment milestones, hourly rates, and other additional costs that might occur during the development process. 

Payment conditions will also cover clauses that apply in case any changes in software development costs are made during the development process. Also, specific payment terms, such as PCI DSS-supported payment methods, should be defined. Beyond that, the indemnity clause for software projects will also fall under payment conditions to ensure both parties are satisfied.

This is how you can describe payment conditions in the contract:

  • Describe the payment schedule for each milestone in the development process.
  • Clarify payments under fixed costs vs. hourly rates. 
  • Include the currency in which the payment will be made.
  • Cover payment modes, payment gateway, and invoice procedures, and describe the template as well, if needed.
  • Include late payment penalties and dispute resolution clauses. 
  • Describe how to settle payments in case of currency value fluctuations.
  • What happens if the contract gets terminated?
  • Define tax obligations and whether they’re included in the final cost.
  • Discuss any additional charges that might occur while building the software.

Define Intellectual Property Rights

Clauses that discuss the intellectual property rights of a software development project include ownership conditions, trademarks, trade secrets, and copyrights. These clauses are specifically designed to protect software characteristics from getting stolen.

The section defining intellectual property rights should contain-

  • Clauses to discuss the usage of third-party libraries, open-source components, frameworks, and other such properties.
  • Conditions of transferring intellectual property rights to the client, including conditions of the process.
  • Outlines of the usage of software and its properties for involved parties, whether these parties are software development companies themselves or the client.
  • Clauses to protect the information, trade secrets, and product strategy shared with teams of developers.
  • The intellectual property segment should clearly define who the owner of the software being built is.

Expand the focus on the Termination Clause.

While some termination clauses are covered above underpayments and timelines, having a dedicated segment to define termination-related clauses can help better safeguard your project from getting ditched in between or in cases where you feel the project isn’t going in the right direction and want to terminate the contract yourself. 

But if you’re a service provider, you get to ensure your efforts are not wasted midway through the termination of the contract.

These terms can come in handy in situations where-

  • The client party has not received the quality that was initially promised.
  • Or if the client is changing expectations or strategies during the development process.
  • The client has not fulfilled payments of milestones completed.
  • The vendor exceeds deadlines during the development process.
  • If any party, vendor, or client goes bankrupt and cannot continue with the project, it is possible that the contract will be terminated.
  • If the vendor party is not performing well and missing milestones significantly, it can be a reason why the software development contract gets terminated.
  • Parties involved in the development of the project agree that it is in their best interests to terminate the contract.
  • Both parties have any dispute that can not be resolved through negotiations, mediation, or arbitration.

Describe the Rights of the Vendor

A software development services agreement is supposed to protect clients as well as the vendor. There can be clauses discussed in an agreement covering different phases that protect the rights of a vendor. 

These rights of the service provider can be:

  • Payment and compensation-based clauses that would describe the rights of the service provider in a software developer agreement.
  • Property rights of tools or libraries used by the development service provider while building software.
  • The right to negotiate changes proposed by the client in the middle of the development process.
  • The right to have clear project requirements, quality standards, and client scope.
  • Right to access necessary information and resources from the client to build the software.
  • The right of dispute resolution describes the process that would cover the reasonable process of solving disputes.
  • If the client fails to meet the obligations discussed or breaches the contract, the vendor has the right to terminate the agreement.
  • If mutually agreed in the contract, the vendor can display the project in their portfolios.

General Rights of the Client

Being the ultimate receiver of the project and someone who is investing lots of money, the client has several rights mentioned in a software development contract agreement. You can include them to safeguard the client side of the project.

Common instances:

  • The client is entitled to a project that meets the agreed-upon terms.
  • Clients have the right to full transparency on technologies, features, and guidelines.
  • Quality support must be provided as per the agreement.
  • A clear timeline for project completion is a client’s right.
  • Clients can request access to the software’s source code.
  • Confidentiality must be upheld for all shared information.
  • Clients can hold vendors accountable for breaches, delays, or contract violations.

Clearly Describe Compliances, Governing Laws, and Jurisdictions

To settle disputes or to hold parties involved in the project accountable, a software development service level agreement should cover the jurisdiction where proceedings are going to take place. 

But beyond that, it should also take compliances into account, especially if the software is focused on industries like fintech, healthcare, or any other where sensitive data is critical.

Here’s what you need to take care of while considering legal obligations and compliances for your contract:

  • Specify laws applicable on the basis of the state’s or country’s legal system.
  • Outline the dispute resolution along with details such as jurisdiction, arbitration, or court proceedings.
  • Consider compliances like GDPR, HIPAA, CCPA, WCAG, etc., wherever applicable, and define clear consequences of violating them in the final project.
  • Define jurisdiction with details of legal venues for dispute resolution.
  • Define contractual obligations to ensure both parties understand their legal responsibilities.
  • Address international considerations by specifying how differing legal systems will be reconciled.
  • Include compliance audits to allow periodic reviews for legal and regulatory adherence.

Best Practices to Prepare a Custom Software Development Agreement Document

An agreement between the vendor and client parties should be carefully drafted to protect the rights of both involved parties. There are certain best practices to implement while drafting such a contract. 

These practices can future-proof your project’s development against possible disputes. 

So, here’s an overview:

Seek Expert Legal Assistance

A comprehensive software developer agreement should be reviewed by someone who knows the laws well. The reason is that even minor oversights can lead to costly disputes. To ensure the contract is comprehensive and legally sound:

  • Engage a legal expert with experience in tech contracts to draft or review your agreement.
  • Ensure the document aligns with regulatory requirements, laws, data privacy standards, etc.
  • Implement jurisdiction-specific requirements in the contract to avoid conflicts with local or international laws.

Use Clear and Concise Language

Simple language can trim down the complexity of legal documents, leading to fewer misunderstandings. To avoid any possible misinterpretation, you can:

  • Use plain and precise language for all parties to understand with ease.
  • Avoid legalese or technical jargon that might confuse people.
  • Keep docs crisp and to the point. Clearly define all terms, deliverables, etc.

Maintain Detailed and Accurate Records

Prepare an accurate record of details and documents. Proper documentation can safeguard your rights in case of possible disagreements. To ensure transparency:

  • Keep an in-depth record of milestones, changes, approvals, and correspondence.
  • Store signed agreements, amendments, and invoices in a safe environment.
  • Regularly update the documentation to cover scope changes throughout the time.

Signatures and Stamps

A legally binding contract must be properly executed by authorities representing all parties involved. You need to ensure steps like:

  • Include signatures from all key stakeholders, such as C-suite executives, managers, legal advisors, etc.
  • Use notary seals or official software company stamps (if required legally) to add authority to the document.
  • Specify if electronic signatures are acceptable. There are tons of digital signature tools in the market- you need to specify the ones accepted.

Align the Agreement with Business Objectives

The contract should ensure that it covers legal obligations while also meeting business requirements. To ensure that:

  • Define how the project contributes to the long-term strategy of the company, revenue goals, and engagement.
  • Ensure that software scalability, integrations, and future updates are considered.
  • Identify any dependencies on third-party services that could impact business continuity.

Address Open-source and Third-party Software Usage

There are tons of AI APIs, chatbots, development frameworks, etc. that exist and can be used as open-source. If there are any restrictions upon using them, make it clear in your document. To prevent possible complications:

  • List all third-party dependencies and their respective licenses.
  • Clarify whether open-source components will be modified and how they will be managed.
  • Ensure compliance with open-source licenses (MIT, GPL, Apache, etc.) to avoid legal disputes.

Make Communication and Reporting Guidelines Clear

It is critical to ensure that communication between involved parties in a software development contract is transparent with each other. This can help the project remain on track. Here’s how you can do it:

  • Define how project updates will be delivered through emails, meetings, calls, etc.
  • Specify specific communication tools or project management software that can help.
  • Outline escalation steps in case of issues, delays, or lack of responsiveness.

Establish Project Handover and Knowledge Transfer Protocols

Once the project is done, a smooth handover will be required. You can set them beforehand to define what kind of information will be shared along with the project data. Here’s a short overview:

  • It requires detailed documentation, including user manuals and system architecture.
  • Ensure all source code, credentials, and intellectual property rights are transferred securely.
  • Define the vendor’s post-handover responsibilities, such as training or continued support.

Benefits of Drafting a Software Development Agreement

Preparing a contract between involved parties binds them into legal obligations, keeping the whole project streamlined. Some core benefits of software development services agreements are:

Risk Mitigation

A software development consulting agreement holds people responsible for any unexpected risks in the process, whether they are related to project delays, disputes, or even quality issues.

Scope Clarification

A contract defines the development process of software by defining costs, technologies, encryption tools, libraries, and other such resources. It spells out everything to ensure everybody gets to experience a drama-free development process.

Documentation for a Core Paper Trail

Another critical benefit of a contract is that it keeps the terms and conditions and other details of the project documented. These documents can be useful if there are disagreements or legal disputes between the parties.

Legal Protection

A legal document protects you when things don’t go as you had planned. This document can transcribe the exact role of each party involved in the contract, as well as make additional conditions transparent. Whether you’re on the side of service providers or service seekers, you get exact clarity by having a legal document in place at any point in time.

Reference Document

In case there are changes in the vendor team or the team monitoring the project from the client’s side, a contract can be used as the reference document to have clear insights into expectations. This helps parties remain on track without losing the progress of the development at all.

Government Authorization

A legal document also helps prepare software that meets the regulations set by the government of the market where it is supposed to be released. These regulations could be based on security standards, user data protection practices, verification data gathered by the software, and more.

Mistakes to Avoid While Drafting a Software Developer Agreement

Even with the best intentions, a bad contract can sink your project faster than buggy code. Here are the most common (and costly) mistakes:

Writing a Contract No One Understands

It is crucial to avoid vague language and jargon that can be misinterpreted in an agreement. In short, your contract should not be like a cryptic legal puzzle. Instead, it should deliver the message very clearly.

Not Reviewing Documents

Before signing the contract, not proofreading can cost you thousands. So, have a legal expert review in place to ensure your agreement is properly drafted. Because once the ink hits the paper- there’s no going back!

Ignoring Data Privacy Clauses

Want to know what’s worse than a project delay? A leaked project plan. If your contract doesn’t clearly protect intellectual property, trade secrets, and sensitive data, you’re asking for trouble.

Not Hiring a Legal Advisor

A legal advisor is important to ensure all clauses mentioned in the agreement are legally enforceable. A legal advisor can be hired permanently or on a freelance basis as well to help you implement legalities across all kinds of agreements.

Copying Development Agreements Blindly

It is crucial to customize the software development agreement template to meet specific project requirements. Whatever is applicable to one development team could be different than what is required by the other team. Therefore, it is critical to customize the agreement based on scope, requirements, etc, to meet specific obligations.

Ignoring Local Laws

Depending on the country or the state of parties getting into a software development services agreement, local laws that enforce a software development process can vary. Ignoring them can result in non-compliance and legal issues.

Software Development Agreement Templates

No two software projects are the same, but having the right contract template to follow should be non-negotiable, especially if you do not have core legal expertise. Whether you're sealing the deal on a fixed-price project, hiring a dedicated team, or setting up an NDA, these ready-to-use templates will save you time and legal headaches. Whether you are a software development company in India, the USA, the UK, or anywhere else, having well-structured contracts ensures clarity, protects your interests, and fosters smoother collaborations. 

Explore, customize, and get started!

Fixed-Price Agreement Template

Fixed-Price Incentive Fee (FPIF) Agreement Template

Time and Materials (T&M) Agreement Template

Dedicated Team Agreement Template

Retainer Agreement Template

Outsourcing Agreement Template

Non-Disclosure Agreement (NDA) Template

Maintenance and Support Agreement Template

Note: Please consult with a legal advisor before using any of these templates, as these are displayed here just for educational purposes.

Bonus Tip: Leverage Tech, but Don’t Skip the Legal Check!

We’re in 2025; lawyer apps and legal software are more advanced than ever. Platforms like DocuSign, LegalZoom, and AI-driven contract generators can help streamline the process, cutting down hours of manual drafting. Even GPT-based tools can assist in creating a customized software development agreement tailored to your project’s needs.

But here’s the catch: AI is not a lawyer. While these tools can help draft contracts quickly, they can’t replace human expertise when it comes to spotting legal loopholes, ensuring compliance, or tailoring the agreement to jurisdiction-specific laws.

Rule of Thumb:

Use tech to draft efficiently—but don’t rely on it unthinkingly.

Always have a legal expert review the final agreement before it’s signed.

Cross-check compliance with industry standards like GDPR, HIPAA, or CCPA if dealing with sensitive data.

Tech can speed up the process, but a lawyer secures the contract, and that’s a step you should never skip.

Wrapping It Up: Don’t Sign Blindly; Sign Smart!

A software development agreement is more than just a formality; it’s the boundary between legal nightmares and a smooth development process. Having a legal document in place ensures everything is going according to expectations. In case they don’t, it ensures involved parties know how to make up for that. But beyond all that, it ensures the privacy and integrity of your project- no matter how big or small it is

Think of it like this: Would you buy a house without a contract? No. So why would you invest in software development without a rock-solid agreement in place?

Now that you know how to structure, draft, and avoid costly mistakes, it’s time to take action. Whether you're a client safeguarding your investment or a developer protecting your work, make sure your agreement is bulletproof, clear, and legally sound.

Frequently Asked Questions

  • How do I draft a software development agreement?

    Image Image
  • What are contracts in software development agreements?

    Image Image
  • What are the different types of software development contracts?

    Image Image
  • What is an API agreement?

    Image Image
  • What are some agreements in SAP?

    Image Image
  • What is a scheduling agreement in software development?

    Image Image
  • What does GDPR mean in a software development agreement?

    Image Image
  • Why is there a WCAG clause in my software development contract?

    Image Image
  • What does CCPA stand for in a software development agreement?

    Image Image
  • What are some of the official resources for software developer contract templates?

    Image Image
Manish

Meet Manish Chandra Srivastava, the Strategic Content Architect & Marketing Guru who turns brands into legends. Armed with a Masters in Mass Communication (2015-17), Manish has dazzled giants like Collegedunia, Embibe, and Archies. His work is spotlighted on Hackernoon, Gamasutra, and Elearning Industry.

Beyond the writer’s block, Manish is often found distracted by movies, video games, AI, and other such nerdy stuff. But the point remains, If you need your brand to shine, Manish is who you need.

Uncover executable insights, extensive research, and expert opinions in one place.

Fill in the details, and our team will get back to you soon.

Contact Information
+ * =