UFLEX
Telegram
All articles

Software Development Contract: What You Must Put in It

When ordering a program, website or CRM, many people treat the contract as a formality: they download a template, write in the amount and sign. The problems start later, when it turns out to be unclear when the work counts as done, who owns the code and who pays for new requirements. We look at which sections a software development contract should have, what to write in them and what to check before signing.

Important: this article is not legal advice. Check the form of the contract, tax and other legal matters in official sources and discuss them with a lawyer.

Why a contract matters especially in an IT project

Software cannot be touched with your hands. When you order furniture, you can see and measure the result. With a program, the parties' idea of "done" can differ greatly: for the client it means "employees have started working", for the developer it means "the functions from the TS work". That is why the contract and its appendices must make the result measurable.

Key sections of a development contract

Subject of the contract and scope of work

What is being developed is described not in general words but by reference to the technical specification. If the TS is an appendix to the contract, there are far fewer disputes about the scope of work. It is also useful to state here what is not included: filling the site with content, a mobile app, the cost of third-party services.

Stages and schedule

Split the project into stages and specify in an appendix the result and approximate deadline of each. State that the deadlines also depend on the client: if materials, access or feedback are delayed, the plan shifts.

Price and payment procedure

  • A fixed price or payment for the time actually spent.
  • Payments split by stages: a starting payment and payment after acceptance of each stage.
  • What is included in the price: design, testing, hosting on a server, employee training.
  • What is paid for separately: server rental, a domain, paid libraries, SMS and other external services.

Acceptance procedure

This section causes the most disputes, so be specific:

  • where the result is handed over: a test server, a production server, a repository;
  • within what period the client checks and gives comments (the parties agree on the period);
  • what counts as an error (a mismatch with the TS) and what counts as a new requirement;
  • whether a stage is considered accepted if no comments arrive in time;
  • how the acceptance certificate is issued.

Change management

New ideas along the way are normal. Set the procedure: a written request → the contractor assesses the effect on cost and timeline → the client approves → the work begins. This protects both sides from verbal "and add this too while you're at it".

Intellectual property and source code

  • To whom and when the rights to the source code and design pass (often after full payment).
  • What rights the client gets to the contractor's ready-made modules, if they are used.
  • Whether the licenses of open-source libraries interfere with the client's use of the product.
  • Where and in what form the code is handed over.

Accounts, server and domain

Where possible, register the domain, server, app store accounts and payment service accounts in the client's name. Even in a simple website build, a domain left on the developer's personal account later becomes a problem. Specify in the contract that all access is handed over when the project ends.

Confidentiality and data

The contractor sees your customer base, prices and internal processes. A confidentiality section or a separate agreement (NDA) fixes the obligation not to disclose this information. Check current requirements for processing personal data in official sources.

Bug fixing and support

For what period after delivery are bugs fixed free of charge, and in what order? Is support a separate service? What does it include: server monitoring, updates, small improvements, the procedure for responding to requests? For systems the business relies on every day, such as a CRM/ERP, it makes sense to put these terms in a separate appendix or contract.

Termination

What happens if the cooperation ends early: how the completed work is valued, how the code and documentation are handed over. Nobody likes to think about it, but this very section protects both sides.

Table: contract section and its purpose

Section What to specify What it protects against
Scope of work Reference to the TS, what is excluded The dispute "we discussed this too"
Stages Results and schedule Endless delays
Payment Payments tied to stages Paying without work and work without pay
Acceptance Review procedure and certificate Disputes over what "done" means
Changes Written request and assessment Uncontrolled budget growth
Code and accounts Rights and handover of access Dependence on a single contractor
Support Bug fixing and service The "launched and abandoned" situation

Checklist before signing

  1. Is the TS or the list of work attached to the contract?
  2. Are the result and payment for each stage described clearly?
  3. Are the acceptance procedure and the period for comments agreed?
  4. Does it say who gets the code, design and accounts?
  5. Are the costs not included in the price listed?
  6. Is there a procedure for requesting changes?
  7. Are there terms for bug fixing and support?
  8. Has a lawyer reviewed the contract?

Frequently asked questions

Do I need a contract for a small project?

Yes, even a short contract or written agreement fixes the list of work, price, timeline and acceptance procedure. It is convenient for both sides.

Who prepares the contract?

More often the contractor offers its own template, and the client checks it with their lawyer and makes edits. The main thing is that every clause is clear to both sides.

Do I have to be given the source code?

It is a matter of agreement, but for a system that matters to the business, access to the code and the server keeps open the option of working with another team in the future. Put this condition in writing in advance.

UFLEX is an IT team from Namangan. We run every project under an agreement that clearly sets out the list of work, stages, acceptance procedure and support terms. We build websites, apps, Telegram bots, CRM/ERP, and inventory and POS systems, host them on a server and support them, and work remotely with clients across Uzbekistan. To discuss the terms of your project in advance, leave a request or message us on Telegram.

Send a request

We will clarify the task and give you a price and timeline.

What do you need?

Your details are used only to contact you.

Read next