First of all, the meticulousness. When preparing a contract, you have to guard the tiniest elements of it. Sometimes a seemingly trivial oversight exposes the company to a number of unplanned expenses and delays in product implementation. Without professional knowledge “of the industry” it is difficult to create a record that gives certainty that everything will be completed fully. There are no elements that can be left to guesswork. How can you be sure that the software house will implement the application to the server after the work is finished? The item is supposedly in the package, and yet… not entirely.
Everything is black and white!
Another fundamental piece of information that should be included in the contract is its scope. A wise move is to write down in black and white that the party performing the task undertakes not only the production of the software itself, but also its testing, preparation of mock-ups, documentation and specifications. During the first meeting it is worth to define exactly what we expect from the software house, and then to include it in the contract.
In the event of larger projects, where an exact description of the activities is virtually impossible, it is enough to limit oneself to an outline of the activities.
The document should not lack a provision on the methodology of project management – after all, it is on which the collaboration with the software house will be based. If the software is to be created using the Agile method, the agreement must state that both parties agree to it. The document should include such elements as, among others, responsibility for the organization of meetings, their frequency, supervision over the schedule, etc.
Deciding to work with a particular contractor, we assume that he has all the knowledge necessary to do his job – it is almost obvious. However, nothing stands in the way of including such a provision in the contract. After all, no one wants to pay the company which learns its expertise at the expense of the client, right?
One must not forget to confirm that the executed contract does not violate the rights of third parties, and each party has full right and ability to sign such documents.
The client may secure a provision about the test period. This gives they the comfort to terminate the contract with immediate effect if the software house uses unfair practices.
Responsibility and reliability
It is extremely important to clearly define the tasks for each of the parties. It is in the interest of the customer to include a clause stating the liability of the software house not only for its employees, but also for subcontractors. This is a point that will avoid a situation in which inexperienced people will work on the task.
Both parties to the contract should appoint specific employees to perform and supervise the task, and then include them in the content of the signed document.
The client must also know about every additional element that goes beyond the scope of the contract and involves additional costs. Such actions require additional documents.
Don’t forget about copyrights! It is in the interest of the company commissioning the works to have all rights to the application. What’s more, the contract should include a clause clearly stating that the contractor has no right to use, distribute and modify the software later.
Another important provision is the one about prohibition of competition. The Contractor may not provide services competing with the activity of the company for which he works. Why is it so important? When undertaking a collaboration with a software house, we provide it with a lot of important – often confidential, among which is the knowledge and know-how gained over the years. It is a smart move to protect ourselves against unauthorized use of this capital.
Payment and deposit
The date of payment is set in advance. Usually it is 7-14 days after the invoice is issued. The contract should include a note about the amount of the deposit, which the customer pays before starting work on the software. Usually it is an amount equal to the average sum from a single invoice. The deposit gives the contractor the comfort of investing resources and time to create the ordered product.
When you have to withdraw from the contract…
It happens that the collaboration does not go as we imagined it would. Communication does not work, we are not satisfied with the progress of work or the client does not meet the provisions of the contract. This is a situation which forces us to make an unpleasant decision to stop further cooperation. Although we would prefer not to assume such a dark scenario, it is worth protecting ourselves against such possibility.
The most pleasant version of this unpleasant plot is an amicable termination. In such a case, it is worth setting a notice period long enough to give yourself time to find a new contractor.
If, on the other hand, it is already so bad that you have to part immediately, you should have a contract that allows for such an immediate parting.
The third option is a possible dispute between the parties. In such a case, the relevant document is a mediation clause stating that any disputes arising out of or in connection with the contract should be referred to the appropriate entity providing similar activities (see lawyer).
What if the product is returned?
It is hard to imagine a contract with a software house without a warranty clause in case of situations caused by force majeure (e.g. server room failure, flood, storm, hacking into the software house etc.). It is also good to protect yourself against paying for corrections.
The contractor should have a contractual obligation to inform the customer about any faults and unfortunate events which may adversely affect not only the success of a particular task, but also the entire business of the customer (e.g. data leakage).
Data security
Finally, we left the issue of personal data security. The record of the person who will manage this type of information is an extremely important issue. Software house will necessarily process your personal data, so the contract should include a clause confirming that the company knows the rules of GDPR and will comply with them. It should be remembered that such records also apply to the team working on the application and subcontractors.
It is customary for most companies to include provisions on possible contractual penalties in case of violation of any of the clauses. It will not hurt if such a provision is also included in our document.
Be careful!
During the creation process both parties should agree on how to transfer the results of the work. The software house must know whether the customer wants to receive the product as a whole or prefers to receive it in batches, giving them a chance for regular feedback. It is also important to set precise deadlines. As we have already mentioned, a prudent customer will make sure that he is not left alone after they receive the software. For this purpose, the contract should include a provision for product maintenance. Almost every software house is interested in expanding its portfolio, so the document must not lack the appropriate consent from the client (unless for some reason they do not want it).
This may be a truism, but it’s always worth repeating – let’s read every contract carefully before we sign it. Such a habit will help to avoid disappointment, unpleasant surprises and possible conflict with a software company. Each contract should be consulted with a lawyer.