2018-12-13 16:44:27分类:行业资讯6713
曾经多次发生过软件开发合同纠纷案,部分案件由法院判决,部分案件在仲裁委员会仲裁结案。发现仲裁委员会在认定软件纠纷案件时的思路与法院存在一定差异,这种差异的原因来自仲裁员特定的软件或电子行业背景,正是这种背景使得仲裁员对于软件开发合同中争议问题的把握更为准确,最终认定的事实也更容易被当事人所接收。当然,法院法官在审理此类案件时对于法律规则的适用掌握更为严格,此为法院审理软件开发合同纠纷的特点。综合来讲,软件开发合同纠纷涉及多种编程语言和开发工具,相应的专业问题比起一般的合同纠纷更为复杂,案件审理中只有熟悉软件行业的特点和相关处理流程才能对争议的问题作出准确的判断,这无疑对承办律师和法官都提出了很高的要求。
以下,根据的案例对于软件开发合同纠纷的特点简述如下:
根据一项统计数据,受调查的软件项目进度平均延期222%,根据中国软件企业管理人员及程序员的沟通,对于软件开发延期的原因,企业管理人员认为项目经理早期计划不充分是最主要的原因,其次是应急预案制定不足;而程序员则认为客户需求变更和技术复杂程度是最主要的原因。
以上两者的差异来源于企业管理人员大多不懂软件,对于程序员也缺少了解。企业管理人员为了在有竞争对手的商业谈判争取订单,有时候不得不承诺减少开发周期,同时也是因为竞争的原因,软件开发成本限制参与项目的程序员数量和技术水准,而以上的结果是项目经理所最不愿意看到的。因此,从某种程度上来讲,软件开发合同前期的商务谈判过程决定了软件开发的成败,有些软件开发失败的真正原因恰恰是对于软件开发一无所知的客户。
基于以上的原因,项目经理应当在软件早期的商务谈判中向企业的管理人员充分说明开发周期的复杂性以争取宽裕的开发时间;对于企业管理人员来讲,应当在商务谈判中与律师协商,妥善安排有关开发周期的合同约定,例如开发合同中软件开发的各个阶段的时间限制应当只作为合同描述内容作为参考使用,而不能作为确定合同违约行为的依据,这样可以帮助软件开发人员在总开发周期内对分项时间进行调整。
如确因客观原因造成无法按照预期完成软件开发,则软件公司应当及时向客户进行通报,提出延期请求并以备忘录、补充协议等形式对双方的合意进行书面确认。尽管大多数软件开发合同对于延期交付有罚金作为违约责任,但是开发过程中与客户协商延期的效果还是要远远好于开发周期后协商延期。
因为客户与软件开发人员分属不同的行业,行业背景和特定专业知识的限制使得双方对于需求清单中文字表述的内容可能会存在理解的偏差,这种偏差如果只是涉及软件底层功能的部分调整还有可能及时弥补,但是如果涉及整个软件模块或架构的调整,可能给软件开发工作造成致命的影响。
软件需求说明书中表述的具体需求为“监控界面可以实现多路监控”,程序员设计的实现路径是在同一个计算机上同时打开两个浏览器界面,以上两个界面可以分别显示两组不同的视频内容,程序员认为以上方式即为需求说明书中所说的“实现多路监控”。但是在软件进行验收时,客户提出“多路监控”是指在同一个浏览器的监视界面同时显示两组视频内容,至此双方对于软件需求的理解产生歧义。因为以上软件的功能调整涉及数据服务器以及嵌入的视频功能模块的调整而无法在短期内完成,最终致使软件无法按期交付并引发诉讼。
事实上,我们可以从软件的开发过程来分析造成双方对需求理解不同而造成开发失败的责任,即有能力、有机会消除理解歧义的一方负有排除歧义的义务,而怠于履行义务的一方对软件开发失败负有过错,应当承担相应的赔偿责任。
软件开发合同中一般都没有非常明确的针对双方具体沟通事务的约定,软件公司在开发前期都会与客户进行反复沟通以确定需求清单的内容,但是一旦进入开发流程,开发人员有可能忽略与客户沟通软件开发的中间成果。例如,由需求清单整理的功能需求说明书(SRS)、软件产品架构设计说明书、软件用例等文件都单纯成为开发人员之间内部沟通协调的文件,而忽略了与客户进行确认的过程。技术上来讲,软件开发的所有工作都是以软件用例作为出发点和基本依据的,软件用例也是底层程序员了解产品功能和使用场景的依据。与客户对软件用例进行沟通也最有可能在开发初期消除对需求理解的歧义。
综上,由开发合同中的需求清单到最终完成开发、交给客户验收的过程中,软件开发人员将中间工作成果与客户进行沟通确认的过程可以避免对需求清单理解歧义的发生。客户对于软件开发的具体流程和细节并不熟悉,因此软件开发人员有机会通过沟通来消除软件需求理解的歧义。
为了在履行开发协议的过程中更好地保护客户的利益,国外的软件开发协议中开始出现软件源代码在开发过程中部分向客户交付的条款,也有的是通过第三方的源代码保管机构,理论上来讲,软件开发中会产生大量的迭代版本,开发中间向客户交付的部分代码并无实质意义,但是对于开发末期已经进入调试阶段的软件代码来讲,尽管与最终代码仍有不同,但是其价值已经可以保护和持有代码的当事人一方。这也是将软件代码的部分交付进入软件开发合同的原因之一。
还有一种情况部分交付代码的情况,客户在开发过程中为了行政审批的相关项目或者其他有关的商务合作,要求软件公司先行提供部分代码以取得中国版权中心颁发的登记证书。按照版权中心的要求,这一部分代码约3000余行,相对于大型项目的总行数来讲,只占非常小的一部分,因此一般软件公司都会同意客户的这一请求。
正是这样的情况,因为开发延期而最终导致客户终止合同,并诉至法院要求返还预付的开发费用,鉴于客户已经通过其他公司完成了软件项目,法院认为履行原协议已无必要,双方应当终止合同。但是因未全部完成的软件已经登记在客户的名下,在合同终止的前提下,未完成的工作成果应属软件公司所有,但是该软件登记在客户名下的事实造成软件实际所有人与登记所有人不符的情况,造成法院无法妥善解决纠纷。
共享充电柜就是充电的一个智能柜子,就像现在的共享充电宝平台,通过一个柜子装有很多的充电宝,共享充电柜相当于一个盒子。共享充电柜APP软件开发就是用户根据自己的充电设备需求,选择合适的共享充电柜,有不同的型号的共享充电柜满足商家的使用需求。
2019-09-24
软件开发方案的技术需求怎么写?其中,目标的软件描述是确定需要开发和运行哪些服务和软件系统,在这些服务和软件系统中,约束对于发现服务和约束、分析和验证活动,创建文档现在通常被称为需求工程.
2019-01-21
视频直播软件开发方案概述。抖音风潮席卷全国以后,也在国外的市场流行起来,越来越多人对于视频以及直播关注。视频直播软件开发为用户提供实时直播、短视频上传、购物等功能,为用户的闲暇时间提供更多的娱乐方式。
2018-12-29
怎么选择软件开发方案项目外包的技术服务型公司?现在挑选一家靠谱的企业并不简单,不只要比照规划、实力,还需要断定项目能否顺利进行。怎么挑选一家靠谱的APP规划外包公司是不少企业所忧心的工作,因而要打起十分精神来进行。
2018-12-28