4 points to include in your contract with a software development company
What should a contract with a software house include? Find out how to agree on rights to the code, personal data, the timetable, handover of work and the rules for using AI in the project.
Internet Stars Team
·14 min read

A contract with a software house should clearly set out the scope and timetable of the work, the acceptance procedures, the rights to the software, data processing and the use of AI tools. Not every collaboration is a contract for specific work: this model applies to a predetermined outcome, whilst a contract for the provision of services may govern the performance of specific tasks over a period of time. Therefore, the answer to the question of what a contract with a software house should contain also depends on the model of collaboration. Establish these terms before the project begins to ensure the provisions align with its scope and to avoid ambiguity regarding changes, acceptance or the termination of the collaboration. In this article, you will learn about four areas requiring particular attention: personal data, rights to the code, deadlines for project phases, and programming using AI.
Key findings
- Set out the rules for the processing of personal data if the contractor is to process such data on your behalf.
- Set out in the contract who holds the rights to the programme and the terms under which you may develop it.
- Divide the work into stages, set deadlines, specify the handover process and establish the rules for making changes.
- Set out the rules governing the use of AI tools and the rights to the code generated by them.
Table of Contents
- Does an implementation agreement have to include a data processing agreement?
- Does the invoice transfer the rights to the software?
- Work schedule and flexible deadlines for each stage
- Intellectual property and rights to code created using AI
- How can Internet Stars help with the project?
Does an implementation agreement have to include a data processing agreement?
An implementation agreement does not always require the transfer of data. Include one when the contractor processes personal data on your behalf, for example, when testing an application using customer data. The terms of such processing should comply with Article 28 of the GDPR. The data processing agreement sets out what operations the contractor may carry out on the data whilst carrying out the project.
First, describe the subject matter of the contract: what system will be developed, what functions the implementation will cover, and what deliverables are to be provided. For a large project, include a general description and set out the details in the technical appendices. Specify the requirements, integrations, environments and documentation. Such provisions clarify the scope of the project and the obligations of both parties.
Combine the scope description with the schedule of stages and the acceptance process. If you are working using the Agile methodology, state that both parties have opted for this approach, and specify how you will approve subsequent tasks. Agree on the contact persons, the method for reporting progress and the procedure for making changes. This will ensure that additional features are not implemented without prior agreement.
Also list access to the data, repositories and tools required to use the system. Separate out proprietary code, contractor libraries, open-source components and documentation. Specify the property rights or licences for each element. In Poland, liability for non-performance or improper performance of an obligation is governed by Article 471 of the Civil Code, according to the Sejm of the Republic of Poland.
If the project involves artificial intelligence, allocate compliance responsibilities between the contracting authority and the contractor. The European Union points out that the AI Act provides for a maximum fine of up to EUR 15,000,000 or 3 per cent of global turnover for other infringements, such as those relating to high-risk systems. Specify who is responsible for specific activities relating to the system.
Set out clearly the warranty, guarantee, SLA and post-implementation support. Specify the scope of support requests, response and repair times, and service hours. Specify which faults are covered by the warranty and how to report faults. The SLA describes the service level, and the contract should also set out the rules for system maintenance following handover.
Does the invoice transfer the rights to the software?
No. An invoice documents the settlement, but does not in itself transfer the economic copyright to the software. A B2B collaboration with a software developer does not automatically transfer these rights either. You need an explicit contractual provision setting out the transfer of rights and its scope.
In Poland, the transfer of economic copyright must be in writing, otherwise it is null and void. The agreement should specify the fields of exploitation, i.e. the ways in which the software may be used. These are set out in Article 41(2) of the Copyright Act. Specify separately whether you are permitted to run the programme, make it available to users, modify it and develop it further.
A simple scan of a signed document or a non-qualified electronic signature does not satisfy the requirement for written form. A qualified electronic signature is equivalent to written form. You should also ensure that the moment of transfer of rights is clearly specified, for example, upon receipt of the software and payment of the fee. The invoice alone does not replace such a provision or a signature on the contract.
Specify the dedicated code, the contractor’s existing tools, open-source libraries and documentation. The contract may transfer the rights to the new code and grant a licence for the contractor’s own components. Indicate whether the licence is exclusive, how long it remains in force and whether it permits modifications. An exclusive licence must be in writing.
Moral rights, including the right of authorship, remain with the creator and are not transferable. The contract may contain a non-assertion clause, i.e. an undertaking by the contractor that, to the extent necessary for the use of the software, they will not exercise these rights against the client. A framework agreement should also apply these principles to subsequent commissions. When developing a bespoke application, ensure that the division of rights is clearly set out in the contract from the outset.
The development of a bespoke application begins with defining the scope of work and the rights to the deliverables.
Work schedule and flexible deadlines for each stage
Set out the project stages, their deliverables and the conditions for commencement in the contract. The deadline alone does not indicate when you will receive the graphic design, integration or test version. For each milestone, describe what the contractor will deliver and how you will accept the result. This ensures that the schedule becomes an action plan rather than a general statement.
Link the deadlines to dependencies on both sides. If the contractor needs access to the system or test data, specify who will provide it and when. You may agree that a stage is due 7 working days after the client has approved the work. Also note how a delay to such a deadline affects subsequent stages.
Agree on the frequency of reporting, the contact persons and the procedure for reporting delays. In the Agile model, the schedule may involve shorter cycles, and the scope of subsequent tasks may be determined by the team. Set out how the parties approve changes and when an addendum is required. This will ensure that new features do not quietly push back the implementation deadline.
Link the milestones to acceptance tests. Describe the acceptance criteria, the timeframe for testing and the procedure for reporting errors. Also specify how the parties are to proceed in the event of additional work. If the parties have agreed on contractual penalties for delays, specify which deadlines they apply to and the conditions under which they are calculated.
Include a procedure for updating the schedule in the event of changes to requirements or dependencies. Specify who approves the new plan and how the parties document the decision. Such a provision helps to distinguish between a contractor’s delay and a delay caused by waiting for materials or client approval. Align deadlines with the actual progress of the work, rather than setting fixed dates without specifying the conditions.
When planning deadlines, take into account how they relate to the scope of work and the acceptance process. The contract should clearly set out the scope of work, the project phases, the acceptance criteria, the procedure for approving additional work, and how arrangements are to be documented. You should also set out communication guidelines to ensure that agreements regarding the project stages are consistent. The contract with the software house should specify the scope of work, the timetable, acceptance criteria, the change management procedure, liability, copyright, access to the source code, confidentiality, data, the SLA, maintenance and the terms for terminating the contract.
You can set a deadline for submitting comments, for example 14 days from the date the deliverable is handed over. It is worth linking acceptance to agreed criteria, so that it is clear what outcome constitutes the basis for acceptance. A lack of clear rules for accepting work in an IT project can lead to a dispute over whether the project has been completed. You should therefore establish acceptance criteria and a procedure for accepting the results, as well as the process for requesting additional work. The contract may also specify the terms of warranty and support, allowing these to be included alongside the schedule and acceptance procedures.

Intellectual property and rights to code created using AI
Code generated using AI tools requires just as much precision in its specifications as the other elements of the project. Specify who is authorised to use the generated code snippets, who reviews them, and who is responsible for their implementation. Also specify whether the contractor is to disclose the tools used and identify the parts of the code that were generated with their help.
Do not assume that the rule concerning employees governs the relationship with every contractor. Section 74(3) of the Copyright Act applies to programmes created by employees in the course of their employment. It does not automatically govern B2B contracts. You should therefore specify in the contract whether the rights to the bespoke code will be transferred to you or whether you will be granted a licence.
Distinguish the project deliverables from the software house’s technological infrastructure. The contractor may retain rights to its own libraries, tools and know-how. The contract should specify these elements and the scope of the licence allowing the client to use the finished system. Also establish whether the licence permits the modification and further development of the code after the collaboration has ended.
Ask for a list of the open-source components used and their licences, even when the AI suggests a piece of code. This will enable you to clearly distinguish between bespoke code, external libraries and the contractor’s tools. Agree on who will assess whether the licences used are compatible with the intended use of the programme.
Please also describe what data can be passed to AI tools whilst working. For example, a ban on entering personal or confidential data reduces the risk of it being inadvertently disclosed. Specify who approves exceptions and how the use of the tools is documented. Establish these rules before work begins, together with the rules governing the transfer of rights and access to the code.
Agree on the rules governing AI code rights before the project begins. Discuss the project’s objectives with regard to the use of AI.
How can Internet Stars help with the project?
Internet Stars develops applications, online shops and automation solutions for businesses. Get in touch with the team if you have an idea for a system, online shop or automation solution and need support with the development work. Before starting the project, set out its scope and stages, the rights to the code and the terms of cooperation in a contract.
If you’re planning a tool tailored to your company’s processes, bespoke applications allow you to create solutions that meet specific needs. As you expand your online sales, an online shop can support your digital commerce. Automation can reduce the need to carry out repetitive tasks manually. For each of these projects, determine which features are to be developed and how they will be delivered.
Before starting the project, prepare a description of the objective, the users and the processes that the system is intended to support. Internet Stars uses this information when developing applications, online shops or automation solutions. Please also discuss how the project is to integrate with tools already in use. Such arrangements help to define the scope of work, the necessary integrations and the expected outcome, which will be recorded in the collaboration documents.
If your staff are going to be using the new solution, include training in the project plan to help them learn how to use it and integrate it into their day-to-day work. This is particularly important if the system changes the way orders, tasks or data are handled. In this way, software development and team preparation form a coherent process, rather than two separate activities.
Are you planning to develop an app, an online shop or an automation solution? Get in touch with Internet Stars and tell us about your project.
Turn your project assumptions into an action plan
A well-defined collaboration does not end with the signing of a document. Treat it as a point of reference for future decisions regarding the system’s development. When a new requirement arises, it is easier to assess whether it falls within the original scope or requires separate arrangements. This allows the project to progress without losing control over its direction.
If you’re still wondering what a contract with a software house should include, start by translating your business plan into specific project objectives. Internet Stars delivers digital solutions, supporting businesses in developing ideas for apps, online shops and automation. A discussion about the project will help to clarify its objectives and determine the next step.
Talk to Internet Stars about your project and take it to the next level.
Frequently Asked Questions
Is every contract with a software house a contract for specific work?
No, the name of the contract does not determine its type. What matters most is what the parties have actually agreed to. If the scope includes ongoing development work, describe its frequency, reporting procedures and the rules for completing tasks. For a contract relating to a single implementation, specify the deliverable that can be accepted.
What points should a client expect to find in a contract with a software house?
What a contract with a software house should include depends on how the project is carried out. Agree who, on your side, approves decisions and can change priorities. Include an escalation procedure in case the contact persons cannot agree on a solution. Also specify how the parties are to document the outcomes of meetings, so that changes to the scope are not based on verbal agreements.
Does the invoice transfer the rights to the software?
No. Treat the invoice as a settlement document, not as proof of the full chain of title for all elements of the system. Upon acceptance of the project, compare the modules provided with the documentation and the agreements regarding authorship. If several developers are working on the code, ensure that the documents provided by the contractor cover the rights required for the further development of each element provided.
Can a software house use subcontractors?
Yes, provided the contract does not rule out this possibility. Clarify whether the contractor will inform you of any change in subcontractors and how they will ensure the continuity of the work. It is also worth specifying who is responsible for handing over documentation, access rights and deliverables once the subcontractor leaves the project. This will ensure that a change in the team’s composition does not leave you without the materials you need.
Does an implementation agreement have to include a data processing agreement?
Not always. Before launching a project, map out the flow of information, taking into account data in the test environment, event logs, backups and support tickets. These areas are easy to overlook, although they may contain personal data. Such a map makes it easier to determine whether the contractor has access to this data and which regulations should govern their access.
Is it worth negotiating the draft contract prepared by the software house?
Yes, adapt the template to the risks specific to your implementation. In the contract with the software house, specify how to resolve any dispute regarding the compliance of the deliverables with the requirements, and who may approve acceptance in the absence of the company’s main representative. Also, go through the annexes and check that the references contained therein are consistent. For complex projects, consult a lawyer regarding the content.

An article by
Andrzej Klimek
Owner of Internet Stars since 2008
- What should a contract with a software house include?

Internet Stars Team


