如果您的软件项目失败,供应商仅在未交付约定内容且该失败可归因于其自身的情况下才承担责任(荷兰民法典第6:74条)。实践中,责任通常是双方共同承担的:如果客户更改了需求、决策延迟或未提供测试数据,法院可以根据双方的过错减少赔偿金额,而客户造成的延误并不计入供应商的责任。
本文解释了失败的常见原因、法律评估、客户的合作义务、法院指定专家的作用、可能的结果,以及客户和供应商应该检查哪些内容以防止或赢得纠纷。
目录
软件项目失败的原因是什么?
有些原因反复出现,而且它们往往相互强化。一个项目最初只是延期,最终却可能彻底失败。
- 范围蔓延:需求不断增长,却没有变更程序来解决对计划和预算的影响。
- 功能规范不明确或不完整,导致之后无法确定结果是否符合规范。
- 系统设计不符合实际负载、与其他系统的接口或未来的发展需求。
- 低估了复杂性和准备时间,尤其是在需要连接多个现有系统时。
- 客户配合迟缓或配合不足。
供应商在什么情况下承担责任?
当债务人未能履行义务且该违约行为可归因于其自身时,根据《德国民法典》第6:74条,债务人必须赔偿因未能履行义务而造成的损失,除非该违约行为不能归因于债务人,例如在不可抗力的情况下(《德国民法典》第6:75条)。
因此,客户必须证明供应商未交付约定的产品,例如软件不符合已记录的规格。只要履行仍有可能,在客户发出合理的书面违约通知后,供应商通常也构成违约(《德国联邦法》第6:82条)。
如果客户也对失败负有责任呢?
然后,损害赔偿金额会减少。根据《德国联邦民事诉讼法》第6:101条,损失应按各方自身因素造成的损失比例进行分担;公平原则也可能导致其他分配方式,甚至不予赔偿。
客户常见的问题包括:需求决策迟迟不定、随意更改需求而不考虑对计划和成本的影响,以及缺乏可用的测试环境。项目过程中,务必记录决策者、变更内容以及信息提供时间。
客户的合作义务意味着什么?
软件实施是一项合作项目。供应商依赖客户提供及时完整的技术规范、可用的测试数据、快速的决策以及对交付部件的及时验收。
如果由于客户未能提供必要的合作而导致履约受阻,则客户构成债权人违约(schuldeisersverzuim,德国联邦法典第6:58条)。此时,供应商不因该延误而构成违约。在迭代项目中,每个阶段都基于前一阶段的反馈,因此,信息的缺失往往是造成延误的关键因素。
对于客户而言:如果自身决策迟缓,那么对项目进度的批评就显得苍白无力。对于供应商而言:请立即以书面形式报告客户造成的延误。事后,往往难以追溯究竟是谁造成了哪一延误。
法院指定的专家扮演什么角色?
这往往是一个决定性的问题。软件是否符合规范、延误发生在哪里以及额外的工作是否合理都是技术问题,因此法院可以应一方当事人的要求或主动要求出具专家报告(荷兰民事诉讼法典第 186 条)。
诉讼程序开始前,当事人还可以请求法院出具初步专家报告(voorlopig deskundigenbericht),以评估其立场(《民事诉讼规则》第196条和第202条)。专家通常需要:
- 合同、其附件及适用的通用条款;
- 功能和技术规范以及变更请求;
- 项目规划、进度报告和测试报告;
- 关于延误和接受的信函;
- 源代码和文档。
如果缺少文件,专家往往无法回答问题,这会损害依赖相关事实的一方的利益。因此,在项目进行过程中,就应该妥善保管项目文件,而不仅仅是在出现争议之后才进行整理。
法院可以做出哪些裁决?
如果项目仅部分失败,例如某个模块无法正常工作而其余部分可用,法院可以下令部分解除合同(《德国联邦民事诉讼法》第6:265条)。部分解除合同会按比例减少双方的履约义务(《德国联邦民事诉讼法》第6:270条),因此正常工作的部分仍然有效。
法院可根据《德国联邦法》第6:74条判处损害赔偿,并可根据第6:101条因过错而减少赔偿金额。如果全额赔偿会导致明显不可接受的后果,例如索赔金额与合同价值完全不成比例(《德国联邦法》第6:109条),法院也可以减轻法定的损害赔偿义务;法院谨慎行使此项权力。
许多失败的项目最终都以更换供应商而告终。这又引发了一系列问题:源代码归谁所有?知识产权归谁所有?是否存在第三方托管安排?这些问题都应该在项目启动之初就解决。
仲裁如何帮助解决IT纠纷?
许多IT合同会将争议提交给自动化争议解决基金会(Stichting Geschillenoplossing Automatisering,简称SGOA),该基金会提供仲裁、调解和具有约束力的法律咨询服务,其仲裁员均熟悉IT行业。仲裁的前提是双方当事人同意,通常是通过合同条款或一般条款中的相关规定。
如果没有这样的条款,争议将提交普通法院:索赔金额不超过 25,000 欧元的案件提交地方法院,索赔金额较大的案件提交地区法院商业法庭(第 93 条 Rv)。
作为客户,您应该检查哪些内容?
- 功能规格和验收标准是否已记录在案,并且是否符合您目前的预期?
- 你们是否按时提供了规格说明、测试数据、决策和验收文件,并且能够证明这一点?
- 在提出损害赔偿要求或撤销合同之前,你是否已发出书面违约通知,并给予了合理的期限?
- 合同是否限制了供应商的责任范围或排除了间接损失?
- 您是否拥有源代码和文档的访问权限,或者是否有第三方托管安排,以便在其他地方重新启动项目?
- 合同中是否包含仲裁条款,例如针对《苏格兰政府仲裁法》(SGOA)的仲裁条款?
作为供应商,您应该检查哪些方面?
- 您是否已将每一项变更请求及其对计划和价格的影响以书面形式记录下来?
- 你是否已立即以书面形式报告因缺少客户信息而造成的延误?
- 能否提供测试报告和验收记录,说明哪些部件已交付并验收?
- 你们的通用条款是否适用,包括责任上限?
- 您的项目文件是否足够完整,以便专家能够重现项目过程?
如何预防纠纷?
大多数纠纷都可以通过合同约定来避免。以下五项措施有助于预防纠纷:
- 将项目划分为多个版本或里程碑,每个版本或里程碑都有自己的验收标准;
- 在发票到期前,双方约定正式的验收测试;
- 记录变更程序:谁可以提出变更请求,谁来决定变更,以及如何调整计划和价格;
- 制定升级程序:项目组、指导委员会、调解员,只有在必要时才进行仲裁或诉讼;
- 如果您希望通过像SGOA这样的IT专业仲裁机构进行仲裁,请在仲裁条款中加入仲裁条款。
如果您的软件项目失败了,我们能为您提供哪些帮助?
我们的IT律师为陷入困境的IT项目提供客户和供应商的法律咨询。我们可以:
- 评估您的合同和项目文件,并确定谁应该对哪项延误负责;
- 起草违约通知或关于不配合的书面警告;
- 协商达成和解或有序退出,包括移交源代码;
- 请求提供初步专家报告或拟定向法院指定专家提出的问题;
- 在法院或仲裁机构进行有关解除合同和损害赔偿的诉讼程序。
了解更多关于IT律师的工作内容。
结语
- 项目失败并不一定是供应商履行不力;失败必须归因于供应商(BW 第 6:74 条)。
- 客户有过错可减少损害赔偿(《德国破产法》第 6:101 条);不合作可使客户本身违约(《德国破产法》第 6:58 条)。
- 法院指定的专家通常会决定技术问题,所以要保持项目文件的完整性。
- 法院可以下令部分解除合同,以保留有效部分。
- 分阶段交付、验收测试、变更程序和升级机制可以防止大多数纠纷。
常见问题
如果软件项目失败,我的供应商是否需要承担责任?
并非自动成立。您必须证明供应商未按约定交付货物,且该违约行为应归咎于供应商(《德国联邦民事诉讼法》第6:74条)。实际上,责任往往由双方共同承担。
如果作为客户,我造成了延误呢?
法院随后根据各方的贡献比例分配损失(《德国联邦民事诉讼法》第6:101条)。这可以大幅减少赔偿金额,在特殊情况下甚至可以免除赔偿。
合作义务包含哪些内容?
客户必须按时提供规格说明、测试数据、决策和验收文件。如果因客户未按时配合而导致履约受阻,则客户构成债权人违约(《德国商法典》第6:58条),供应商对此延误不承担责任。
我可以在开始诉讼程序之前对软件进行评估吗?
是的。您可以向法院申请一份初步专家报告(《民事诉讼法》第196条和第202条)。然后,由独立专家评估,例如,该软件是否符合规范。
法院可以只撤销合同的一部分吗?
是的。如果一个模块出现故障,而其余模块可用,法院可以下令部分解除合同,从而按比例减少双方的履约义务(《德国商法典》第 6:265 条和第 6:270 条)。