Main Risk Points, Judicial Adjudication and Compliance Advice concerning Computer Software Development
Cathy Wu /Xin He Watson & Band Law Offices
The recent 2019 Annual Report of the Intellectual Property Court of the Supreme People’s Court released by the Intellectual Property Court of the SPC has shown a surge in the number of computer software contract dispute cases, focusing on issues such as whether the development achievement has been delivered, whether the delivered content complies with the agreement, whether modification during performance of the contract has been agreed upon, how to establish delayed fulfilment. Based on a summary of the foregoing focuses of dispute, this article concentrates on the criteria adopted by the court in adjudication of relevant disputes, attempts to help enterprises clarify the main risk points in computer software development contracts and provides well-targeted advice on compliance.
I. Whether the development achievement has been delivered
Whether the development achievement has been delivered is a commonly disputed issue in cases of this kind. It is also a prepositive issue to be resolved when establishing facts such as whether the delivered achievement complies with the agreement, whether either party has breached the contract, etc.. This disputed issue mainly involves allocation of the burden of proof. Since the act of delivery is an active fact, the party asserting due delivery of the development achievement should bear the burden of proof. During litigation, it is normally the software developer who contends due delivery of the development achievement and hence is required to present relevant evidence of delivery. In normal cases, after the developer has delivered the entrusted software, the entrusting party should issue a letter of delivery confirmation. Therefore, if the developer submits the delivery confirmation letter in the form as agreed in the contract, it can be deemed as having fulfilled its burden of proof. At this point, it will be the entrusting party’s turn to evidence that the software is not delivered. For example, in the computer software development contract dispute appeal case Shanghai Kuangcheng Corporate Management Consultation Co., Ltd. v. Gaoteng Sijia, the court held that, given that the developer Gaoteng Sijia had provided voice recordings and confirmation of acceptance to prove that the entrusting party, the Kuangcheng company, had confirmed acceptance of the product in question while failing to evidence that its delivery confirmation was induced by the developer or that the product in question was not actually delivered, it should be established that the product in question had been duly delivered.
During the developing process of certain software, the developer would deliver software to the entrusting party by deploying software on a cloud server. When a dispute arises in such event, the court will be able to confirm whether the software has been delivered by simply verifying whether the software has been actually deployed on the cloud server. In practice, however, since payment of rent is required for using the cloud server, when the dispute arises, the court is unable to log in the cloud server to verify actual delivery of software because the renter of the cloud server (usually the entrusting party) has stopped paying the rent. In this case, if the developer has provided preliminary evidence proving that it has delivered the software but it is impossible to verify whether the software has been actually delivered through the cloud server, in absence of evidence to the contrary, the court may directly determine that the software has been delivered. The problem is, if the developer is unable to evidence that the software has been delivered and the actual delivery of software cannot be verified through the cloud server because the entrusting party has stopped paying the rent, the court will either impose liability on the developer for failing to present evidence based on the principle that “the party making the claim should present corresponding evidence”, or rule to order the entrusting party, who made the cloud server unavailable for log-in, to assume liability for failing to present evidence. This will bring huge uncertainty to both the developer and the entrusting party in enforcing their rights.
II. Whether the delivered content complies with the agreement
Determination of whether the delivered content complies with the contract involves both findings on technical issues and understanding of the content of the contract. Due to some reasons such as that the entrusting parties lack professional knowledge of computer technology and terms, the two contractual parties have only described a framework of the required functions of the delivered product or the two parties fail to review contract clauses with care, the two parties may set forth unclear requirements for the delivered result or have different understanding of such requirements when executing the contract. Therefore, in judicial practice, in addition to the facts found through technical appraisal of the software in question, understanding of contract clauses, which involves interpretation of the contract, also serves as a very important ground for the court in making a judgment.
According to Paragraph 1, Article 125 of the Contract Law, in case of any dispute between the parties to a contract over the understanding of any clause of the contract, the true meaning of such clause shall be determined according to the words and sentences used in the contract, the relevant clauses of the contract, the purpose of the contract, trade practices and the principle of good faith. In other words, a contract clause may be construed through literal interpretation, systematic interpretation and purpose interpretation in combination with trade practice in the industry. In the computer software development contract dispute case Wang Bin v. Shanghai Hanyu Information Technology Co., Ltd., the two parties agreed in the contract that the delivered software should include the chatting section and the shopping section, and Clause 1.3 of the contract further provided that the chatting section should include the following parts: My Friends, friend search (search by conditions, friend request, request reminder), online chatting (list of chat, chatting interface). However, the software delivered by the Hanyu company contained only interfaces of chatting and shopping. As for the question of whether the chatting and shopping sections should include chatting and shopping functions, the trial court pointed out that “according to the above clauses concerning ‘search by conditions, friend request, request reminder, etc.’, the chatting section should contain not only the chatting interface but also the actual chatting function”. At this point, the court construed the contract clause through literal interpretation.
In addition, contract interpretation should observe a strict sequence, with literal interpretation being the first method choice, followed by systematic interpretation. The purpose of the contract, trade practice and the good faith principle should be the last methods of contract interpretation. 
III. Whether modification during performance of the contract has been agreed upon
During the process of computer software development, the demand of the entrusting party may change and the entrusting party may request the developer to make adjustment to the software such as adding functional modules. If a dispute arises at this point, the entrusting party will argue that the developer fails to satisfy the entrusting party’s demand for change and such failure constitutes breach of contract. In the computer software development contract dispute case Jinan Aiya Information System Co., Ltd. v. Jinan Fenghuang Xinrui Technology Co., Ltd., the Aiya company, the entrusting party, claimed that the software delivered by the developer Fenghuang Xinrui company failed to satisfy the newly added requirements and functions raised by the entrusting party during performance of the contract, which constituted breach of contract. Also, the developer is likely to assert that the entrusting party has breached the contract by failing to pay for the newly added functions and items in the process of software development. In the computer software development contract and sale contract dispute case Shanghai Kai’an Information Technology Co., Ltd. v. Shanghai Maiyi Information Software Co., Ltd., the developer Maiyi company initiated a counterclaim requesting the entrusting party Kai’an company to pay for the “car loan” item that was subsequently added. At this point, the court will focus its trial on whether the two parties have reached an agreement on modification of the contract.
According to Paragraph 1, Article 77 of the Contract Law, a contract may be modified if the parties reach a consensus through consultation. Therefore, to determine whether the entrusting party and the developer has reached a consensus on contract modification is to determine whether the two parties have had any effective offer and acceptance in regard to modification of the contract. A typical dispute arising in practice is where one party has sent a notice of contract modification (e.g. requesting adjustment to the function of software or change the development cost, etc.), whereas the other party does not show agreement or refusal in an express manner. In this case, the court will focus its trial on how to determine whether the two parties have reached consensus. According to Article 22 of the Contract Law, an acceptance shall be made in the form of notice, except where, in accordance with the trade practices or as indicated in the offer, an acceptance may be made by performance of an act. This means that an acceptance should be made in an express manner unless the parties have agreed otherwise or followed trade practices. Based on this understanding, if the developer is silent on the entrusting party’s modification request, the two parties should not be deemed as having reached a consensus. In the aforesaid case Kai’an company v. Maixi company, the court pointed out that, “No evidence in this case shows that the Kai’an company or the Maixi company ever clarified in writing that the car loan belongs to a “newly added item”. … If the car loan item is a newly added demand of Kai’an company, … the two parties should confirm in writing after consultation. Therefore, without the two parties’ written confirmation that the car loan item is a “newly added item” of the developed software in question, it is impossible to draw such a conclusion merely based on the words “increased amount” concerning the car loan item in the Working Plan for Next Week (2015/8/3-7) issued by the Maiyi company.” Of course, if the developer has actually satisfied the relevant software development requirement despite its lack of express consent to the entrusting party’s contract modification request, it should be concluded that the developer has made an implied acceptance and that the two parties have reached a consensus with regard to modification of the contract.
IV. Determination of delayed fulfilment
In a computer software development contract, the two parties would normally set forth the deadline for software delivery and provide that the developer’s delay in delivering software will constitute breach of contract. Therefore, the developer’s delay in fulfilling its contractual obligation of software delivery has become the main ground for the entrusting party’s assertion of the developer’s breach of contract. Nevertheless, the developer’s failure to deliver software on time does not necessarily constitute a breach of contract. In some cases, the developer would raise the defense that its delay in fulfilment was caused by the entrusting party’s fault. If the court finds that the entrusting party was at fault in the developer’s delayed fulfilment, this will reduce the developer’s liability for breach or even exempt the developer from liability for breach. In such circumstance, how to identify the entrusting party’s liability will become the difficulty for the court in trying cases of this kind.
In the computer software development contract dispute Beijing Zhongyiyou Network Technology Co., Ltd. v. Beijing Shengshi Xinghui Network Technology Co., Ltd., the entrusting party, the Zhongyiyou company, asserted that the Shengshi Xinghui company failed to deliver software on time and constituted delay in fulfilment of its contractual obligation. In defense, the Shengshi Xinghui company argued that its failure to deliver software was caused by Zhongyiyou’s repeated request for adjustment and addition of ports, hence it was not liable for delayed fulfilment. After trial, the court held that delay in development progress should not be accredited to the Shengshi Xinghui company for the following reasons: Both parties are at fault because of their failure to make a Project Specification and a software development plan at the early stage of contract performance; as the entrusting party, the Zhongyiyou company is obliged to actively supervise and urge the Shengshi Xinghui company to negotiate and make the software development plan, and to inspect for accepting products developed by the Shengshi Xinghui company at each stage in accordance with the development plan; failure to make the Project Specification and the software development plan has increased the developer’s risk of delayed software delivery and the difficulty of delivery on schedule. In addition, evidence available at present cannot prove that the reason for the Zhongyiyou company to repeatedly ask the Shengshi Xinghui company to alter software is that the product completed by the Shengshi Xinghui company falls short of the requirement. A lesson to be learnt from this case is that the entrusting party should, at the early stage of execution of the computer software development contract, clarify its demand for software functions and work with the developer to specify the software development standard, so as to avoid any project progress delay caused by itself.
V. Compliance advice for enterprises
At the stage of contract execution, we suggest that enterprises clarify at least three points, i.e. the development demand, the delivery method and the inspection for acceptance standard.
1. Clarification of development demands, on one hand, may make it clearer for the developer to understand the entrusting party’s need for the practical functions of the software subject to entrusted development, so as to carry out software development in a more efficient way; on the other hand, such clarification will provide fundamental guidance for communication between the two parties on software functions in the process of software development. Clarification of development demands may be carried out in forms such as research of demands conducted by the developer towards the entrusting party. After establishing the demands, the two parties should confirm the same in a written document such as the Specification of Item Functions of software development or a software development plan, where description of the function modules should be as detailed, specific and clear as possible.
2. Clarification of the delivery method should include the time and place of delivery, the documents required for delivery and the process of delivery. The two parties may also, according to actual need, agree on a mark of completion of delivery, such as the entrusting party’s sending of the delivery confirmation letter, the software being deployed on the cloud server by the developer or actual operation of the software. Please note that, since the court in practice usually identifies due delivery of software based on the delivery confirmation letter, and it is difficult for the entrusting party, who asserts a passive fact, to present counter-evidence, the entrusting party is advised to send the delivery confirmation letter only if it has confirmed that the software has been actually delivered, so as to avoid being in a passive position caused by such fault in the delivery process when dispute arises.
3. Clarification of the inspection for acceptance standard. At the stage of contract execution, the two parties should reach an agreement on the standard for inspection for accepting the software, focusing on quantifying all technical indicators. If necessary, the two parties may agree on engaging a third party in verifying whether the software has lived up to the development standard.
In the case Zhongyiyou v. Shengshi Xinghui, the court gave guidance to the entrusting party on how to proceed with relevant work at the stage of contract performance. Such work involves inspecting and accepting the developer’s development work at each stage according to documents such as the software development plan formulated before executing the contract as well as the periodical deadlines set forth by the two parties. Besides, although, in the process of software development, it is normal for the entrusting party to change its demands pursuant to the periodical completion status of the software, change of the market, etc., such change of demands should be restricted to a reasonable range because excessively frequent change of demands may make it difficult for the developer to deliver software on schedule. If the developer is able to predict that it is difficult to deliver software before the agreed deadline due to reasons such as the entrusting party’s change of demands, it should communicate with the entrusting party in a timely manner to extend the time limit for delivery, so as to avoid dispute.
During performance of the contract, the two parties should give importance to communication and retain written records of such communication. For example, the developer should retain the email correspondences sent to the entrusting party informing the latter of progress of the project, and the entrusting party should retain reports on the results of periodical inspection and acceptance of the developer’s progress as well as problems discovered during software development. Where a change of the content of the contract is involved, the two parties should confirm the agreed change in writing. Particularly, when it comes to the change of the entrusting party’s development demands, the developer should confirm such change with the entrusting party in formal form of writing, so as to avoid being in a passive position where it is unable to prove that the software achievement delivered by it has satisfied the agreed requirement in the contract.
 Shanghai Intellectual Property Court, the (2016) Hu Min Zhong No. 389 Civil Judgment.
 The main basis for the court to impose liability on the entrusting party for failing to present evidence is the principle of evidence obstruction established by Article 95 of the Several Provisions of the Supreme People's Court on Evidence in Civil Proceedings. However, according to the view of Professor Yongjia Luo, the principle of evidence obstruction is applicable only if the party without the burden of proof has intention or negligence when causing the party with the burden of proof unable to present evidence. Since one of the reasons for the entrusting party to stop paying rent for the cloud server may be to avoid additional costs, it is a debatable issue whether there is subjective intention or negligence or whether such reason is justified.
 For example, in the (2019) Jing 02 Min Zhong No. 2834 Civil Judgment issued by the Beijing 2nd Intermediate People’s Court, the court pointed out that “a contract must be interpreted according to the meaning of its words and sentences first; relevant clauses of the contract, the purpose of the contract and other factors may serve for contract interpretation only if there is ambiguity or different understanding of the meaning of the contractual words and sentences.”
 Shandong Jinan Intermediate People’s Court, the (2018) Lu 01 Min Chu No. 2334 Civil Judgment
 Shanghai Intellectual Property Court, the (2016) Hu 73 Min Chu No. 730 Civil Judgment
 The Supreme People’s Court, the (2019) SPC Zhi Min Zhong No. 433 Civil Judgment
The Watson & Band website is intended for informational purposes only. Nothing in this site is to be construed as creating an attorney-client relationship between the reader and Watson & Band or as offering legal advice on any specific matter. Since we are not providing legal advice through this website, you should not act upon any information that you might receive here without first seeking professional counsel. No client or other reader should act or refrain from acting on the basis of any information contained in the Watson & Band website without seeking appropriate legal or other professional advice based on the particular facts and circumstances at issue.